在这里运行 Xubuntu 16.04。我的问题是dnsmasq
,由 NetworkManager 启动时,忽略、和dnsmasq.conf
中的文件。相反,NetworkManager使用以下命令启动:/etc/dnsmasq
/etc/NetworkManager/dnsmasq.d
/etc/NetworkManager/dnsmasq-shared.d
dnsmasq
9949 ? S 0:00 /usr/sbin/dnsmasq --conf-file --no-hosts --keep-in-foreground --bind-interfaces --except-interface=lo --clear-on-reload --strict-order --listen-address=10.42.0.1 --dhcp-range=10.42.0.10,10.42.0.254,60m --dhcp-option=option:router,10.42.0.1 --dhcp-lease-max=50 --pid-file=/var/run/nm-dnsmasq-wlan1.pid --conf-dir=/etc/NetworkManager/dnsmasq-shared.d
我在系统上找不到10.42.0.10,10.42.0.254,60m
指定地址范围的地方。
这是哪里来的???
答案1
好的,我知道了。直接来自源代码,文件:nm-dnsmasq-manager.c
/* dnsmasq 可能会从它的默认配置文件位置读取,如果该位置是有效的配置文件,它将与此处的选项结合并导致不良的副作用。比如发送虚假的 IP 地址作为网关或其他什么。所以告诉 dnsmasq 不要使用任何配置文件。 */
NetworkManager 嫉妒 dnsmasq 配置值,并且不允许外部干扰它们。 NetworkManager 在内部构建并发出启动 dnsmasq 的命令行,并在此过程中包含 --conf-file(空白)指令,该指令可防止使用任何用户或系统提供的 dnsmasq 配置文件。
答案2
背景/原因:NetworkManager 作为 Lennard Poettering 项目,公开敌视 Unixy 事物,并试图取代 GNU 并自称“这Linux”。因此,它回避了“一切都是文件”等经过尝试和测试的原则。导致它提供用于配置的命令行界面,在后面使用一些“自动魔法”状态文件(因为 Linux 仍然是 Unixy,想象一下)。
预期解决方案
所以事情就是这样故意的要配置的,是
nmcli connection modify MyConnection ipv4.addresses 10.42.1.1/24 # Set the IP range here
nmcli connection up MyConnection # Restart the connection to apply it
在 Linux Mint 上,也可以通过 GUI 来完成此操作,方法是编辑连接,并在 IPv4 和 IPv6 选项卡中的“地址”下方的表格中添加一行。 (尽管这很令人困惑,并且可能导致仅分配辅助地址而不删除“自动”地址。)
专业解决方案
或者,我们可以只更改这些命令修改的文件,即使我们不想执行任何操作,也可以获得应用此类更改的能力。 (就像在公司网络中配置机器时一样。)在 Linux Mint 上,这将是:
vi /etc/NetworkManager/system-connections/MyConnection.nmconnection # Or in my case, is just copy the file over from my central storage.
nmcli connection reload # Only necessary when there is no boot following
nmcli connection up MyConnection # ditto
笔记
无论如何,请替换MyConnection
为您的连接名称,您可以通过nmcli connection
或在文件部分的id
字段中找到该名称。 (请注意,文件名可能会转义一些特殊字符,因此不完全相同。如果手动完成,则不需要相同[connection]
.nmconnection
根本不.)
例如,似乎10.42.1.1/24
会将服务器自己的 IP 设置为 10.42.1.1,并为客户端提供 10.42.1.2 到 10.42.1.254 范围内的 IP。如果服务器的 IP 可以单独设置,我会更喜欢它,但至少它可以完成这项工作。
我在这里没有包括的是当您需要桥接两个网络以便它们具有相同的IP范围。 (就像笔记本电脑通常通过 WIFI 连接,但通过以太网线连接时获取相同的服务器 IP 地址以提高速度。)