Моя установка выглядит следующим образом:
У меня есть сервер Linux с двумя интерфейсами, eth0
и eth1
. eth1
есть интернет-соединение через мою обычную локальную сеть. eth0
обслуживает DHCP, а сам интерфейс имеет IP-адрес 10.0.0.1
.
Я хочу сделать следующее:
Я хочу, чтобы пакеты на порту 80, исходящие от компьютеров, подключенных к eth0
были перенаправлены на порт 80 на самой машине маршрутизации, и ответные пакеты, конечно, были перенаправлены обратно. Это само по себе достаточно просто, но у меня есть еще одно требование. Я хотел бы, чтобы клиенты на eth0
с определенными IP-адресами могли быть освобождены от этого, и чтобы пакеты порта 80 маршрутизировались, как обычно. Как я могу это сделать? До сих пор я сделал следующее, чтобы перенаправить все пакеты порта 80 из eth0
на локальную машину. Это работает, но я не знаю, как выполнить мое второе требование.
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.0.0.1:80 -i eth0
iptables -t nat -A POSTROUTING -p tcp -d 127.0.0.1 --dport 80 -j SNAT --to-source 10.0.0.1