我尝试打开端口5431,输入:
sudo iptables -A INPUT -p tcp --dport 5431 --jump ACCEPT
iptables-save
当我在链iptables -S
中打印规则时,输出为:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -p tcp -m tcp --dport 5431 -j ACCEPT
所以我试图通过我的机器上的nmap检查开放端口:
mwalko@mwalko-X58A-UD3R:~$ nmap 10.1.2.30
Starting Nmap 7.01 ( https://nmap.org ) at 2018-04-20 16:46 CEST
Nmap scan report for static-30.vlan2.vlex.local (10.1.2.30)
Host is up (0.00027s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
5432/tcp open postgresql
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
并且可以看出上面5431仍然没有打开。如何打开这个端口?
@Edit
root@dell1950:/sbin# netstat -ntulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 923/sshd
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 927/postgres
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 861/rpcbind
tcp6 0 0 :::22 :::* LISTEN 923/sshd
tcp6 0 0 :::5432 :::* LISTEN 927/postgres
tcp6 0 0 :::111 :::* LISTEN 861/rpcbind
udp 0 0 0.0.0.0:111 0.0.0.0:* 861/rpcbind
udp 0 0 0.0.0.0:613 0.0.0.0:* 861/rpcbind
udp6 0 0 :::111 :::* 861/rpcbind
udp6 0 0 :::613 :::* 861/rpcbind
答案 0 :(得分:2)
您没有打开端口,只是让指向此端口的数据包不被防火墙过滤。
程序应该打开端口(又名listening
)。防火墙只决定数据包是否进入特定端口(可能是打开或关闭),但与如何处理数据包无关。
答案 1 :(得分:1)
我使用了@Xenwar注释,但必须指定端口才能使其工作:
nc -l -p 5431
。
现在:
mwalko@mwalko-X58A-UD3R:~$ nmap 10.1.2.30
Starting Nmap 7.01 ( https://nmap.org ) at 2018-04-23 08:40 CEST
Nmap scan report for static-30.vlan2.vlex.local (10.1.2.30)
Host is up (0.00022s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
5431/tcp open park-agent
5432/tcp open postgresql
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
注意到nmap关闭了netcat的nc -l
; /