心血来潮进行的整理,挺早面试的时候有被问到过,但当时我还很菜,就没有答出来
ifupdown 用于ubuntu16.04LTS及以前版本系统 的网络管理
也可以用于18.04的管理
ifupdown得名于其启用与禁用网卡的方式:ifup eth0
和ifdown wth0
1 2 3 4 5 6 7 8 9 10 11 12 13 主配置文件/etc/network/interfaces 子配置文件/etc/network/interfaces.d/ cat /etc/network/interfacessource /etc/network/interfaces.d/*auto lo iface lo inet loopback auto ens33 iface ens33 inet dhcp
子配置文件配置
推荐格式: 数字-描述性名称.cfg
如果同一个接口在不同的文件中被重复定义,后读取的配置会覆盖先前的配置, 这就是为什么使用数字前缀来控制顺序很重要
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 sudo vim /etc/network/interfaces.d/00-eth0.cfg auto eth0 iface eth0 inet dhcp auto eth0 iface eth0 inet static address 192.168.8.100/24 gateway 192.168.8.254 dns-nameservers 8.8.8.8 192.168.8.254 hwaddress ether 52:54:00:12:34:56 mtu 1500 post-up ip route add 10.10.0.0/16 via 192.168.8.200 pre-down ip route del 10.10.0.0/16 via 192.168.8.200 sudo ifdown eth0 && sudo ifup eth0
netplan 用于ubuntu18.04LTS及之后版本 的网络管理
在server版本中其使用systemd-networkd作为后端,在desktop版本中使用NetworkManager作为后端,这个后面会解释是什么意思
在16.04中可选 在18.04中,netplan和ifupdown是共存的,但默认使用netplan 在20.04以之后,只使用netplan
配置文件说明
同样也是数字+描述.yaml,如果存在相同网卡配置,数字大的配置文件会覆盖数字小的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 cat /etc/netplan/00-installer-config.yamlnetwork: ethernets: eth0: dhcp4: true version: 2 renderer: networkd network: version: 2 renderer: networkd ethernets: eth0: addresses: - 192.168.8.140/24 routes: - to: default via: 192.168.8.254 nameservers: addresses: - 8.8.8.8 sudo netplan try
systemd-networkd systemd-networkd是netplan的后端,也就是说 在Netplan中进行的配置,会给对应后端systemd-networkd生成配置,比如 /run/systemd/network/10-netplan-*.network
1 2 3 4 5 6 7 8 9 10 11 cat /run/systemd/network/10-netplan-ens33.network[Match] Name=ens33 [Network] DHCP=ipv4 LinkLocalAddressing=ipv6 [DHCP] RouteMetric=100 UseMTU=true
配置文件编写
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 sudo vim /etc/systemd/network/10-eth0.network [Match] Name=eth0 [Network] DHCP=yes [DHCP] UseDNS=yes UseRoutes=yes [Match] Name=eth0 [Network] Address=192.168.8.142/24 Gateway=192.168.8.254 DNS=8.8.8.8 DNS=8.8.4.4 重启服务 sudo systemctl restart systemd-networkd.service sudo systemctl restart systemd-resolved.service
如果想在16.04上使用systemd-networkd
禁用ifupdown:注释掉/etc/network/interfaces中所有非回环接口的配置,并禁用networking.service。
启用并启动systemd-networkd和systemd-resolved服务。
编写systemd-networkd的.network配置文件。