У меня возникла интересная проблема, которую я изо всех сил пытаюсь докопаться до сути, и приветствую любые идеи о том, что может происходить.
Я использую Macbook Pro на OSX 10.13.6.
Моя проблема заключается в следующем ... Я запускаю привязку сервера узлов ко всем интерфейсам через адрес 0.0.0.0
. Я могу Curl localhost:3000
и 127.0.0.1:3000
и успешно подключиться к серверу и получить ответ.
Когда я пытаюсь свернуть свой частный IP-адрес с моего компьютера curl 192.168.1.113:3000
сервер получает запрос, и ответ отправляется, однако ответ никогда не получает curl. Коллеги в сети успешно могут свернуть мой частный IP и получить ответ.
Вот что я наблюдал до сих пор.
Я сбрасываю свои таблицы маршрутизации. netstat -rn
выглядит так.
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGSc 74 0 en0
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 3 1561554184 lo0
169.254 link#12 UCS 0 0 en0
192.168.1 link#12 UCS 0 0 en0
192.168.1.1/32 link#12 UCS 1 0 en0
192.168.1.1 70:4f:57:81:72:d2 UHLWIir 24 37 en0 1198
192.168.1.113/32 link#12 UCS 0 0 en0
224.0.0/4 link#12 UmCS 2 0 en0
224.0.0.251 1:0:5e:0:0:fb UHmLWI 0 0 en0
239.255.255.250 1:0:5e:7f:ff:fa UHmLWI 0 2 en0
255.255.255.255/32 link#12 UCS 0 0 en0
У моего личного IP есть запись 192.168.1.113/32, которая связана с интерфейсом en0. Когда я получаю доступ к серверу, используя curl на localhost и 127.0.0.1, в моих таблицах маршрутизации ничего не меняется.
Сразу после получения доступа к curl 192.168.1.113:3000
с моего компьютера в таблице маршрутизации появляется новая запись, как показано ниже.
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGSc 71 0 en0
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 5 1561554801 lo0
169.254 link#12 UCS 0 0 en0
192.168.1 link#12 UCS 1 0 en0
192.168.1.1/32 link#12 UCS 1 0 en0
192.168.1.1 70:4f:57:81:72:d2 UHLWIir 22 43 en0 1170
192.168.1.113/32 link#12 UCS 1 0 en0
192.168.1.113 88:e9:fe:4c:a3:58 UHLWIi 2 8 lo0
192.168.1.255 ff:ff:ff:ff:ff:ff UHLWbI 0 11 en0
224.0.0/4 link#12 UmCS 2 0 en0
224.0.0.251 1:0:5e:0:0:fb UHmLWI 0 0 en0
239.255.255.250 1:0:5e:7f:ff:fa UHmLWI 0 18 en0
255.255.255.255/32 link#12 UCS 0 0 en0
Линия имеет интерфейс шлюза, который является интерфейсом en0 и связан с замкнутым интерфейсом.
192.168.1.113 88:e9:fe:4c:a3:58 UHLWIi 2 8 lo0
Мне интересно, если ответные пакеты неправильно маршрутизируются при выполнении запроса изнутри хоста. Вся помощь приветствуется.
РЕДАКТИРОВАТЬ -> ifconfig ниже
ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
nd6 options=201<PERFORMNUD,DAD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
XHC0: flags=0<> mtu 0
XHC1: flags=0<> mtu 0
XHC20: flags=0<> mtu 0
en1: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=60<TSO4,TSO6>
ether 32:00:f0:81:a8:01
media: autoselect <full-duplex>
status: inactive
en2: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=60<TSO4,TSO6>
ether 32:00:f0:81:a8:00
media: autoselect <full-duplex>
status: inactive
en3: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=60<TSO4,TSO6>
ether 32:00:f0:81:a8:05
media: autoselect <full-duplex>
status: inactive
en4: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=60<TSO4,TSO6>
ether 32:00:f0:81:a8:04
media: autoselect <full-duplex>
status: inactive
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 88:e9:fe:4c:a3:58
inet6 fe80::a5:7168:25d:73ec%en0 prefixlen 64 secured scopeid 0xc
inet 192.168.1.113 netmask 0xffffff00 broadcast 192.168.1.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
ether 0a:e9:fe:4c:a3:58
media: autoselect
status: inactive
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1484
ether a2:cf:3c:7c:70:56
inet6 fe80::a0cf:3cff:fe7c:7056%awdl0 prefixlen 64 scopeid 0xe
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=63<RXCSUM,TXCSUM,TSO4,TSO6>
ether 32:00:f0:81:a8:01
Configuration:
id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
ipfilter disabled flags 0x2
member: en1 flags=3<LEARNING,DISCOVER>
ifmaxaddr 0 port 8 priority 0 path cost 0
member: en2 flags=3<LEARNING,DISCOVER>
ifmaxaddr 0 port 9 priority 0 path cost 0
member: en3 flags=3<LEARNING,DISCOVER>
ifmaxaddr 0 port 10 priority 0 path cost 0
member: en4 flags=3<LEARNING,DISCOVER>
ifmaxaddr 0 port 11 priority 0 path cost 0
nd6 options=201<PERFORMNUD,DAD>
media: <unknown type>
status: inactive
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000
inet6 fe80::61db:32d6:4611:1341%utun0 prefixlen 64 scopeid 0x10
nd6 options=201<PERFORMNUD,DAD>
en5: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether ac:de:48:00:11:22
inet6 fe80::aede:48ff:fe00:1122%en5 prefixlen 64 scopeid 0x7
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
Сервер может быть запущен в узле
require('http')
.createServer(function (req, res) {
res.end('OK');
})
.listen(3000, '0.0.0.0');
или Python 2
python -m SimpleHTTPServer 3000