Debian 下常用的网络管理程序有三个:ifupdown、NetworkManager、systemd-networkd。
他们区别是什么?以及常用来修改的配置文件interfaces、resolv.conf有什么作用?
安装方法如下:
# ifup、ifdown 管理程序安装
lsw@rangotec.com:~$ sudo apt install ifupdown
# NetworkManager 管理程序安装
lsw@rangotec.com:~$ sudo apt install network-manager
# systemd 网络管理需要安装两个程序
lsw@rangotec.com:~$ sudo apt install systemd-networkd systemd-resolved
1. 首先现在不少人用netplan来写网络IP、DNS的配置,但netplan 不算在内。
虽然它也可以管理网络,但它是通过调用NetworkManager或systemd-networkd程序来管理网络的。
netplan 默认使用systemd-networkd来管理,通过配置文件/etc/netplan/00-installer-config.yaml 里的renderer来确定。
如:
network:
version: 2
renderer: networkd 【或NetworkManager】
2. NetworkManager 程序管理网络。
nmcli
... 略 ...
3. Systemd 管理命令集合中,包含了网络相关的程序:
systemd-networkd :用来管理IP地址
systemd-resolved :用来自动配置DNS,本机上网查询dns。
resolvectl status 查看上游dns
resolvectl monitor 监控本机发出的dns查询
4. 再早用以下两个文件管理IP地址和DNS:
/etc/network/interfaces 修改IP、网关文件:【interfaces(5) file used by ifup(8) and ifdown(8)】
/etc/resolv.conf dns 配置文件
开始时是需要手动配置上面两个文件,但是debian8(jessie)中,安装了resolvconf之后,/etc/resolv.conf就变为被resolvconf自动更新,所以只需要修改interfaces这一个文件即可。
通过修改interfaces里的dns-nameserver字段即可配置DNS,直接修改的话,如果有其他自动管理工具,那么重启后会被其他网络管理程序覆盖掉,如NetworkManager、systemd-resolved、resolvconf。
如果使用interfaces文件管理网络?
通过 ifupdown 程序包进行管理 (apt install ifupdown)
5. 关于DNS解析文件resolv.conf,不要手动修改,现在都由对应的dns解析程序根据配置文件自动生成。
其中 netconfig, NetworkManager, resolvconf, rdnssd 和 systemd-resolved,还会争抢/etc/resolv.conf的控制权。
具体哪个程序,打开/etc/resolv.conf文件,第一行会写哪个程序。
其中resolvconf 和 systemd-resolved 冲突,安装systemd-resolved会自动卸载resolvconf程序。
总结:
网络管理程序 | 配置文件位置 | 常用命令 |
ifupdown | /etc/network/interfaces | ifup 、ifdown、/etc/init.d/networking restart |
NetworkManager | /etc/NetworkManager/NetworkManager.conf | nmcli ... |
systemd-networkd | /etc/systemd/network/xxx.network | systemctl restart systemd-networkd |
netplan | /etc/netplan/xxx-installer-config.yaml | netplan try |