如何在Ubuntu 11.04上从iptables / firewall打开UDP端口7777

我需要从运行Ubuntu 11.04的VPS启用端口7777,我在这里列出的iptables添加了规则,

Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT udp -- anywhere anywhere udp dpt:7777 Chain FORWARD (policy ACCEPT) target prot opt source destination ACCEPT udp -- anywhere anywhere udp dpt:7777 Chain OUTPUT (policy ACCEPT) target prot opt source destination ACCEPT udp -- anywhere anywhere udp dpt:7777 

但是,当我telnet到端口7777,它说连接拒绝从我身边, telnet xx.xx.xx.xx 7777 ,即使我用telnet localhost 7777在服务器上。

我应该如何有效地打开它,以允许连接到端口7777到我的服务器?

telnet使用TCP。 如果您指定的端口上没有TCP侦听器,则连接请求将被拒绝。 尝试使用nc来代替:

 $ nc -zu <IP> 7777 $ echo $? 0 

退出状态 0返回意味着这个端口是打开的。

或者nmap

 $ sudo nmap -p 7777 -sU -P0 <IP> 

例如:

 $ sudo nmap -p 9 -sU -P0 192.168.6.142 Starting Nmap 5.51 ( http://nmap.org ) at 2012-08-30 21:31 ICT Nmap scan report for (192.168.6.142) Host is up. PORT STATE SERVICE 9/udp open|filtered discard Nmap done: 1 IP address (1 host up) scanned in 2.12 seconds 

您实际上允许所有stream量通过您的防火墙。 所有链的默认策略设置为ACCEPT并且没有任何DROP规则。

至于连接被拒绝的错误,您尝试使用telnet连接,并尝试build立基于TCP的连接。 要testingUDP连接,您需要使用netcatnc-u选项。

您可以检查请求的服务是否在端口7777上侦听,您可以使用:

 netstat -anp | grep 7777 

你肯定有一个服务在该端口上运行? netstat -n可以肯定。

这个链的默认策略是ACCEPT。 所以现在实际上没有活动的块。 冲洗所有的链和所有的表,重新启动并尝试telnetting。

让我们知道