基础网络信息与连接查看
这些命令用于查看本机的网络配置、活跃的网络连接和进程。

ifconfig / ip
ifconfig: 传统上用于配置和显示网络接口信息,在现代系统中,其功能已被ip命令取代。ip: 功能更强大的现代替代品,用于管理网络接口、路由、策略等。
常用场景:
- 查看所有网络接口的 IP 地址、MAC 地址、状态。
示例:
# 查看所有网络接口信息 (现代系统推荐使用 ip) ip addr show # 或者简写 ip a # 查看特定接口,如 eth0 ip addr show eth0 # 启用或禁用一个接口 (需要 root 权限) sudo ip link set eth0 up sudo ip link set eth0 down
netstat
显示网络连接、路由表、接口统计等信息。ss 是其更现代、更快速的替代品。
常用场景:

- 查看所有活动的网络连接(TCP/UDP)。
- 查看哪个进程在监听哪个端口。
示例:
# 显示所有活动的 TCP 连接 netstat -at # 显示所有活动的 UDP 连接 netstat -au # 显示所有监听的端口 netstat -l # 显示所有监听的 TCP 端口 netstat -lt # 以数字形式显示地址和端口,而不是尝试解析主机名 netstat -n # 显示每个连接对应的 PID/程序名 (需要 root 权限) sudo netstat -tpn # 显示网络统计信息 (包的收发情况等) netstat -s
ss
ss 是 netstat 的现代替代品,速度更快,默认显示更多信息。
常用场景:
- 快速查看网络连接和监听端口。
示例:

