命令iptables在定义规则时不再识别最常用的选项之一:– --dport
。
我得到这个错误:
[root@dragonweyr /home/calyodelphi]# iptables -A INPUT --dport 7777 -j ACCEPT_TCP_UDP iptables v1.4.7: unknown option `--dport' Try `iptables -h' or 'iptables --help' for more information.
上面的添加规则命令只是启用Terraria连接的一个示例。
这里是我现在作为一个准系统的iptablesconfiguration( listiptables
别名iptables -L -v --line-numbers
),很明显,– --dport
已经在过去工作:
root@dragonweyr /home/calyodelphi]# listiptables Chain INPUT (policy DROP 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 39 4368 ACCEPT all -- lo any anywhere anywhere 2 114 10257 ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED 3 1 64 ACCEPT tcp -- eth1 any anywhere anywhere tcp dpt:EtherNet/IP-1 4 72 11610 ACCEPT all -- eth1 any anywhere anywhere Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 91 packets, 10045 bytes) num pkts bytes target prot opt in out source destination Chain ACCEPT_TCP_UDP (0 references) num pkts bytes target prot opt in out source destination 1 0 0 ACCEPT tcp -- any any anywhere anywhere
我也试图定义一个自定义链(受这个问题的启发)来接受tcp和udp连接,这样我就不必为所有我想要启用tcp和udp的规则定义两个规则(比如Minecraft或者Terraria服务器或其他服务)。 但即使这样也行不通:
[root@dragonweyr /home/calyodelphi]# iptables -P ACCEPT_TCP_UDP DROP iptables: Bad built-in chain name.
这样做会变得非常令人沮丧,用礼貌的语言(与此有关的诅咒会让水手告诉我看我的嘴巴)。 我的Google-fu很糟糕,所以我还没有find适用于此的解决scheme。 我在路由器上运行CentOS 6.5。 任何帮助和指针,你们可以提供将是真棒。
编辑:
奖金问题:我也计划configuration端口转发。 是否仍然需要设置规则来接受特定端口上的传入连接?
首先给一个-p
选项,如-p tcp
或-p udp
。
例子:
iptables -A INPUT -p tcp –dport 22 -m状态 – 状态NEW -j DROP
iptables -A INPUT -p udp -dport 53 –sport 1024:65535 -j ACCEPT
你也可以尝试-p all
但是我从来没有这样做,也没有在例子中find太多的支持。
如果使用–dport,则协议(-p)是必需的。 例:
-p tcp
@dmourati和@diegows已经回答了你的第一个问题,所以我会解决你的第二个问题。 和奖金的问题。 而且我还会收到奖金小费;)
iptables -P
只接受BUILT-IN链。 在filter
表中,这将是INPUT
, OUTPUT
和FORWARD
链。
端口转发不能被INPUT
链处理,所以你不必在INPUT
链中打开端口。 不过,它的确被FORWARD
链处理了。 小心点。
奖金提示:在学习和/或排除iptables
故障时, iptables-save
的输出比iptables -L -v --line-numbers
的输出更好。 试试吧,你会惊喜的:)