Linux 网络配置:IP、网关、DNS、路由表

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
↓
端口和应用

这样思路会非常清晰。