← 返回首页
🔧

Linux网络进阶:配置与调试

📂 devops ⏱ 2 min 318 words

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调试和抓包分析,能帮助快速定位和解决网络问题。