【咋查看linux系统的程序端口】在Linux系统中,经常需要查看哪些程序正在使用哪些端口。这在排查网络问题、防火墙配置或服务管理时非常有用。本文将总结几种常见的方法,并以表格形式展示它们的使用场景和命令。
一、常用查看Linux系统程序端口的方法总结
方法名称 | 命令 | 说明 | 适用场景 | |
`netstat` | `netstat -tuln` | 查看所有监听中的TCP/UDP端口 | 快速查看端口状态 | |
`ss` | `ss -tuln` | 类似于`netstat`,但性能更优 | 高性能环境使用 | |
`lsof` | `lsof -i :端口号` 或 `lsof -i` | 列出占用网络连接的进程 | 查找特定端口对应的进程 | |
`ps` + `grep` | `ps aux | grep 进程名` | 查看进程信息 | 结合其他工具定位进程 |
`fuser` | `fuser -n tcp 端口号` | 显示使用指定端口的进程 | 快速查找占用端口的PID |
二、详细操作示例
1. 使用 `netstat`
```bash
netstat -tuln
```
- `-t`:显示TCP端口
- `-u`:显示UDP端口
- `-l`:仅列出监听中的端口
- `-n`:以数字形式显示地址和端口(不进行DNS反向解析)
输出示例:
```
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp6 00 :::22 :::LISTEN
tcp6 00 :::80 :::LISTEN
```
2. 使用 `ss`
```bash
ss -tuln
```
功能与`netstat`类似,但速度更快,推荐在高负载服务器上使用。
3. 使用 `lsof`
```bash
lsof -i :22
```
查看占用22端口的进程:
```
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1234 root3uIPv6 123450t0TCP :ssh (LISTEN)
```
4. 使用 `fuser`
```bash
fuser -n tcp 80
```
输出为占用80端口的进程ID:
```
80/tcp:1234
```
三、小结
在Linux系统中,查看程序端口是日常运维的重要技能。根据不同的需求,可以选择不同的命令组合。对于大多数用户来说,`netstat` 和 `lsof` 是最常用的工具;而在高性能环境中,`ss` 是更好的选择。
通过以上方法,可以快速定位端口占用情况,帮助解决服务冲突、端口被占用等问题。