规则允许使用IPV6的端口80

我的服务器:64位Ubuntu 12.04.4 LTS。 提供者:Linode.com。 没有其他防火墙存在。

我有这些规则:

*filter # Allow localhost traffic. This rule is for all protocols. -A INPUT -s ::1 -d ::1 -j ACCEPT -A INPUT -p icmpv6 -j ACCEPT -A OUTPUT -p icmpv6 -j ACCEPT #Allow image server -A INPUT -m tcp -p tcp --dport 31333 -j ACCEPT -A INPUT -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m tcp -p tcp --dport 443 -j ACCEPT COMMIT 

平即使从外面工作。 但是telnet不在本地主机上工作。

 % telnet -6 2600:3c00:0:0:f03c:91ff:fe73:2b08 80 Trying 2600:3c00:0:0:f03c:91ff:fe73:2b08... 

可能是什么问题呢?

最终,我的服务器将侦听端口31333上来自Chrome浏览器WebSocket接口的请求。 我希望看到端口80上的telnet先工作,然后我将在端口31333上工作。

它看起来像Apache需要绑定到64位地址。 但是我甚至添加了这一行来查看ftp是否正常工作,但仍然是telnet无法连接:

 -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT 

新的审判按照迈克尔·汉普顿的build议我已经运行ip6tables -F清除规则,现在运行ip6tables -L显示:

 Chain INPUT (policy DROP) target prot opt source destination Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy DROP) target prot opt source destination 

但仍然连接到端口80不起作用(与IPv4工作):

 # telnet -6 2600:3c00::f03c:91ff:fe73:2b08 80 Trying 2600:3c00::f03c:91ff:fe73:2b08... ^C # telnet -6 2600:3c00:0:0:f03c:91ff:fe73:2b08 80 Trying 2600:3c00::f03c:91ff:fe73:2b08... # telnet 23.239.30.81 80 Trying 23.239.30.81... Connected to 23.239.30.81. Escape character is '^]'. 

即使没有任何规则,您的防火墙也会configuration为丢弃所有stream量。 这将是你的问题的来源。

 Chain INPUT (policy DROP) Chain OUTPUT (policy DROP) 

将这些表的策略重置为ACCEPT以恢复连接。

 ip6tables -P INPUT ACCEPT ip6tables -P OUTPUT ACCEPT 

然后你可以继续构build一个合适的防火墙 。