CentOS 6.6 上的 iptables

CentOS 6.6 上的 iptables

我正在尝试在 CentOS 上打开一个端口,但似乎不起作用:端口 16 似乎已关闭,而 4075 似乎已打开,尽管根据 iptables 的说法,反之亦然。

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1       30  1920 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:445
2        0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW udp dpt:445
3     8071  630K ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW udp dpt:137
4      516  110K ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW udp dpt:138
5       17  1064 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:139
6        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:16
7        0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW udp dpt:16
8     5533 8865K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
9        6   432 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
10       0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
11       3   872 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
12    2320  277K REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 26 packets, 1776 bytes)
num   pkts bytes target     prot opt in     out     source               destination



[root@titan ~]# telnet localhost 16 Trying ::1... telnet: connect to
address ::1: Connection refused 
[root@titan ~]# telnet localhost 4075
Trying ::1... Connected to localhost.

你能告诉我我做错了什么吗?提前谢谢。

更新 在ip6tables中打开了端口,仍然无法连接

ip6tables -I INPUT 1 -p tcp -m state --state NEW -m tcp --dport 16 -j ACCEPT
ip6tables -I INPUT 1 -p udp -m state --state NEW -m udp --dport 16 -j ACCEPT

telnet localhost 16
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused

更新2我明白了。我没有意识到我需要一个服务来监听端口才能连接 telnet。谢谢大家。

答案1

我自己也遇到过类似的问题。首先,您应该退出 ssh 会话,然后连接到计算机。这是因为大多数 iptables 不会阻止环回接口。其次,正如评论中所说,您使用的是 ipv6。我认为您的问题不在于 iptables。在大多数情况下,您的 iptables 不会拒绝本地主机上的任何内容,但可通过端口 4075 访问的服务器可以使用 ipv6,而端口 16 上的服务器不能,但您的 telnet 命令不使用 ipv4。我认为这是因为我错过了尝试连接到 127.0.0.1。我的 telnet(到任何未打开的端口)就是这样

$ telnet localhost 12334
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused

因此他首先尝试首选的 ipv6,然后在连接被拒绝后尝试通过 ipv4 进行连接。

编辑我看到了您的评论,所以也许您的服务出了问题......您可以尝试记录每个丢弃的包裹吗?这是我发现的一篇文章

答案2

IPTables 适用于 IPV4,但不适用于 IPV6。请使用 ip6tables。

相关内容