Linux 下的网络管理服务太乱了,我现在都没搞明白之间的关系

2022-02-16 18:00:38 +08:00
 ksc010

dhclient dhcpcd

wicd networkmanager

wpa_supplicant

/etc/network/interfaces

ifup ifdown

iwconfig iw

有些是网络管理工具 有些是服务 有些是查询配置程序

它们之前 有些是依赖关系,有些会冲突

2532 次点击
所在节点    问与答
5 条回复
baobao1270
2022-02-16 21:10:11 +08:00
其实一点也不乱,Linux 网络说白了就是 netlink 和 iptables 两个玩意
ifupdown, net-tools 是直接操作网络的命令,类似声明式编程
systemd-networkd, networkmanager 是通过配置来操作网络,类似面向对象编程
netplan 属于套娃加套娃,在 networkmanager 上再套了一层,类似用 C 写的 Java 再用 Java 写 DSL 再用 DSL 写程序
/etc/network/interfaces 这玩意,其实类似之前 init.d 的那一套,最终会被解析成 ifup ifdown 的命令被执行,正在被慢慢淘汰
至于其他的工具,ping dig 之类的用于诊断的不在讨论的范畴内

我个人是喜欢一套 systemd 走天下的,boot 交给 systemd-boot ,网络交给 systemd-networkd 和 systemd-resolved
feather12315
2022-02-16 21:22:52 +08:00
syscall 级别的接口:
1. ioctl ( legacy ,废弃)
2. netlink socket
对应的命令行工具:
1. net-tools
2. iproute2
其他命令行工具:
- bridge-tools

各大大型版用于网络管理的工具:
- ifupdown ,ifupdown2 ( Debian 系)
- netplan ( Ubuntu )
- wicked ( suse )
- nmcli ( RedHat )
- systemd 自己集成的 network manager

图形化的网络管理工具
- network-manager
- yast/yast2 network

从 syscall 角度看不乱,从各大发行版网络管理角度看确实很乱:通常都有多个网络管理方式,有的是继承关系,有的是覆盖。
jim9606
2022-02-17 00:35:15 +08:00
dhclient ,dhcpcd 是独立 DHCP 客户端,负责根据 DHCP 服务器的指令维护接口的 IP 地址、DNS 等东西,用户不会直接接触,之所以依赖这个是因为它的功能比较全。
wpa_supplicant 是 WPA 无线安全支持服务,同样用户不会直接接触。目前有替代者 iwd ( wpa_supplicant+dhcpd 的集成品,还加了些功能)。
iw ,iwconfig 是手动管理 WLAN 接口用的,不是 debug 用户不会直接接触。
net-tools(ifupdown,/etc/network)已淘汰(十几年没更新了),但在一些没有下面这几个东西的发行版里只能用这个。

systemd(systemd-networkd,systemd-resolved)、GNOME NetworkManager 、WICD 是用户接触的一站式网络配置程序,你只要知道这个咋配置就够了。

我建议 GUI 系统统一用 NetworkManager ,非 GUI 系统统一用 systemd-networkd ,这样上面只剩一个 wpa_supplicant 可能要留了。
msg7086
2022-02-17 03:20:51 +08:00
我就常年 ifupdown2 了,挺好用的。netplan 之类的全删了。
defunct9
2022-02-17 11:56:58 +08:00
什么乱七八糟的,统统 ip 搞

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/834317

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX