Я использую следующую команду для перенаправления tcp 2222 на узле хоста на tcp 22 в виртуальной машине (192.168.0.100):
iptables -t nat -A PREROUTING -i vmbr0 -p tcp -m tcp --dport 2222 -j DNAT --to-destination 192.168.0.100:22
где vmbr0 - это мост из нескольких публичных IP-адресов в узле хоста. Теперь проблема в том, что все общедоступные IP-адреса в узле хоста принимают входящие запросы от tcp 2222. Я надеюсь ограничиться только одним общедоступным IP-адресом. Итак, как мне изменить команду iptables, чтобы указать общедоступный IP-адрес вместо прослушивания всех IP-адресов, привязанных к vmbr0?
Получил работу, изменив -i
к -d
:
iptables -t nat -A PREROUTING -d x.x.x.x -p tcp -m tcp --dport 2222 -j DNAT --to-destination 192.168.0.100:22
где x.x.x.x - это общедоступный IP-адрес, который я хочу слушать.