У меня роутер с прошивкой dd-wrt. Я настроил 2-й IP-адрес с помощью команд Iptables и переадресовал один порт. Работает нормально. Однако это не работает внутри. Попытка перейти внутрь на 89.25.1.1:443 не сработает. Просто внешне.

# Ip for INTRANET
ifconfig vlan2:1 89.25.1.1 netmask 255.255.255.248 broadcast 89.25.1.15

# Routes for IIS HTTPS
iptables -t nat -I POSTROUTING -o vlan2 -s 192.168.51.7 -j SNAT --to 89.25.1.1
iptables -t nat -I PREROUTING -i vlan2 -d 89.25.1.1 -p tcp --dport 443 -j DNAT --to 192.168.51.7:443
iptables -I FORWARD -i vlan2 -d 192.168.51.7 -p tcp --dport 443 -j ACCEPT

Как я мог это исправить, чтобы он работал и внутри?

1 ответ1

0

Я не знаю, как выглядят ваши интерфейсы. Я предполагаю, что vlan2 - это ваш внешний интерфейс, что означает, что проблема в этом правиле:

iptables -t nat -I PREROUTING -i vlan2 -d 89.25.1.1 -p tcp --dport 443 -j DNAT --to 192.168.51.7:443

-i vlan2 означает, что правило совпадает только в том случае, если пакет входит на интерфейс vlan2 - это не так, он поступает из внутренней сети, так что это vlan1 или что-то еще, что вызывается в вашей конфигурации. Чтобы иметь тот же самый dnat, было бы хорошо просто полностью исключить ограничение интерфейса с параметром -i , то есть просто использовать

iptables -t nat -I PREROUTING -d 89.25.1.1 -p tcp --dport 443 -j DNAT --to 192.168.51.7:443

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