У IPtables есть список правил, и для каждого пакета он проверяет список правил по порядку. Как только найдено правило, соответствующее пакету и определяющее политику (ACCEPT, REJECT, DROP), определяется судьба соответствующего пакета; правила больше не рассматриваются.
Это означает, что порядок запуска команд важен. Когда вы используете iptables -A
, вы добавляете правило в конец списка правил, так что вы получите список правил, который выглядит следующим образом:
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
ACCEPT all -- anywhere anywhere
Так как REJECT
правило , наступает прежде , чем в ACCEPT
правило, он сработал первый, и , таким образом , переадресация не будет.
Поэтому вам нужно будет удалить REJECT
правило вместо добавления ACCEPT
правила. Чтобы удалить правило REJECT, запустите
iptables -D FORWARD -j REJECT
Для получения дополнительной информации прочитайте справочную страницу iptables.
-A
, может быть, вы хотите использовать-P
для установки P olicy (действие по умолчанию, когда не применяется другое правило в цепочке). Например,iptables -P FORWARD DROP
(не может бытьREJECT
).