Я пытался преобразовать трафик HTTPS с внешнего IP-адреса (например, debianIP1) на внутренний IP-адрес (например, debianIP2) на основе нескольких примеров / руководств, например:
Как выполнить переадресацию / перенаправление портов в Debian?
http://jensd.be/343/linux/forward-a-tcp-port-to-another-ip-or-port-using-nat-with-iptables
К сожалению, я не могу заставить его работать. Вот что я делаю на debianIP1:
Файл /etc/sysctl.conf, net.ipv4.ip_forward = 1 (переадресация портов IPv4 включена)
Команды:
iptables -t nat -A POSTROUTING -o venet0: 0 -j MASQUERADE
iptables -t nat -A PREROUTING -i venet0: 0 -p tcp --dport 443 -j DNAT --to debianIP2: 443
iptables -A FORWARD -i venet0: 0 -p tcp --dport 443 -d debianIP2 -j ACCEPT
Когда я использую debianIP1, я выполняю:
telnet debianIP2 443 - я вижу, что подключен
telnet localhost 443 - в соединении отказано
Используется venet0: 0, поскольку это единственный интерфейс, который показывает внешний IP-адрес (другие - venet0 и lo). Включение venet0 для venet0: 0 дает тот же результат.
Может кто-нибудь сказать мне, что мне не хватает?
Основываясь на ответе ниже, я добавил --to-destination вместо --to, но, к сожалению, это не помогло. В соединении отказано.
Пытаться --to-destination
что не то же самое, что --to