Linux系统查询、端口是否开放问题
作者:程序员毛毛~
文章介绍了在Linux系统中查询端口是否开放的方法,包括使用lsof和netstat命令查看端口状态,以及检查防火墙配置,同时,通过SSH和Telnet方式测试端口的可访问性
1 linxu系统中查询端口是否开放
1.1 方式1:使用lsof 查看指定端口号是否开放
lsof -i:端口号
如下,表示10010端口已开放,10011端口未开放。
[root@localhost ~]# lsof -i:10010 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 679 root 53u IPv6 36351 0t0 TCP *:rxapi (LISTEN) [root@localhost ~]# lsof -i:10011 [root@localhost ~]#
1.2 方式2:使用netstat 查看端口号
查看系统中所有使用tcp协议开放的端口
netstat -ntpl
查看系统中所有使用udp协议开放的端口
netstat -nupl
2 防火墙
端口即使开放了,外界也不一定能够访问,需要查看下本机的防火墙配置
2.1 防火墙服务状态
#启动防火墙 systemctl start firewalld #重启防火墙 systemctl restart firewalld #停止防火墙 systemctl stop firewalld #查看防火墙状态 systemctl status firewalld #开机时启用防火墙 systemctl enable firewalld #开机时禁用防火墙 systemctl disable firewalld #查看是否开机启动 systemctl is-enabled firewalld #查看开放端口列表 firewall-cmd --zone=public --list-ports #刷新防火墙规则 firewall-cmd --reload
2.2 开放/禁止端口访问权限
#开放端口8080,协议类型tcp的访问权限 firewall-cmd --zone=public --add-port=8080/tcp --permanent #关闭端口8080,协议类型tcp的访问权限 firewall-cmd --zone=public --remove-port=8080/tcp --permanent #开放或者关闭,需要刷新防火墙规则 firewall-cmd --reload #查看开放的端口列表 firewall-cmd --zone=public --list-ports
3 远试端口是否能够访问
测试条件:使用window电脑连通linux设备网络进行测试。假如linux设备地址是192.168.0.100,并且windows电脑可以ping通。
3.1 ssh方式
windows上打开cmd。输入以下命令:
ssh -v root@192.168.0.100 -p <port>
如下代表linux设备的10010端口是开放的,并且可以访问:

如下代表linux设备的10011端口没有开放,不可以访问:

3.2 telnet方式
windows上打开cmd。输入以下命令:
telnet <ip> <port>
如下代表linux设备的80端口已经开放,并且可以访问:

如下代表linux设备的443端口没有开放,不可以访问:

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
