说明:
先用 --help 或 man 命令查看详细参数说明
在测试环境中先进行测试
注意某些命令需要 root 权限
谨慎使用可能影响网络性能的命令(如 ping -f)
1. 网络配置查看
ifconfig # 查看网络接口配置
ip addr # 查看IP地址
iwconfig # 查看无线网络接口
netstat # 查看网络连接状态
ss # 显示socket统计信息
# 查看所有网络接口
ifconfig -a
# 启用/禁用网卡
ifconfig eth0 up
ifconfig eth0 down
# 设置IP地址和子网掩码
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
# 使用ip命令(更现代的方式)
ip addr show
ip link set eth0 up
ip addr add 192.168.1.100/24 dev eth0
2. 网络连接测试
ping # 测试网络连通性
traceroute # 显示数据包到主机间的路径
mtr # 网络诊断工具
nslookup # DNS查询工具
dig # DNS查询工具(更详细)
# 基本用法
ping www.baidu.com
# 指定ping次数
ping -c 4 www.baidu.com
# 指定时间间隔(秒)
ping -i 2 www.baidu.com
# 指定包大小
ping -s 1000 www.baidu.com
# 洪水ping(需要root权限)
ping -f www.baidu.com
3. 网络监控和分析
tcpdump # 抓包工具
wireshark # 图形界面抓包工具
iftop # 实时显示网络带宽使用情况
nethogs # 按进程查看网络带宽使用情况
iptraf # 实时网络统计工具
# 显示所有监听端口
netstat -l
# 显示所有TCP连接
netstat -t
# 显示进程信息
netstat -p
# 常用组合(显示所有TCP连接和进程信息)
netstat -tuln
netstat -antp | grep ESTABLISHED
# 查看路由表
netstat -r
# 抓取指定接口的包
tcpdump -i eth0
# 抓取特定主机的包
tcpdump host 192.168.1.100
# 抓取特定端口的包
tcpdump port 80
# 抓取HTTP GET请求
tcpdump -i eth0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
# 将抓包结果保存到文件
tcpdump -w output.pcap
4. 远程连接
ssh # 安全远程连接
scp # 远程文件拷贝
rsync # 远程文件同步
telnet # 远程登录(不安全)
nc # 网络工具瑞士军刀
# 显示所有TCP连接
ss -t
# 显示所有监听端口
ss -l
# 显示进程信息
ss -p
# 显示详细统计信息
ss -s
# 查看特定端口
ss -t state established '( dport = :ssh or sport = :ssh )'
5. 防火墙相关
iptables # 配置Linux防火墙
ufw # Ubuntu简化版防火墙配置
firewall-cmd # CentOS防火墙配置
6. 网络服务管理
systemctl status networking # 查看网络服务状态
service network restart # 重启网络服务
nmcli # NetworkManager命令行工具
nmtui # NetworkManager文本用户界面
7. 网络配置文件
/etc/hosts # 主机名映射文件
/etc/resolv.conf # DNS配置文件
/etc/network/interfaces # 网络接口配置文件
/etc/sysconfig/network # 网络配置文件(RedHat系列)
8. 高级网络工具
nmap # 网络扫描和安全审计
curl # 文件传输工具
wget # 文件下载工具
arp # 查看/操作系统ARP缓存
route # 查看/配置路由表
# 基本扫描
nmap 192.168.1.0/24
# 端口扫描
nmap -p 80,443 192.168.1.100
# 操作系统检测
nmap -O 192.168.1.100
# 服务版本检测
nmap -sV 192.168.1.100
# 综合扫描
nmap -A 192.168.1.100
# 基本GET请求
curl http://example.com
# POST请求
curl -X POST -d "data=value" http://example.com
# 带header的请求
curl -H "Content-Type: application/json" http://example.com
# 下载文件
curl -O http://example.com/file.zip
# 显示响应头信息
curl -I http://example.com
9. 网络性能测试
speedtest-cli # 测试网络速度
iperf # 网络性能测试
ab # Apache基准测试工具
10. 常用网络故障排除命令组合
ping -c 4 google.com # 检查网络连接
ip addr show # 查看网络接口详细信息
dig +short google.com # 检查DNS解析
netstat -tuln # 查看网络连接状态
traceroute google.com # 追踪网络路由
# 基本查询
dig www.baidu.com
# 指定DNS服务器查询
dig @8.8.8.8 www.baidu.com
# 查询特定记录类型
dig www.baidu.com MX
dig www.baidu.com NS
# 反向DNS查询
dig -x 8.8.8.8
# 检查网络连通性
ping -c 4 8.8.8.8
# 检查DNS解析
dig +short google.com
nslookup google.com
# 检查路由
traceroute google.com
mtr google.com
# 检查端口连通性
telnet google.com 80
nc -zv google.com 80
# 检查本地端口占用
lsof -i :80
netstat -tuln | grep 80
11. iptables防火墙示例
# 查看现有规则
iptables -L
# 允许特定端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 禁止特定IP
iptables -A INPUT -s 192.168.1.100 -j DROP
# 允许已建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 保存规则
iptables-save > /etc/iptables/rules.v4
12. 网络性能测试示例
# 使用iperf测试带宽(服务端)
iperf -s
# 客户端连接测试
iperf -c server_ip
# Apache基准测试
ab -n 1000 -c 100 http://localhost/
# 实时网络流量监控
iftop -i eth0
nethogs eth0