我需要从运行 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 连接到服务器telnet localhost 7777
。
我应该如何有效地打开它以允许连接到我的服务器的端口 7777?
答案1
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
答案2
您实际上是允许所有流量通过防火墙。所有链的默认策略都设置为,ACCEPT
并且您没有任何DROP
规则。
至于连接被拒绝错误,您正在尝试使用 telnet 进行连接,这会尝试建立基于 TCP 的连接。要测试 UDP 连接,您需要使用netcat
或nc
带-u
选项。
您可以检查请求的服务是否正在监听端口 7777,可以使用:
netstat -anp | grep 7777
答案3
您确定该端口上有服务正在运行吗?使用 netstat -n 确认。
此链的默认策略是 ACCEPT。因此实际上当前没有活动块。刷新所有链和所有表,重新启动并尝试 telnet。
让我们知道。