1. Linux网络基础:从零开始理解网络栈
当我在2013年第一次接触Linux服务器运维时,面对ifconfig命令输出的密密麻麻信息完全摸不着头脑。十年后的今天,我想用最直白的方式带新手理解Linux网络的核心机制。Linux网络栈就像一座精密的立交桥系统——数据包从网卡进入后,要经过层层协议栈处理,最终到达应用程序。让我们拆解这个过程中的关键组件:
物理层(网卡驱动)负责将电信号转换为二进制数据。以常见的Intel千兆网卡为例,驱动模块igb会创建/dev/eth0设备文件,通过DMA直接将数据包写入内核内存区域,避免CPU拷贝开销。你可以通过ethtool -i eth0查看驱动详情,这是我排查网卡故障时第一个要检查的命令。
网络配置的核心是iproute2工具集。传统的ifconfig已被淘汰,现代Linux使用ip命令管理网络:
bash复制# 查看所有接口信息(比ifconfig更详细)
ip -c -br a
# 添加临时IP地址
ip addr add 192.168.1.100/24 dev eth0
# 查看路由表(注意metric值影响路由优先级)
ip route show
关键技巧:使用
-c参数让输出带颜色,-br简化显示格式,这在管理多网卡服务器时特别实用
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 网络故障排查实战手册
去年我们机房迁移时遇到过典型问题:服务器能ping通网关但无法访问外网。通过tcpdump抓包发现DNS查询没有响应,最终定位是防火墙丢弃了53端口的UDP包。这类问题需要系统化的排查方法:
2.1 分层检查法
- 物理层:
ethtool eth0查看Speed/Duplex是否匹配交换机配置。我曾遇到网卡自协商失败导致速度锁定10M的案例 - 网络层:
ping -c4 8.8.8.8测试基础连通性,配合traceroute查看路径 - 传输层:
telnet example.com 80测试端口可达性 - 应用层:用curl -v输出详细HTTP交互过程
2.2 必备诊断工具
bash复制# 实时监控流量(按流量排序)
nload -u M eth0
# 查看TCP连接状态(注意TIME_WAIT堆积)
ss -tulnp
