Linux网络进阶:配置与调试
Linux网络进阶:配置与调试
网络配置基础
ip命令
现代Linux系统使用ip命令替代ifconfig:
# 查看所有网络接口
ip addr show
# 查看特定接口
ip addr show eth0
# 启用/禁用接口
sudo ip link set eth0 up
sudo ip link set eth0 down
# 添加IP地址
sudo ip addr add 192.168.1.100/24 dev eth0
网络配置文件
# CentOS/RHEL (NetworkManager)
cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Ubuntu (Netplan)
cat /etc/netplan/01-netcfg.yaml
# 应用网络配置
sudo netplan apply # Ubuntu
sudo systemctl restart NetworkManager # CentOS
路由管理
静态路由
# 查看路由表
ip route show
# 添加默认网关
sudo ip route add default via 192.168.1.1
# 添加静态路由
sudo ip route add 10.0.0.0/8 via 192.168.1.254
# 删除路由
sudo ip route del 10.0.0.0/8
# 永久路由 (CentOS)
echo "10.0.0.0/8 via 192.168.1.254" | sudo tee -a /etc/sysconfig/network-scripts/route-eth0
策略路由
# 添加路由表
echo "100isp1" | sudo tee -a /etc/iproute2/rt_tables
# 配置策略路由
sudo ip route add default via 192.168.1.1 table isp1
sudo ip rule add from 192.168.1.0/24 table isp1
DNS配置与调试
DNS配置
# 查看DNS配置
cat /etc/resolv.conf
# 测试DNS解析
nslookup example.com
dig example.com
dig +short example.com
# 追踪DNS解析路径
dig +trace example.com
# 指定DNS服务器查询
dig @8.8.8.8 example.com
hosts文件
# 本地DNS解析
cat /etc/hosts
# 添加本地解析
echo "192.168.1.10 myserver.local" | sudo tee -a /etc/hosts
网络调试工具
抓包分析
# tcpdump抓包
sudo tcpdump -i eth0 port 80 -nn
# 保存到文件
sudo tcpdump -i eth0 -w capture.pcap
# 读取pcap文件
tcpdump -r capture.pcap
# 过滤特定主机
sudo tcpdump -i eth0 host 192.168.1.100
端口扫描
# nmap端口扫描
nmap -sT 192.168.1.100
# 扫描特定端口
nmap -p 80,443,8080 192.168.1.100
# 检测操作系统
nmap -O 192.168.1.100
网络连通性测试
# ping测试
ping -c 4 8.8.8.8
# traceroute追踪路由
traceroute example.com
# mtr综合诊断
mtr -r -c 10 8.8.8.8
# 测试端口连通性
nc -zv 192.168.1.100 80
telnet 192.168.1.100 80
网络性能调优
TCP参数优化
# 查看当前TCP参数
sysctl net.ipv4.tcp_|head -10
# 优化TCP缓冲区
cat >> /etc/sysctl.conf << EOF
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
EOF
sudo sysctl -p
网络连接状态监控
# 查看连接状态统计
ss -s
# 查看TIME_WAIT连接
ss -t state time-wait | wc -l
# 查看连接数最多的IP
ss -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head
常见网络问题排查
连接超时
# 检查路由
traceroute target_ip
# 检查防火墙
sudo iptables -L -n | grep -i drop
# 检查SELinux
getenforce
sudo setenforce 0 # 临时关闭测试
DNS解析失败
# 检查DNS配置
cat /etc/resolv.conf
# 测试DNS
dig example.com @8.8.8.8
# 检查/etc/nsswitch.conf
grep hosts /etc/nsswitch.conf
总结
网络是运维工作的基础。掌握ip命令、路由配置、DNS调试和抓包分析,能帮助快速定位和解决网络问题。