Linux下常用的网卡配置命令详解

刚装好CentOS,发现连不上公司内网?服务器重启后IP没了?别急,多半是网卡没配好。这类问题在日常运维、实验环境搭建甚至学生做网络课设时特别常见——网卡配置命令就是最直接的解决工具。

临时改IP:ifconfig(老但管用)

在旧版系统或快速测试时,ifconfig依然顺手。比如把ens33临时设成192.168.1.100/24:

sudo ifconfig ens33 192.168.1.100 netmask 255.255.255.0

再加一条默认路由:

sudo route add default gw 192.168.1.1

注意:这种改法重启就失效,适合调试用。

永久生效:nmcli(推荐给新手)

现代RHEL/CentOS 8+ 和 Fedora 默认用NetworkManager,nmcli命令直观好记。查当前连接名:

nmcli connection show

修改ens33的IPv4地址为静态:

sudo nmcli connection modify "System ens33" ipv4.addresses 192.168.1.100/24
sudo nmcli connection modify "System ens33" ipv4.gateway 192.168.1.1
sudo nmcli connection modify "System ens33" ipv4.dns "8.8.8.8,114.114.114.114"
sudo nmcli connection modify "System ens33" ipv4.method manual
sudo nmcli connection down "System ens33" && sudo nmcli connection up "System ens33"

纯命令行派:ip命令(越来越主流)

ifconfig正在被ip取代。设IP、启网卡、加路由一气呵成:

sudo ip addr add 192.168.1.100/24 dev ens33
sudo ip link set ens33 up
sudo ip route add default via 192.168.1.1

查看当前所有IP配置,比ifconfig更清爽:

ip addr show

配置文件方式(适合生产环境)

CentOS/RHEL系通常编辑/etc/sysconfig/network-scripts/ifcfg-ens33

DEVICE=ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114

保存后重启网络服务:

sudo systemctl restart NetworkManager

Ubuntu/Debian则改/etc/netplan/01-network-manager-all.yaml,语法稍不同,但思路一致:定义接口、地址、网关、DNS。

小技巧:快速确认网卡状态

配完别光看命令有没有报错,动手验证才踏实:

ping -c 3 192.168.1.1    # 测通网关
ping -c 3 www.baidu.com # 测DNS和外网
ip route show # 看路由表对不对
cat /proc/sys/net/ipv4/ip_forward # 查是否开启转发(做路由器时需要)

配网卡不是背命令,而是理解“地址、掩码、网关、DNS”这四要素怎么在命令里落下来。多敲几次,自然就熟了。