2

Я должен NAT ПК с Windows с IP 10.10.10.10 через сервер Linux с двумя сетевыми картами. IP-адреса сетевых карт 20.20.20.50 (подключены к внешней сети) и 10.10.10.9. Второй сетевой адаптер подключен к ПК с Windows. Мое требование заключается в том, что я должен иметь возможность подключаться к ПК с Windows из внешней сети, поэтому мне нужно использовать NAT 20.20.20.40 (это IP-адрес, через который внешняя сеть должна иметь доступ к ПК с Windows) до 10.10.10.10.

Как мне настроить iptables на сервере Linux для этого?

1 ответ1

1

@John Siu не совсем корректен - хотя шаги, которые он указал, необходимы для того, чтобы переадресация работала, магический соус NAT определенно необходим, поскольку 20.20.20.50 - это реальный IP-адрес, а 10.10.10.x - нет.

Для исходящих соединений (которые, возможно, уже есть)

Предполагая, что Внешним интерфейсом является eth0, а внутренним интерфейсом является eth1, вам дополнительно требуется правило, подобное

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

или аналогично, но с гораздо более жестким контролем

/sbin/iptables -t nat -A POSTROUTING -s 10.10.10.10 -o eth0 -j SNAT --to 20.20.20.40

Для входящих подключений из мира на ваш компьютер

/sbin/iptables -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.10.10.10:80

Это позволит получать запросы из мира по TCP-порту 80 на ваш ПК с Windows. (Вы бы, конечно, изменили порты и протокол по мере необходимости)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .