在Linux系统中,网络的生效涉及配置文件的修改、网络服务的管理以及相关命令的使用,不同发行版的配置方式可能存在差异,但核心逻辑一致,以下将从基础配置、服务管理、常用命令及进阶场景等方面详细说明Linux如何使网络生效。
网络配置文件基础
Linux网络的永久配置通常依赖于特定的配置文件,不同发行版的文件位置和格式有所不同,主流发行版如CentOS/RHEL和Ubuntu的网络配置文件路径及管理工具对比如下:
发行版系列 | 主要配置文件路径 | 网络管理工具 | 配置文件格式 |
---|---|---|---|
CentOS/RHEL 7+ | /etc/sysconfig/network-scripts/ | NetworkManager | ifcfg-* 格式 |
Ubuntu 18.04+ | /etc/netplan/ 目录(如01-netcfg.yaml) | Netplan | YAML 格式 |
传统 Debian/Ubuntu | /etc/network/interfaces | ifupdown | 文本格式 |
以CentOS/RHEL为例,每个网络接口对应一个ifcfg配置文件,例如ifcfg-ens33
(ens33
为接口名称,可通过ip addr
查看),配置文件中关键参数包括:
TYPE=Ethernet
:网络类型(以太网)BOOTPROTO=static/dhcp
:静态IP或DHCP自动获取IPADDR=192.168.1.100
:静态IP地址NETMASK=255.255.255.0
或PREFIX=24
:子网掩码或前缀长度GATEWAY=192.168.1.1
:默认网关DNS1=8.8.8.8
、DNS2=8.8.4.4
:DNS服务器ONBOOT=yes
:开机是否激活网络
Ubuntu 18.04+则使用Netplan,配置文件通常位于/etc/netplan/
,例如01-netcfg.yaml
示例如下:
network: version: 2 ethernets: ens33: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4]
静态IP与DHCP配置生效
静态IP配置
修改对应接口的配置文件后,需重启网络服务或重新激活接口,以CentOS为例,编辑/etc/sysconfig/network-scripts/ifcfg-ens33
,设置BOOTPROTO=static
并添加IP、网关、DNS参数,然后执行:
sudo systemctl restart NetworkManager # 或 systemctl restart network(传统服务)
Ubuntu使用Netplan时,修改配置文件后执行:
sudo netplan apply
DHCP配置
若使用DHCP自动获取IP,只需确保BOOTPROTO=dhcp
(CentOS)或dhcp4: yes
(Ubuntu Netplan),然后重启网络服务即可,系统会自动通过DHCP服务器获取IP地址、子网掩码、网关等信息。
网络服务管理
Linux网络的生效依赖于网络服务的运行,主流网络服务包括NetworkManager(现代发行版默认)和传统network服务,管理方式如下:
NetworkManager(CentOS 7+/Ubuntu 18.04+)
- 启动服务:
sudo systemctl start NetworkManager
- 设置开机自启:
sudo systemctl enable NetworkManager
- 重启服务:
sudo systemctl restart NetworkManager
- 查看服务状态:
systemctl status NetworkManager
传统network服务(CentOS 6/传统Ubuntu)
- 启动服务:
sudo service network start
- 重启服务:
sudo service network restart
- 开机自启:
sudo chkconfig network on
若NetworkManager未运行,修改配置文件后可能无法生效,需确保服务处于激活状态。
常用网络命令与临时配置
查看网络接口信息
ip addr show # 查看所有接口IP配置(推荐,替代ifconfig) ifconfig # 传统命令,需安装net-tools包
临时添加/删除IP
sudo ip addr add 192.168.1.200/24 dev ens33 # 临时添加IP sudo ip addr del 192.168.1.200/24 dev ens33 # 删除临时IP
激活/禁用接口
sudo ip link set ens33 up # 激活接口 sudo ip link set ens33 down # 禁用接口
测试网络连通性
ping 192.168.1.1 # 测试与网通的连通性 ping www.baidu.com # 测试与外部网络的连通性 traceroute 8.8.8.8 # 跟踪路由路径(需安装traceroute包)
查看网络连接状态
ss -tuln # 查看TCP/UDP端口监听状态(推荐,替代netstat) netstat -tuln # 传统命令,需安装net-tools包
网络接口与DNS进阶配置
接口命名规则
现代Linux系统默认使用“Predictable Network Interface Names”,接口名称如ens33
(以太网)、wlp3s0
(无线)等,可通过以下命令查看命名规则:
ls /sys/class/net/ # 列出所有网络接口
若需恢复传统eth0
命名,可在GRUB配置文件(/etc/default/grub
)中添加net.ifnames=0 biosdevname=0
,然后更新GRUB:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
(CentOS)或sudo update-grub
(Ubuntu)。
DNS配置优先级
DNS配置的生效优先级为:网卡配置文件 > /etc/resolv.conf
> DHCP服务器分配。
- CentOS中,
/etc/resolv.conf
可能被NetworkManager自动管理,直接修改可能失效,建议在网卡配置文件中通过DNS1
、DNS2
指定。 - Ubuntu Netplan配置中,DNS需在YAML文件的
nameservers
字段中定义。
常见问题排查
若网络配置后不生效,可按以下步骤排查:
- 检查配置文件语法:CentOS用
ifcfg
文件时确保参数无拼写错误;Ubuntu Netplan用sudo netplan try
测试配置语法。 - 确认服务状态:确保NetworkManager或network服务正在运行。
- 检查接口是否激活:通过
ip link show
确认接口状态为UP
,若为DOWN
则手动激活。 - 验证IP与网关:确保IP地址与网关在同一网段,子网掩码正确。
- 检查防火墙规则:
firewalld
(CentOS)或ufw
(Ubuntu)可能阻止网络访问,临时关闭测试:sudo systemctl stop firewalld
或sudo ufw disable
。
相关问答FAQs
问题1:Linux修改网络配置后不生效,如何排查?
解答:首先检查配置文件语法是否正确(如CentOS的ifcfg文件参数是否完整,Ubuntu Netplan的YAML格式是否规范);其次确认网络服务(如NetworkManager)是否正常运行,可通过systemctl status NetworkManager
查看;然后检查接口是否激活,使用ip link show
确认接口状态为UP
;最后验证IP、网关、DNS配置是否正确,可通过ping 网关IP
和ping www.baidu.com
测试连通性,若问题仍存在,可尝试重启系统或检查防火墙规则是否阻止网络访问。
问题2:如何查看Linux系统的默认网关和DNS服务器?
解答:查看默认网关可通过以下命令:
ip route show default # 显示默认路由,其中via后面的值即为网关 route -n # 传统命令,显示路由表(需安装net-tools)
查看DNS服务器可通过:
cat /etc/resolv.conf # 显示当前DNS配置(注意:NetworkManager管理时可能被动态更新) nmcli dev show ens33 | grep DNS # 使用NetworkManager命令查看指定接口的DNS配置
对于使用Netplan的Ubuntu系统,DNS配置通常在/etc/netplan/*.yaml
文件的nameservers
字段中定义,可直接查看该文件。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/34876.html