Порт вперед с iptables и debian
У меня есть локальная сеть, сервер и виртуальная машина
lan: 192.168.50.0/24
linux server: 192.168.50.3
linux VM guest: 192.168.50.1 (with apache)
Я хочу, чтобы сервер Linux перенаправил все запросы с локальной сети и порта 80 на 192.168.50.1:80
Я использую их без результатов:-/
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.50.1:80
iptables -A FORWARD -p tcp -d 192.168.50.1 --dport 80 -j ACCEPT
iptables -A POSTROUTING -t nat -s 192.168.50.1 -o eth0 -j MASQUERADE
ip_forward is 1
1 ответ
В вашей настройке переадресация портов обычно не требуется. (Существует очень небольшое количество ситуаций, в которых требуется то, что называется "шпилька NAT", где NAT используется внутренне, но это не похоже на случай из того, что вы описали)
Переадресация портов используется, когда внутренние, не глобально маршрутизируемые (RFC1918) хосты совместно используют ограниченное количество (часто только один) публично маршрутизируемый IP-адрес (известный как не RFC1918). Native Address Translation, NAT (он же маскарадинг) используется для этой работы. Префикс вашего адреса 192.168.xx является частью RFC1918.
Переадресация портов используется в ситуации, когда клиентам в общедоступном Интернете необходимо получить доступ к хостам за NAT через брандмауэр.
В вашем случае все ваши хосты RFC1918 и находятся в одной сети, поэтому NAT не требуется. Вам просто нужно правильно настроить IP-сеть.
Правила PREROUTING и POSTROUTING в таблице NAT предназначены для трансляции собственных адресов, которая вам не нужна.
Предполагая, что виртуальная машина настроена как мост, а топология сети правильная, ваши хосты используют одну и ту же локальную сеть IPV4 (192.168.50.0/24). Из-за этого нет необходимости иметь маршрутизатор в вашей системе, поэтому правило FORWARD не требуется. Правила пересылки имеют смысл только на маршрутизаторе, где включена переадресация IP.
Если вы неправильно настроили свою сеть или не пропустили информацию в своем вопросе, простой ответ заключается в том, что все ваши клиенты в диапазоне IP от 192.168.50.2 до 192.168.50.254 должны иметь доступ к 192.168.50.1 без необходимости использования iptables.