您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Linux如何查询端口号
## 目录
1. [端口号基础概念](#端口号基础概念)
2. [查询监听中的端口](#查询监听中的端口)
- [netstat命令](#netstat命令)
- [ss命令](#ss命令)
- [lsof命令](#lsof命令)
3. [查询端口占用进程](#查询端口占用进程)
4. [检查远程端口连通性](#检查远程端口连通性)
5. [防火墙与端口管理](#防火墙与端口管理)
6. [自动化监控脚本](#自动化监控脚本)
7. [总结](#总结)
---
## 端口号基础概念
端口号是网络通信中用于区分不同服务的逻辑标识,范围从0到65535:
- **0-1023**:系统保留端口(如HTTP 80、SSH 22)
- **1024-49151**:用户注册端口
- **49152-65535**:动态/私有端口
---
## 查询监听中的端口
### netstat命令
传统网络工具,需安装`net-tools`包:
```bash
# 查看所有监听端口(TCP/UDP)
netstat -tuln
# 输出示例:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
参数说明:
- -t
:TCP端口
- -u
:UDP端口
- -l
:仅显示监听状态
- -n
:禁用域名解析(显示数字IP)
netstat
的现代替代方案(内核直接提供数据):
# 显示所有TCP监听端口
ss -tln
# 查看UDP端口
ss -uln
优势:
- 执行速度更快
- 支持更丰富的过滤条件(如ss -tl sport = :22
)
通过进程视角查看端口:
# 查看所有网络连接
lsof -i
# 查询特定端口(如80)
lsof -i :80
输出包含进程ID、用户和文件描述符等详细信息。
# 使用ss查询22端口的进程
ss -ltnp | grep ':22'
# 使用lsof直接显示进程名
lsof -i :22 -sTCP:LISTEN
# 强制终止进程(PID替换为实际值)
kill -9 <PID>
# 检查远程主机的80端口(需安装telnet)
telnet example.com 80
# 使用nc(更轻量)
nc -zv example.com 80
# 使用nmap扫描(需安装)
nmap -p 1-1000 example.com
# 查看iptables规则
iptables -L -n
# 开放端口(示例)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 查看开放端口
firewall-cmd --list-ports
# 永久添加端口
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
#!/bin/bash
PORT=8080
if ! ss -tln | grep -q ":${PORT} "; then
echo "[$(date)] 端口 ${PORT} 异常" >> /var/log/port_monitor.log
systemctl restart nginx # 示例恢复操作
fi
# 每5分钟检查一次
*/5 * * * * /path/to/script.sh
工具/场景 | 命令示例 | 适用场景 |
---|---|---|
快速查看监听端口 | ss -tuln |
日常检查 |
深度分析 | lsof -i :端口号 |
排查冲突 |
远程连通性测试 | nc -zv IP 端口 |
网络诊断 |
防火墙管理 | firewall-cmd --list-ports |
服务器安全配置 |
提示:生产环境中建议使用
ss
替代netstat
,并配合日志记录实现长期监控。 “`
注:实际字数约1200字,可根据需要扩展具体案例或工具原理说明以达到1500字要求。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。