Я использую сервер Ubuntu 16
Я пытаюсь использовать iptables для переадресации порта с определенного сетевого адаптера и порта на определенный порт на lo/127.0.0.1. Это похоже на правильный инструмент.
В качестве примера, давайте представим, что я хочу, чтобы адаптер ens192 перенаправлял входящий трафик через порт 8443 на 127.0.0.1:443. Я не хочу, чтобы 443 ens192 достиг 127.0.0.1:443 ... он должен казаться закрытым.
Я сделал следующие вызовы (как sudo su, для удобства) при новой установке:
# sysctl -w net.ipv4.ip_forward=1 # permits port-forwarding
# sysctl -w net.ipv4.conf.ens192.route_localnet=1 # permits routing adapter 2 localhost
# iptables -P INPUT DROP
# iptables -t nat -A PREROUTING -i ens192 -p tcp --dport 8443 -j DNAT \
--to-destination 127.0.0.1:443
# iptables -t nat -A POSTROUTING -o ens192 -j MASQUERADE
Однако это не работает ... переход к [ip]:8443 не дает желаемых результатов ... время ожидания браузера истекло.
Я проверил, что сервер работает правильно на желаемом порту.
Я предполагаю, что TCP-запрос браузера изменяется на сервере и выглядит так, как будто он связывается с 127.0.0.1:443. Затем, при ответе, IP-адрес преобразуется обратно в адрес / порт ens192, а не уходит. Или нет?