как изменить специальный исходный адрес выхода порта?

Я хочу изменить свой datapackage от порта 25 к другому внутреннему адресу (192.168.2.253).

iptables -A OUTPUT -o em1 -p tcp --dport 25 -j SNAT --to 192.168.2.253

Но я добираюсь, вывод:

root@gateway:~# iptables -A OUTPUT -o em1 -p tcp --dport 25 -j SNAT --to 192.168.2.253
iptables: Invalid argument. Run `dmesg' for more information.

как сделать это правильно?

Вывод dmesg:

https://gist.githubusercontent.com/thinksource/af08acd451380823257b/raw/5d720ce48bcb5ea27699bfcde63e4ccd92e2118c/dmesg%20output

-2
задан 25 March 2015 в 06:18
2 ответа

Чтобы добавить правило NAT, вам нужно сделать это в таблице NAT; добавьте "-t nat" в командную строку iptables. Кроме того, вы можете выполнять SNAT только в цепочке INPUT NAT (не OUTPUT) и на входящем интерфейсе (-i, а не -o). Очевидно, вам придется изменить, какой именно интерфейс, на тот, куда приходит пакет, а не на тот, через который он уходит

0
ответ дан 5 December 2019 в 21:42

Цель SNAT имеет смысл только в цепочке POSTROUTING таблицы nat.

Допустимая версия вашего правила:

iptables -t nat -A POSTROUTING -o em1 -p tcp --dport 25 -j SNAT --to-source 192.168.2.253

Кстати, если ваш (выходной) интерфейс содержит IP 192.168.2.253 , то лучше используйте:

iptables -t nat -A POSTROUTING -o em1 -p tcp --dport 25 -j MASQUERADE
0
ответ дан 5 December 2019 в 21:42

Теги

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