CentOS 7 - 新实例。我想开放8888端口,所以发出:
# firewall-cmd --zone=public --add-port=8888/tcp --permanent
success
# firewall-cmd --reload
success
# netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1706/master
tcp 0 0 0.0.0.0:26532 0.0.0.0:* LISTEN 1470/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1706/master
tcp6 0 0 :::26532 :::* LISTEN 1470/sshd
8888端口在哪里?所以我尝试:
# firewall-cmd --zone=public --list-all
public (default)
interfaces:
sources:
services: dhcpv6-client https
ports: 8888/tcp 26532/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
什么?为什么显示8888端口?所以我尝试:
# lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
chronyd 497 chrony 1u IPv4 12405 0t0 UDP my.srvr.com:323
chronyd 497 chrony 2u IPv6 12406 0t0 UDP localhost:323
sshd 1321 root 3u IPv4 14788 0t0 TCP *:26532 (LISTEN)
sshd 1321 root 4u IPv6 14797 0t0 TCP *:26532 (LISTEN)
master 1716 root 13u IPv4 15666 0t0 TCP my.srvr.com:smtp (LISTEN)
master 1716 root 14u IPv6 15667 0t0 TCP localhost:smtp (LISTEN)
sshd 1969 root 3u IPv4 71914 0t0 TCP my.srvr.com:26532->184.71.11.86:35174 (ESTABLISHED)
sshd 1971 rob 3u IPv4 71914 0t0 TCP my.srvr.com:26532->184.71.11.86:35174 (ESTABLISHED)
smtpd 2572 postfix 6u IPv4 15666 0t0 TCP my.srvr.com:smtp (LISTEN)
smtpd 2572 postfix 7u IPv6 15667 0t0 TCP localhost:smtp (LISTEN)
那么8888端口在哪里呢?为什么它显示在firewall-cmd下而不是其他的?
答案1
在防火墙中打开端口并不自动意味着应用程序将尝试绑定它。这些是不同的事情。应用程序可以绑定到防火墙中尚未打开的端口,反之亦然。
firewall-cmd
(也可能iptables -L
)向您展示防火墙的样子。
netstat
并向lsof
您展示您的应用程序正在做什么和尝试做什么。