您好,登录后才能下订单哦!
# Linux中怎么查看端口占用情况
## 前言
在Linux系统管理和网络调试过程中,经常需要检查端口占用情况。无论是排查服务启动失败、解决端口冲突,还是进行网络安全审计,掌握端口查看方法都是运维人员的基础技能。本文将详细介绍Linux系统中多种查看端口占用的方法和工具。
## 一、使用netstat命令
### 1. 基本用法
`netstat`(network statistics)是经典的网络状态查看工具:
```bash
netstat -tuln
参数说明:
- -t
:显示TCP端口
- -u
:显示UDP端口
- -l
:仅显示监听端口
- -n
:以数字形式显示地址和端口
netstat -ano
-a
显示所有连接,-o
显示进程ID
netstat -tuln | grep 22
现代Linux发行版可能默认未安装:
# Debian/Ubuntu
sudo apt install net-tools
# RHEL/CentOS
sudo yum install net-tools
ss
(socket statistics)是netstat
的现代替代品,性能更好:
ss -tuln
参数与netstat类似:
- -t
:TCP
- -u
:UDP
- -l
:监听状态
- -n
:数字显示
# 查看所有TCP连接
ss -t -a
# 显示进程信息
ss -tulnp
-p
参数会显示占用端口的进程信息
lsof
(list open files)可以查看进程打开的文件(包括网络套接字):
sudo lsof -i
sudo lsof -i :22
# TCP
sudo lsof -i TCP
# UDP
sudo lsof -i UDP
fuser
可以显示使用特定端口的进程:
sudo fuser 80/tcp
输出为进程ID,可使用ps -p <PID>
查看详情
nmap
是专业的端口扫描工具:
sudo nmap -sT -O localhost
sudo nmap -p 1-1024 localhost
sudo apt install gnome-nettool
sudo apt install wireshark
Linux将网络信息存储在/proc
文件系统中:
# 查看TCP连接
cat /proc/net/tcp
# 查看UDP连接
cat /proc/net/udp
注意:输出为十六进制格式
当服务启动报”Address already in use”时:
sudo ss -tulnp | grep 8080
sudo kill <PID>
定期检查异常端口:
sudo netstat -ano | grep ESTABLISHED
编写监控脚本:
#!/bin/bash
if ! ss -tln | grep -q ':80 '; then
echo "HTTP服务未运行!"
systemctl restart apache2
fi
工具 | 速度 | 功能丰富度 | 安装难度 | 详细信息 |
---|---|---|---|---|
netstat | 慢 | 中等 | 需安装 | 一般 |
ss | 快 | 中等 | 自带 | 一般 |
lsof | 中等 | 高 | 可能安装 | 详细 |
nmap | 慢 | 非常高 | 需安装 | 非常详细 |
A: 查看系统级端口和所有进程信息需要root权限
grep 80 /etc/services
A: TCP连接正常关闭后的等待状态,通常2分钟后自动消失
watch -n 1 'ss -tuln'
掌握Linux端口查看技术是系统管理的基础。根据实际需求:
- 快速检查:使用ss
- 需要进程信息:使用lsof
- 深度扫描:使用nmap
- 旧系统:使用netstat
建议将常用命令加入个人备忘清单,提高工作效率。 “`
注:实际字符数会根据格式略有变化,本文约1450字。如需调整篇幅,可增减”实际应用场景”或”性能比较”等部分的详细内容。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。