在 Linux 系统中,配置网络的方法取决于发行版、网络管理方式(NetworkManager 或 systemd-networkd)以及你使用的是命令行还是图形界面。下面我按常见场景给你一个从基础到进阶的说明。
ip addr
或(较老系统)
ifconfig
ip route
cat /etc/resolv.conf
sudo ip addr add 192.168.1.100/24 dev eth0
sudo ip link set eth0 up
sudo ip route add default via 192.168.1.1
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
✅ 适合临时测试
❌ 重启后失效
/etc/network/interfacessudo nano /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
sudo systemctl restart networking
/etc/netplan/*.yaml
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
sudo netplan apply
✅ 新系统推荐
✅ 云服务器常用
/etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
sudo systemctl restart NetworkManager
nmcli connection show
nmcli connection modify eth0 ipv4.method manual \
ipv4.addresses 192.168.1.100/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns 8.8.8.8
nmcli connection down eth0 && nmcli connection up eth0
✅ 桌面 / 服务器都适用
✅ 最通用
/etc/systemd/network/20-wired.network
[Match]
Name=eth0
[Network]
Address=192.168.1.100/24
Gateway=192.168.1.1
DNS=8.8.8.8
sudo systemctl enable systemd-networkd
sudo systemctl restart systemd-networkd
✅ 容器 / 轻量系统
❌ 不熟悉 systemd 的人略复杂
ping 8.8.8.8 # 看网络通不通
ping www.baidu.com # 看 DNS 是否可用
ip route # 检查网关
journalctl -xe # 查看错误日志
| 场景 | 推荐方式 |
|---|---|
| Ubuntu 20.04+ | Netplan |
| CentOS 7/8 | NetworkManager |
| 临时测试 | ip 命令 |
| 容器 / CoreOS | systemd-networkd |
如果你愿意,可以告诉我:
我可以直接给你一份可用配置文件。