在 Linux 系统中,无论是华为欧拉、CentOS、Ubuntu 还是其他发行版,查询端口是否开放都是排查网络问题和确认服务是否正常运行的重要步调
本文将先容如何从本机和外部两个角度来查抄端口状态,利用的工具包括 ss、netstat、lsof、firewall-cmd、telnet、nc 等
一、本机内部查抄端口监听状态
在本机上查询端口是否处于监听状态,可以利用以下几种工具:
1. 利用 ss 下令
ss 是现代 Linux 系统保举的工具,功能类似于旧版的 netstat
- 参数阐明:
- -t:仅显示 TCP 连接
- -n:直接利用数字显示端口,不进行域名解析
- -l:仅显示处于监听状态的连接
- -p:显示关联的历程信息
如果输出中出现指定的端口,阐明该端口正在被某个历程监听
2. 利用 netstat 下令
在一些老版本的 Linux 系统上,可能会利用 netstat:
- netstat -tunlp | grep <端口号>
复制代码
- 参数阐明:
- -t:显示 TCP 连接
- -u:显示 UDP 连接
- -n:不解析 DNS,直接显示数字
- -l:仅显示监听状态的端口
- -p:显示历程信息
3. 利用 lsof 下令
lsof 下令可以列出打开文件的历程,网络端口也被视为文件:
如果有历程正在利用该端口,lsof 会显示相应的历程信息
二、查抄防火墙设置
有时纵然服务在本机监听,防火墙或安全组设置也会拦截外部访问。常用的防火墙工具包括 firewalld 和 iptables
1. 利用 firewalld
查看当前开放的端口:
- firewall-cmd --list-ports
复制代码 查看完整防火墙规则:
如果需要开放某个端口(例如 8080)并永世生效,可以执行:
- firewall-cmd --add-port=8080/tcp --permanent
- firewall-cmd --reload
复制代码 2. SELinux 设置
部分系统启用了 SELinux,它也可能会限制网络访问。可以利用以下下令查看 SELinux 中答应的端口:
如果发现 SELinux 阻止了端口访问,可根据需要调解 SELinux 计谋(但不发起直接禁用 SELinux)
三、从外部测试端口连通性
除了在本机查询外,还可以从外部测试端口是否对外开放:
1. 利用 telnet 或 nc(netcat)
利用 telnet:
或者利用 nc:
此中,-v 显示详细信息,-z 只进行端口探测而不传输数据。如果看到 Connected 或 succeeded 等信息,阐明端口对外开放
2. 利用 nmap
nmap 是一款强盛的网络扫描工具,可以用于查抄端口状态:
扫描结果如果显示为 open,则表示端口开放;若显示为 filtered 或 closed,则可能被防火墙屏蔽或没有服务在监听
3. 利用欣赏器(实用于 Web 服务)
如果该端口提供 HTTP 或 HTTPS 服务,直接在欣赏器地址栏输入 http://<服务器IP>:<端标语> 即可查看页面是否能正常访问
四、排查思路总结
- 确认历程监听
通过 ss、netstat 或 lsof 确认本机上是否有历程在监听目标端口
- 查抄防火墙规则
查看防火墙(如 firewalld 或 iptables)的设置,确保目标端口已放行,同时查抄 SELinux 计谋是否限制访问
- 外部连通性测试
从另一台机器利用 telnet、nc 或 nmap 工具测试目标端口的连通性,确保网络和安全组设置没有问题
只要本机有历程监听端口,而且防火墙及其他安全设置正确,外部设备就能够访问该端口
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |