Я хочу перенаправить пакеты udp, полученные через порт 162, на другой порт. ex: 8981
я выполнил следующий cmd
iptables -A PREROUTING -t nat -p tcp --dport 162 -j REDIRECT --to-port 8981
Я вижу, что теперь получаю дублирующиеся пакеты на 8981 ..
может ли кто-нибудь направить меня в правильном направлении?
Также как удалить указанное выше правило?
TIA, / день
Мы оставим проблему «повторяющихся пакетов» до тех пор, пока не появятся дополнительные диагностические данные, но удалить правило легко.
Чтобы удалить правило iptables, просто замените -A
с участием -D
:
iptables -D PREROUTING -t nat -p tcp --dport 162 -j REDIRECT --to-port 8981
Если вы используете -I N
вместо этого вы можете использовать iptables -D N
, но это рискованно, если впоследствии были добавлены какие-либо правила.
Если ты действительно облажался и даже не знаю что iptables
команда, которую вы выполнили (bash
имеет историю команд по какой-то причине ...), вы можете перечислить все правила в цепочке следующим образом:
iptables -t nat -L PREROUTING --line-numbers
В результате вы получите следующий результат:
Chain int2ext (1 references)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
2 ACCEPT all -- 192.0.2.0/24 0.0.0.0/0
3 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53
4 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
Затем найдите num
запись столбца, соответствующая правилу, которое вы хотите удалить, и запустите
iptables -t nat -D PREROUTING <num>