# 显示所有 TCP 连接 ss -t # 显示所有 UDP 连接 ss -u # 显示所有监听的端口 ss -l # 显示所有 TCP 监听端口 ss -lt # 显示所有监听的 TCP 端口,并显示进程 ID 和名称 sudo ss -ltpn # 显示所有连接,包括 TCP, UDP, UNIX socket 等 ss -a
ping
测试与另一台主机的网络连通性,通过发送 ICMP 回显请求包并等待响应来工作。
常用场景:
- 检查网络是否可达,延迟有多高。
示例:
# ping 一个域名或 IP 地址 ping google.com ping 8.8.8.8 # 发送指定数量的包后停止 (ping 5 次) ping -c 5 google.com # 设置每次发送包的间隔时间 (秒) ping -i 2 google.com 信息 (发送和接收的包数) ping -q google.com
路由与数据包追踪
traceroute / tracepath / mtr
traceroute: 显示数据包到达目标主机所经过的路由路径。tracepath:traceroute的一个简化版本,通常不需要 root 权限。mtr:traceroute和ping的结合体,能持续显示路径上每个节点的丢包率和延迟,是网络诊断的利器。
常用场景:
- 定位网络延迟或丢包发生在哪个路由节点。
示例:
# 追踪到 google.com 的路由路径 traceroute google.com # 使用 ICMP 方式 (可能被防火墙阻止) traceroute -I google.com # 使用 TCP SYN 方式 (更可能成功穿透防火墙) traceroute -T -p 80 google.com # 使用 tracepath (通常无需 sudo) tracepath google.com # 使用 mtr 进行持续诊断 (强烈推荐) mtr google.com # mtr 以报告模式输出,适合脚本 mtr --report google.com
netstat / ip route
查看和管理系统的路由表。
常用场景:
- 查看数据包将如何被转发。
示例:
# 显示路由表 ip route show # 或者简写 ip r # 添加一个临时路由 (所有访问 192.168.2.0/24 网段的流量都通过网关 10.0.0.1) sudo ip route add 192.168.2.0/24 via 10.0.0.1 # 删除一个路由 sudo ip route del 192.168.2.0/24
DNS 域名解析
nslookup
查询 DNS 记录,用于故障排查。
常用场景:
- 查找一个域名的 IP 地址。
- 查找一个 IP 地址对应的域名 (反向解析)。
- 查询特定类型的 DNS 记录,如 MX, CNAME 等。
示例:
# 交互模式启动 nslookup # 在交互模式下查询域名 > google.com # 非交互模式查询 nslookup google.com # 查询域名的 MX 记录 (邮件交换记录) nslookup -type=mx google.com # 查询域名的 NS 记录 (域名服务器记录) nslookup -type=ns google.com # 指定要使用的 DNS 服务器进行查询 nslookup google.com 8.8.8.8
dig
比 nslookup 更强大、更详细的 DNS 查询工具。
常用场景:
- 获取 DNS 查询的完整、详细信息。
示例:
# 查询 google.com 的 A 记录 dig google.com # 查询 MX 记录 dig google.com MX # 只显示答案部分 dig google.com +short # 指定 DNS 服务器进行查询 dig @8.8.8.8 google.com # 进行反向 DNS 查询 dig -x 8.8.8.8
host
一个简单易用的 DNS 查询工具。
示例:
# 查询域名 IP host google.com # 查询 IP 对应的域名 host 8.8.8.8 # 查询 MX 记录 host -t MX google.com
网络数据传输与下载
curl
一个强大的命令行工具,用于传输数据,支持 HTTP, HTTPS, FTP, FTPS, SCP, SFTP, SMTP, TELNET 等多种协议。
常用场景:
- 下载网页或文件。
- 测试 API 接口。
- 与 Web 服务进行交互。
示例:
# 下载网页内容并显示在终端 curl https://www.google.com 保存到文件 curl -o google.html https://www.google.com # 显示 HTTP 响应头信息 curl -I https://www.google.com # 发送 POST 请求 (表单数据) curl -d "username=test&password=123" -X POST https://example.com/login # 从指定 URL 下载文件并显示进度条 curl -# -O https://releases.ubuntu.com/22.04/ubuntu-22.04.3-desktop-amd64.iso
wget
另一个非常流行的非交互式网络文件下载工具。
常用场景:
- 递归下载整个网站。
- 断点续传下载。
示例:
# 下载文件 wget https://example.com/file.zip # 递归下载整个网站 (仅下载一层链接) wget -r -l 1 https://example.com # 启用断点续传 wget -c https://example.com/large-file.iso # 在后台下载 wget -b https://example.com/large-file.iso
高级网络工具与安全
nmap
网络探测和安全审核工具,用于端口扫描、主机发现、服务探测等。
常用场景:
- 扫描一个主机上开放的端口。
- 探测主机操作系统信息。
- 探测端口上运行的服务和版本。
示例:
# 扫描目标主机的所有常用端口 (1-1000) nmap target.com # 扫描所有 65535 个端口 nmap -p- target.com # 进行 TCP SYN 扫描 (更隐蔽,需要 root) sudo nmap -sS target.com # 进行 UDP 扫描 (速度慢) sudo nmap -sU target.com # 探测开放端口上运行的服务和版本 nmap -sV target.com # 探测目标主机的操作系统信息 nmap -O target.com # 快速扫描,只显示哪些端口是开放的 nmap -F target.com
telnet
一个古老的客户端/服务器协议工具,现在主要用于网络服务的简单连通性测试。
警告: telnet 通信是明文的,不安全,不应用于生产环境,推荐使用 nc 或 openssl。
常用场景:
- 测试某个端口是否开放。
示例:
# 测试 google.com 的 80 端口 (HTTP) telnet google.com 80 # 连接成功后,可以手动输入 HTTP 请求 # GET / HTTP/1.1 # Host: google.com # # (按两次回车发送请求)
nc / netcat
被誉为“网络工具中的瑞士军刀”,可以用于读取、写入 TCP 和 UDP 连接。
常用场景:
- 创建临时的 TCP/UDP 服务器或客户端。
- 端口扫描。
- 在两台机器之间传输文件。
示例:
# 监听本地 1234 端口,等待连接 nc -l 1234 # 连接到远程主机的 1234 端口 nc example.com 1234 # 扫描本地主机的 1-1024 端口 nc -z -v localhost 1-1024 # 将文件从一台机器传输到另一台 # 在接收方机器上运行: nc -l 1234 > received_file.txt # 在发送方机器上运行: nc receiver_ip 1234 < file_to_send.txt
openssl
功能强大的密码学和 SSL/TLS 工具箱。
常用场景:
- 测试 HTTPS (SSL/TLS) 服务的连通性。
- 查看证书信息。
示例:
# 模拟一个 HTTPS 请求,显示证书信息 openssl s_client -connect google.com:443 # 测试 SMTPS (SMTP over SSL) 连接 openssl s_client -connect smtp.gmail.com:465
系统与性能监控
iftop / nethogs
iftop: 显示网络接口的实时带宽使用情况,按主机排序。nethogs: 按进程显示网络带宽使用情况。
常用场景:
- 找出哪个主机或进程占用了大量网络带宽。
示例:
# 监控 eth0 接口的实时流量 (需要安装) sudo iftop -i eth0 # 按进程显示网络带宽使用情况 (需要安装) sudo nethogs
总结表格
| 命令 | 主要用途 | 关键选项/示例 |
|---|---|---|
ip / ifconfig |
查看和配置网络接口 | ip a, ip link set eth0 up |
ss / netstat |
查看网络连接和端口 | ss -tulpn, netstat -an |
ping |
测试网络连通性 | ping -c 4 google.com |
traceroute / mtr |
追踪网络路由路径 | mtr google.com |
nslookup / dig |
DNS 域名查询 | dig google.com MX, nslookup google.com |
curl / wget |
下载文件或与 Web 服务交互 | curl -I google.com, wget -c file.zip |
nmap |
端口扫描与服务探测 | nmap -sV target.com |
nc / telnet |
网络连接测试和调试 | nc -l 1234, telnet google.com 80 |
iftop / nethogs |
实时网络流量监控 | sudo iftop -i eth0, sudo nethogs |
掌握这些命令,您将能够应对绝大多数 Unix/Linux 环境下的网络诊断和管理任务。
