Перенаправление портов с iptables не работает

Вы установили все соответствующие инструменты пользователя Dell для той комбинации машины/ОС? Я думаю, что это - проблема IPMI, где Ваша машина говорит ОС что-то, что это не знает, как иметь дело с без правильных установленных драйверов/инструментов.

Также попытайтесь включить или отключить HPET в Вашей BIOS Setup и/или grub.conf.

3
задан 30 March 2011 в 23:53
1 ответ

Ваши правила DNAT должны быть немного более конкретными для работы правильно. Один способ продолжиться состоит в том, чтобы добавить a --destination (или -d) условие каждому из них, например.

iptables -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 80 -j DNAT \
    --to-destination 192.168.1.254

iptables -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 22 -j DNAT \
    --to-destination 192.168.1.254

где $EXT_IP Ваш внешний маршрутизатор (глобально routable) IP-адрес.

Протест: Если внутренние клиенты попытаются соединиться с www или ssh сервисами на 192.168.1.254 через внешнее (глобально routable) IP-адрес, то их попытки подключения перестанут работать (в то время как соединения непосредственно с 192.168.1.254 успешно выполнились бы).

Для решения этого, лучше говорить внутренним клиентам получать доступ к серверу через его внутренний IP-адрес. С другой стороны, можно настроить "шпильку NAT" путем добавления пары большего количества правил iptables, следующим образом:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.254 -p tcp \
    --dport 80 -j SNAT --to-source $INT_IP

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.254 -p tcp \
    --dport 22 -j SNAT --to-source $INT_IP

где $INT_IP внутренний IP-адрес маршрутизатора (например, 192.168.1.1). С этими правилами соединения от внутренних клиентов к внешнему IP-адресу будут течь через маршрутизатор. Лучше стараться не делать шпильку NAT, когда это возможно, так как это - довольно неэффективное использование ресурсов системы маршрутизатора и сетевой системы.

4
ответ дан 3 December 2019 в 06:18

Теги

Похожие вопросы