/etc/NetworkManager
是 NetworkManager 保存其配置的重要目录。我想要一份每个文件用途的完整列表。
我的笔记本电脑上此目录下的所有文件
$ tree
.
├── conf.d
├── dispatcher.d
│ ├── no-wait.d
│ ├── pre-down.d
│ └── pre-up.d
├── dnsmasq.d
├── dnsmasq-shared.d
├── NetworkManager.conf
└── system-connections
├── Family 2.nmconnection
├── Starbucks.nmconnection
├── StudentOffice.nmconnection
└── SunYouran.nmconnection
我相信通过回答这个问题,我可以更好地理解 Ubuntu 中的网络是如何工作的。
答案1
文档/etc/NetworkManager/NetworkManager.conf
可以在这里找到:
https://networkmanager.dev/docs/api/latest/NetworkManager.conf.html
还有一个手册页,在网站上我必须关闭 css 才能阅读它:
⏵ man NetworkManager.conf
https://manpages.ubuntu.com/manpages/latest/en/man5/NetworkManager.conf.5.html
答案2
@vanadium 提供了一种调查文件使用情况的通用方法。
- 对于您关注的每个文件,
dpkg -S filename
显示哪个包提供了该文件。目录也可以输入到 中filename
,但需要目录的完整路径。 - 对于上面列出的每个包,
dpkg -L
package 将显示该包安装的所有文件。
因此对于文件/etc/NetworkManager
dispatcher.d
NetworkManager 将按字母顺序执行此目录或其子目录中的所有执行脚本,以响应网络事件。每个脚本都会收到两个参数,第一个是刚刚发生操作的设备的接口名称,第二个是操作。例如,以下脚本禁用临时网络适配器的卸载功能
#!/bin/bash # file: /etc/NetworkManager/dispatcher.d/80-disable-offload.sh # usage: diable offload when eno1/enp0s31f6 is up interface=$1 event=$2 if [[ $interface == "eno1" || $interface == "enp0s31f6" ]] && [[ $event == "up" ]]; then TOE_OPTIONS="rx tx sg tso ufo gso gro lro rxvlan txvlan rxhash" for TOE_OPTION in $TOE_OPTIONS; do /sbin/ethtool --offload $interface $TOE_OPTION off done fi exit 0
NetworkManager.conf
我的机器上的默认内容是
[main] plugins=ifupdown,keyfile dns=default [ifupdown] managed=false [device] wifi.scan-rand-mac-address=no
在哪里
ifupdown
是 Debian 和 Ubuntu 发行版上使用的插件,从 /etc/network/interfaces 读取以太网和 Wi-Fi 连接。keyfile
是支持 NetworkManager 拥有的所有连接类型和功能的通用插件。它以 .ini 样式的格式写入文件/etc/NetworkManager/system-connections
。[ifupdown] manage
设置false
为默认值。如果设置为 false,则 NetworkManager 将忽略 /etc/network/interfaces 中列出的任何接口。(我的问题是:如果设置为 ,network-manager 如何管理网络false
?)
conf.d
用户可以向此目录添加其他 .conf 文件,因为它们
NetworkManager.conf
可能会被软件更新删除。system-connections
存储有关连接(如 wifi)的信息。它由keyfile
插件管理,如上所述。这些是可以在 中编辑的连接nmtui
。dnsmasq.d
和dnsmasq-shared.d
当 dnsmasq 插件启用时,这两个文件夹中的文件控制其行为。有关如何启用它的示例和简单配置,请参阅使用 NetworkManager 的 DNSMasq 插件。