dnsmasq
我正在尝试在 ArchLinux 上设置一个 WiFi 网络,在那里我有NetworkManager
(ArchLinux 中iproute2
不再有)。net-tools
/etc/network/interfaces
当我阅读一些教程时,他们经常在为 wifi 网络接口设置静态 ip 时参考这些教程。这个文件是否也适用于系统,net-tools
或者我应该使用iproute2
CLI 来设置静态 ip 地址?
答案1
iproute2 和 net-tools 的 ifconfig 都是低级工具,可以直接更改所有设置,但没有任何类型的持久配置文件。
该interfaces
文件由“ifupdown”使用,这是一个高级网络设置工具,仅存在于 Debian 及其衍生产品中 -不是在 Arch Linux 上。(在后台做使用 iproute2 或 ifconfig,但这不会改变任何东西。)
- Arch 上最相似的软件包是网控,尽管它有点单薄。
- 当然,既然你已经安装了 NetworkManager,你可以直接使用它——但另一方面可能干扰 Wi-Fi 网络的设置。(除非您使用 NM 的内置热点功能……)可以通过 管理配置
nmcli
;另请参阅nm-设置(5)。 - Arch 附带的另一种选择是systemd-networkd– 配置简单(参见systemd.网络(5)手册),但它的
networkctl
工具严重缺乏。如果你想配置一个接口,它可以很好地完成工作全部但时间。 - 对于更复杂的配置,您可能必须编写自己的脚本(通常是 Type=oneshot systemd 服务),它直接调用
ip
和iw
工具并配置一切。
答案2
据我所知,/etc/network/interfaces 主要是 Debian 及其后代的东西。我在任何一台 Arch 机器上都没有这个文件夹。
我假设您这里谈论的不是 WiFi。如果是,请查看 netctl 或 systemd-networkd。
假设您想要静态配置,请/etc/systemd/network/50-wired.network
使用以下内容创建(当然,根据您的网络更改名称、地址和网关):
[Match] Name=enp1s0 [Network] Address=10.1.10.9/24 Gateway=10.1.10.1
禁用网络管理器:
# systemctl stop NetworkManager.service
# systemctl disable NetworkManager.service
启用并启动 systemd-networkd.service:
# systemctl start systemd-networkd.service
# systemctl enable systemd-networkd.service
在配置好 dnsmasq 并按照您的需要操作后,您可以激活并启动它:
# systemctl start dnsmasq.service
# systemctl enable dnsmasq.service