在 Linux 系统中,可以通过以下几种方法查看当前系统中开发的端口:
---
1. 使用 `netstat`
```bash
netstat -tuln
```
- 选项解释:
- `-t`:显示 TCP 协议的连接。
- `-u`:显示 UDP 协议的连接。
- `-l`:显示处于状态的端口。
- `-n`:以数字形式显示地址和端口。
---
2. 使用 `ss`(推荐)
```bash
ss -tuln
```
- 选项解释与 `netstat` 类似:
- `-t`:显示 TCP 协议端口。
- `-u`:显示 UDP 协议端口。
- `-l`:只显示状态的端口。
- `-n`:数字形式显示端口和地址。
---
3. 使用 `lsof`
```bash
lsof -i -P -n | grep LISTEN
```
- 选项解释:
- `-i`:显示网络连接相关信息。
- `-P`:显示端口号而非服务名。
- `-n`:不解析主机名,加快查询速度。
- `grep LISTEN`:只显示状态的端口。
---
4. 使用 `nmap` 扫描本地端口
需要安装 `nmap` 工具:
```bash
nmap -sT -p- localhost
```
- `-sT`:使用 TCP 连接扫描。
- `-p-`:扫描所有端口(从 1 到 65535)。
---
5. 查看特定服务端口
如果知道服务名,可以通过 `systemctl` 或 `ps` 查找对应端口。例如:
```bash
systemctl status nginx
```
或:
```bash
ps -aux | grep nginx
```
---
6. 结合防火墙命令
如果你的系统使用了 `iptables` 或 `firewalld`:
- 查看防火墙开放的端口:
```bash
sudo firewall-cmd --list-ports
```
- 对于 `iptables`:
```bash
sudo iptables -L -n -v
```
---
输出结果解释
无论使用哪种方法,都会显示以下内容:
- Local Address:本地地址(如 `0.0.0.0` 表示所有 IP)。
- Port:的端口号(如 `80`、`443`)。
- State:端口状态(如 `LISTEN`)。
如果需要更多信息,请告诉我!