Я пытаюсь перенаправить трафик локального хоста на определенный порт на IP-адрес мостовой сети.
я использую следующее
эхо"
rdr pass inet proto tcp с любого на любой порт 9300 -> 192.168.64.29 порт 9300
rdr передать inet proto tcp с любого на любой порт 3406 -> 192.168.64.29 порт 3406
rdr передать inet proto tcp с любого на любой порт 1234 -> 127.0.0.1 порт 8000
" | sudo pfctl -ef -
на 1234 -> 8000 работает нормально
У меня был простой сервер Python, работающий на порту 8000.
python -m http.сервер 8000 --bind 127.0.0.1
Посещение http://localhost:1234/ прекрасно загружает сервер, работающий на 8000
вывод sudo pfctl -s состояния
ВСЕ TCP 127.0.0.1:8000 <- 127.0.0.1:58791 FIN_WAIT_2:FIN_WAIT_2
ВСЕ TCP 127.0.0.1:8000 <- 127.0.0.1:58792 FIN_WAIT_2:FIN_WAIT_2
Но аналогичное правило для перенаправления 127.0.0.1:9300 -> 192.168.64.29:9300
и 127.0.0.1:3406 -> 192.168.64.29:3406
не работает
Я вижу SYN_SENT
на выходе sudo pfctl -s состояния
вывод
ВСЕ TCP 127.0.0.1:8000 <- 127.0.0.1:58791 FIN_WAIT_2:FIN_WAIT_2
ВСЕ TCP 127.0.0.1:8000 <- 127.0.0.1:58792 FIN_WAIT_2:FIN_WAIT_2
ВСЕ TCP 192.168.64.29:9300 <- 127.0.0.1:9300 <- 127.0.0.1:58796 ЗАКРЫТО:SYN_SENT
ВСЕ TCP 192.168.64.29:9300 <- 127.0.0.1:9300 <- 127.0.0.1:58797 ЗАКРЫТО:SYN_SENT
Я читал в нескольких потоках, что мне нужно включить переадресацию, но это, похоже, не работает.
sudo sysctl -w net.inet.ip.forwarding=1
У меня порты 9300 и 3406 открыты по IP 192.168.64.29
который находится на мост100
инет 192.168.64.1 сетевая маска 0xffffff00 широковещательная рассылка 192.168.64.255
Proto Recv-Q Send-Q Локальный адрес Внешний адрес Состояние PID/имя программы
TCP 0 0 0.0.0.0:3406 0.0.0.0:* ПРОСЛУШАТЬ -
TCP 0 0 0.0.0.0:9300 0.0.0.0:* ПРОСЛУШАТЬ -
TCP 0 0 127.0.0.53:53 0.0.0.0:* ПРОСЛУШАТЬ -
TCP 0 0 0.0.0.0:22 0.0.0.0:* ПРОСЛУШАТЬ -
tcp6 0 0 :::2375 :::* СЛУШАТЬ -
tcp6 0 0 :::3406 :::* СЛУШАТЬ -
tcp6 0 0 :::9300 :::* СЛУШАТЬ -
tcp6 0 0 :::22 :::* СЛУШАТЬ -
SYN_SENT:ЗАКРЫТО
не уверен, почему / если он заблокирован, но посещение 192.168.64.29:9300 работает нормально