Linux 查看网络端口命令大全
在 Linux 中,可以使用多种工具来检查网络端口。以下是详细的命令和用法:
一. 使用前提
命令 | 端口必须被监听才能检测 | 端口未使用时是否能检测 |
---|---|---|
telnet | 是 | 否 |
nc | 是(-z 模式) | 否(仅检测监听端口) |
curl | 是 | 否 |
nmap | 否 | 是 |
ss | 是 | 否 |
lsof | 是 | 否 |
ping | 否 | 是 |
traceroute | 否 | 是 |
iptables | 否 | 是 |
如果需要检测未使用的端口,推荐使用 nmap
或检查防火墙配置(如 iptables
)。
二. 命令详解
1. telnet
用途: 用于检查远程主机指定端口是否可以建立TCP
连接。
命令格式:
telnet <IP地址或主机名> <端口号>
示例:
telnet 192.168.118.200 22
telnet 192.168.118.200 80
输出解释:
- 如果连接成功,会进入一个交互式终端,显示类似
Connected to ...
。 - 如果失败,显示类似
Connection refused
或超时。
注意:
- 需要安装
telnet
工具(部分系统默认不安装)。 - 适用于
TCP
协议。
安装命令:
sudo apt install telnet # Debian/Ubuntu 系
sudo yum install telnet # RHEL/CentOS 系
2. nc(netcat)
用途:nc
是功能强大的网络工具,可以检查TCP
和UDP
端口的可达性。
命令格式:
nc -zv <IP地址或主机名> <端口号>
示例:
nc -zv 192.168.118.200 22
nc -zv 192.168.118.200 80
输出解释:
Connection to...
表示端口可用。Connection refused
表示端口不可用。
注意:
-z
表示扫描模式,-v
表示显示详细信息。- 支持
TCP
和UDP
(加-u
参数)。
3. curl
用途: 检查 HTTP
或 HTTPS
服务是否运行,适用于 80、443 等 Web 端口。
命令格式:
curl -I <URL>
示例:
curl -I http://192.168.1.100
输出解释:
- 返回 HTTP 响应头表示端口正常。
- 如果超时或无响应,端口可能不可用。
4. nmap
用途: nmap
是强大的网络扫描工具,可以扫描主机的开放端口。
命令格式:
nmap -p <端口号> <IP地址或主机名>
示例:
nmap -p 22 192.168.118.200
nmap -p 80 192.168.118.200
输出解释:
open
表示端口开放。closed
表示端口关闭。
扫描多个端口:
nmap -p 20-22 192.168.118.200
注意:
- 需要安装
nmap
工具:
sudo apt install nmap # Debian/Ubuntu
sudo yum install nmap # RHEL/CentOS
5. ss
用途: ss
是现代Linux
中的网络连接状态工具,可以检查本地端口是否在监听。
命令格式:
ss -ltn
输出解释:
-
LISTEN
表示端口正在监听。 -
输出中包含本地地址和端口号,例如:
LISTEN 0 128 *:22 *:*
LISTEN 0 128 [::]:22 [::]:*
** 检查特定端口:**
ss -ltn | grep ':22'
ss -ltn | grep ':80'
6. lsof
用途: 列出当前系统中正在使用的端口。
命令格式:
lsof -i:<端口号>
示例:
lsof -i:22
lsof -i:80
输出解释:
- 显示使用该端口的进程信息。
- 如果无输出,表示端口未被占用。
列出所有监听的端口:
lsof -i -P -n | grep LISTEN
7. ping
用途: 用于检测目标主机是否可达,但不能直接检查端口。
命令格式:
ping <IP地址或主机名>
示例:
ping 192.168.118.200
输出解释:
- 如果有响应,表示目标主机网络连通。
- 如果无响应,主机可能不可达或
ICMP
被禁用。
8. traceroute
用途: 跟踪数据包到达目标主机的路径,可用于分析端口是否被中间设备阻塞。
命令格式:
traceroute <IP地址或主机名>
示例:
traceroute 192.168.118.201
traceroute -T -p 80 192.168.118.201
9. ip 和 iptables
用途: 查看本地防火墙是否阻止了端口。
命令格式:
iptables -L -n | grep <端口号>
示例:
iptables -L -n | grep 80
10. test-netconnection(Windows/Linux 兼容)
用途: 使用 PowerShell
或跨平台工具进行网络测试。
命令格式:
test-netconnection -computername <IP地址或主机名> -port <端口号>
三. 总结
工具 | 检查类型 | 特点 |
---|---|---|
telnet | TCP 连接 | 轻量级,简单直接 |
nc | TCP/UDP 连接 | 强大,支持端口范围扫描 |
curl | HTTP/HTTPS 服务 | 专注于 Web 服务测试 |
nmap | 端口扫描 | 功能全面,适合网络分析 |
ss | 本地监听端口 | 查看监听状态 |
lsof | 本地使用端口 | 查看端口占用进程 |
ping | 主机可达性 | 不针对端口 |
traceroute | 路由跟踪 | 分析中间路由问题 |
iptables | 防火墙规则 | 检查端口是否被阻止 |
使用时根据场景选择合适的工具。