欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何查看linux服务器端口号有没有被开启?

程序员文章站 2022-04-30 23:06:38
...

如何查看linux服务器端口号有没有被开启?

端口号的开启:

firewall-cmd --zone=public --add-port=8090/tcp --permanent

端口号的关闭:

firewall-cmd --zone=public --remove-port=8080/tcp --permanent 

可以替换端口号, --permanent 参数是永久生效,不随重启服务器而失效,

修改端口后需要

firewall-cmd --reload 

重新加载防火墙配置来生效。

重点来了:

firewall-cmd --query-port=8090/tcp

这一条命令可以查看防火墙有没有开放当前端口,返回yes是开启,no是未开启,若是返回FirewallD is not running则说明防火墙是关闭状态。

接下来我们做一个实验,根据网上的搜索结果,大多数都是用

lsof -i:端口号 或者netstat -anp |grep 端口号来查看,

这两个命令只能查看端口号当前有没有被占用,并不能看到有没有开放,比如你本地运行了一个mysql,3306被mysql占用,但是3306为开启,所以你用第三方连接工具还是连接不上mysql,因为端口并没有被开启。

[[email protected] ~]# systemctl start firewalld
[[email protected] ~]# lsof -i:8090
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    23815 root   14u  IPv6 1193483      0t0  TCP *:8090 (LISTEN)
[[email protected] ~]# netstat -anp |grep 8090
tcp6       0      0 :::8090                 :::*                    LISTEN      23815/java
[[email protected] ~]# firewall-cmd --query-port=8090/tcp
yes
[[email protected] ~]#

上面的语句可以看到,我们打开了防火墙,分别用三条命令查看了端口的开放情况。

[[email protected] ~]# firewall-cmd --zone=public --remove-port=8090/tcp --permanent
success
[[email protected] ~]# firewall-cmd --reload
success
[[email protected] ~]# lsof -i:8090
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    23815 root   14u  IPv6 1193483      0t0  TCP *:8090 (LISTEN)
[[email protected] ~]# netstat -anp |grep 8090
tcp6       0      0 :::8090                 :::*                    LISTEN      23815/java
[[email protected] ~]# firewall-cmd --query-port=8090/tcp
no

我关闭了8090端口,重新加载防火墙设置,发现用lsof 和netstat 仍旧可以查看当前端口号占用情况,但是不能查看是否开放,需要用第三条命令。

[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# firewall-cmd --query-port=8090/tcp
FirewallD is not running
[[email protected] ~]# netstat -anp |grep 8090
tcp6       0      0 :::8090                 :::*                    LISTEN      23815/java
[[email protected] ~]# lsof -i:8090
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    23815 root   14u  IPv6 1193483      0t0  TCP *:8090 (LISTEN)

最后我关闭了防火墙,可以看到命令显示防火墙没有被开启。