Linux 网络配置:IP、网关、DNS、路由表
1. 前言
Linux 网络排查中,最基础的几个概念是:
IP 地址
子网掩码
网关
DNS
路由表
如果这些概念不清楚,排查网络问题时很容易乱猜。
本文从 TCP/IP 基础出发,讲解 Linux 中如何查看和配置网络信息,以及如何理解路由表。
2. IP 地址是什么
IP 地址用于标识网络中的一台主机。
查看本机 IP:
ip addr
或简写:
ip a
示例:
inet 192.168.1.100/24
其中:
192.168.1.100 是 IP 地址
/24 是前缀长度
/24 等价于子网掩码:
255.255.255.0
3. 常见网卡名称
Linux 中网卡名称可能是:
eth0
ens33
ens160
enp0s3
wlan0
lo
其中:
| 名称 | 含义 |
|---|---|
lo |
本地回环网卡 |
eth0 |
传统以太网命名 |
ens33 |
新命名规则下的网卡 |
wlan0 |
无线网卡 |
查看网卡状态:
ip link
启用网卡:
sudo ip link set eth0 up
关闭网卡:
sudo ip link set eth0 down
4. 临时配置 IP
使用 ip 命令可以临时配置 IP。
添加 IP:
sudo ip addr add 192.168.1.100/24 dev eth0
删除 IP:
sudo ip addr del 192.168.1.100/24 dev eth0
注意:
这种方式是临时配置,重启后会失效。
永久配置需要修改发行版对应的网络配置文件,例如 Netplan、NetworkManager 或 ifcfg 文件。
5. 网关是什么
网关用于连接不同网段。
如果本机 IP 是:
192.168.1.100/24
它可以直接访问:
192.168.1.1 ~ 192.168.1.254
如果要访问外网,例如:
8.8.8.8
就需要把数据包发给网关。
查看默认网关:
ip route
示例:
default via 192.168.1.1 dev eth0
含义:
默认流量通过 192.168.1.1 从 eth0 发出去
6. 临时配置默认网关
添加默认路由:
sudo ip route add default via 192.168.1.1
删除默认路由:
sudo ip route del default
指定网卡:
sudo ip route add default via 192.168.1.1 dev eth0
如果默认网关配置错误,可能表现为:
能访问同网段,不能访问外网
7. DNS 是什么
DNS 用于把域名解析成 IP。
例如:
www.baidu.com -> 某个 IP 地址
如果 DNS 有问题,常见现象是:
ping IP 可以
ping 域名不行
查看 DNS 配置:
cat /etc/resolv.conf
常见内容:
nameserver 8.8.8.8
nameserver 114.114.114.114
测试解析:
nslookup www.baidu.com
或:
dig www.baidu.com
8. /etc/hosts 本地域名解析
/etc/hosts 可以配置本地域名解析。
查看:
cat /etc/hosts
示例:
127.0.0.1 localhost
192.168.1.10 myserver.local
配置后可以:
ping myserver.local
优先级通常比 DNS 更高。
如果域名解析异常,也要检查 /etc/hosts 是否写了错误记录。
9. 路由表怎么看
查看路由表:
ip route
示例:
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
第一行:
default via 192.168.1.1 dev eth0
表示默认路由。
第二行:
192.168.1.0/24 dev eth0
表示访问 192.168.1.0/24 网段时,从 eth0 直接出去。
10. 路由匹配原则
Linux 发送数据包时,会查路由表。
路由匹配遵循:
最长前缀匹配
也就是越具体的路由优先级越高。
例如路由表中有:
10.0.0.0/8 via 192.168.1.1
10.1.2.0/24 via 192.168.1.2
访问:
10.1.2.100
会匹配 /24 这条更具体的路由。
11. 添加静态路由
添加到某个网段的路由:
sudo ip route add 10.10.0.0/16 via 192.168.1.254
指定网卡:
sudo ip route add 10.10.0.0/16 via 192.168.1.254 dev eth0
删除路由:
sudo ip route del 10.10.0.0/16
静态路由常用于多网段服务器、内网专线、VPN 环境。
12. 查看连接路径
使用 traceroute 查看访问路径:
traceroute 8.8.8.8
如果没有安装:
sudo apt install traceroute
也可以用:
tracepath 8.8.8.8
用于判断数据包经过哪些网关。
13. 网络配置排查流程
如果服务器不能访问外网,可以按下面顺序检查:
13.1 看 IP
ip addr
确认网卡有正确 IP。
13.2 看网卡状态
ip link
确认网卡是 UP 状态。
13.3 看网关
ip route
确认有 default 路由。
13.4 ping 网关
ping -c 4 192.168.1.1
如果网关不通,检查本机 IP、掩码、交换机、网线、虚拟网络。
13.5 ping 外网 IP
ping -c 4 8.8.8.8
如果网关通但外网 IP 不通,检查网关、上级网络、防火墙。
13.6 ping 域名
ping -c 4 www.baidu.com
如果 IP 通但域名不通,检查 DNS。
14. 常见问题
14.1 能 ping 通 IP,不能 ping 域名
一般是 DNS 问题。
检查:
cat /etc/resolv.conf
nslookup www.baidu.com
14.2 能访问内网,不能访问外网
常见是默认网关缺失或错误。
检查:
ip route
看是否有:
default via 网关IP
14.3 配了 IP 但重启失效
使用 ip addr add 是临时配置。
重启后失效。
需要修改系统网络配置文件。
不同发行版方式不同:
| 系统 | 常见方式 |
|---|---|
| Ubuntu 新版 | Netplan |
| CentOS 7 | ifcfg |
| 桌面版 | NetworkManager |
15. 小结
Linux 网络配置可以抓住四个核心:
IP:我是谁
网关:我要去哪儿转发
DNS:域名怎么变成 IP
路由表:数据包从哪条路出去
常用命令:
ip addr
ip link
ip route
cat /etc/resolv.conf
cat /etc/hosts
nslookup domain
dig domain
ping 网关
traceroute 目标
排查网络问题时,建议按层检查:
网卡状态
↓
IP 地址
↓
网关
↓
路由
↓
DNS
↓
端口和应用
这样思路会非常清晰。