在Debian上设置静态IP(固定IP)
前言
我目前接触到的debian用到的网络管理工具有两个,一个是传统的networkmanager,另一个是netplan。
两种网络管理工具下配置静态ip的方法不太一样,这里汇总做个记录。
区分networkmanager和netplan
首先要搞清楚自己的debian系统用的网络管理工具是哪个,chatgpt的回答如下
但实际判断networkmanager的方法不太对,有效的方法只需要看/etc/network
目录下是不是有interfaces
文件即可。
判断netplan,只需要看是否有/etc/netplan
这个目录,并查看这个目录下是否有配置文件。
获取网卡设备名称
使用命令ip addr
查看网卡的名称,后面配置的时候需要用到
如果所示,网卡名称即为enp2s0
networkmanager
编辑/etc/network/interfaces
文件,根据自己需求录入静态ip参数即可
allow-hotplug enp2s0 # 支持热插拔
auto enp2s0 # 开机自动启用eth0
iface enp2s0 inet static # 使用静态ip
address 192.168.1.4 # ip地址
netmask 255.255.255.0 # 子网掩码
gateway 192.168.1.1 # 网关地址
dns-nameservers 192.168.1.1 # dns服务器
编辑后保存退出,然后重启网络服务
sudo systemctl restart networking.service
netplan
netplan的情况稍微复杂一些,因为netplan是一个配置工具,需要搭配底层来实现网络管理,那底层管理工具可以是networkmanager,也可以是systemd-networkd。
我碰到的情况都是netplan + networkd的组合,查看/etc/netplan
目录下的yaml配置文件就可以清楚自己系统的工具组合。注意每个系统的netplan的yaml配置文件名称不一定相同,根据自己情况调整。
在配置文件中可以看到,管理网络的工具是networkd
。
那接下去就有几种修改方法:
- netplan指定网络工具 + netplan生成配置
- netplan指定网络工具 + networkd配置
- netplan指定网络工具 + networkmanager配置
出于配置的难易程度 & 可阅读性考虑,我推荐使用第二种方案。
首先修改/etc/netplan
目录下的yaml配置文件,只需要指定renderer是networkd即可,下面关于dhcp的配置都注释。
然后到/etc/systemd/network
目录,可以看到有个network配置文件,原始配置是将网络配置功能托管给了netplan。
我们需要根据自己需求修改配置
[Match]
Name=eth0 # 网卡名称
[Network]
Address=192.168.1.123/24 # 静态ip
Gateway=192.168.1.1 # 网关
DNS=192.168.1.1 # dns服务其
保存退出。然后重启networkd服务。
sudo systemctl restart systemd-networkd.service
重启了networkd服务以后,新的网络配置就生效了,可以用新ip访问debian。
此时不要忘了还有最后一部,我们修改过netplan的配置,也需要让netplan生效。
sudo netplan apply