Tarantool 1.6 不监听 ipv4 地址
Tarantool 1.6 does not listen ipv4 address
我正在使用 freebsd 10 并尝试设置 tarantool 1.6。使用 pkg 安装并创建默认示例实例:
cp /usr/local/etc/tarantool/instances.enabled/example.lua /usr/local/etc/tarantool/instances.enabled/example.lua
现在它通过 rc.d 成功启动,但它只监听 ipv6:
# ps axu | grep tar
tarantool 32878 0.0 1.2 1086608 9004 - Is 1:40PM 0:00.05 tarantool example.lua <running> (tarantool)
# sockstat -l | grep tar
tarantool tarantool 32878 10 tcp6 *:3301 *:*
tarantool tarantool 32878 16 stream /var/run/tarantool/example.control
有点奇怪,它只听 ipv6 *:3301
。我在实例配置文件中看不到设置监听 IP 或协议的选项:
# grep -i -e listen -e port -e host /usr/local/etc/tarantool/instances.enabled/example.lua
-- The read/write data port number or URI
listen = 3301;
-- { uri = [[host1.com:4301]]; zone = [[0]]; };
-- { uri = [[host2.com:4302]]; zone = [[1]]; };
这是我在 ifconfig
:
# ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
inet 127.0.0.1 netmask 0xff000000
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
xn0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=503<RXCSUM,TXCSUM,TSO4,LRO>
ether 00:16:3e:9b:b0:8b
inet x.x.x.x. netmask 0xffffff00 broadcast x.x.x.x
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet manual
status: active
所以问题是:如何设置 IPv4 侦听以及如何限制要侦听的地址列表?
使用其中包含主机名的 URI 字符串,例如,listen="localhost:3301"。如果有多个接口匹配 uri Tarantool 绑定到解析器返回的第一个接口。
我正在使用 freebsd 10 并尝试设置 tarantool 1.6。使用 pkg 安装并创建默认示例实例:
cp /usr/local/etc/tarantool/instances.enabled/example.lua /usr/local/etc/tarantool/instances.enabled/example.lua
现在它通过 rc.d 成功启动,但它只监听 ipv6:
# ps axu | grep tar
tarantool 32878 0.0 1.2 1086608 9004 - Is 1:40PM 0:00.05 tarantool example.lua <running> (tarantool)
# sockstat -l | grep tar
tarantool tarantool 32878 10 tcp6 *:3301 *:*
tarantool tarantool 32878 16 stream /var/run/tarantool/example.control
有点奇怪,它只听 ipv6 *:3301
。我在实例配置文件中看不到设置监听 IP 或协议的选项:
# grep -i -e listen -e port -e host /usr/local/etc/tarantool/instances.enabled/example.lua
-- The read/write data port number or URI
listen = 3301;
-- { uri = [[host1.com:4301]]; zone = [[0]]; };
-- { uri = [[host2.com:4302]]; zone = [[1]]; };
这是我在 ifconfig
:
# ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
inet 127.0.0.1 netmask 0xff000000
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
xn0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=503<RXCSUM,TXCSUM,TSO4,LRO>
ether 00:16:3e:9b:b0:8b
inet x.x.x.x. netmask 0xffffff00 broadcast x.x.x.x
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet manual
status: active
所以问题是:如何设置 IPv4 侦听以及如何限制要侦听的地址列表?
使用其中包含主机名的 URI 字符串,例如,listen="localhost:3301"。如果有多个接口匹配 uri Tarantool 绑定到解析器返回的第一个接口。