我有两台装有 Archlinux 的服务器。
它们都使用静态 IP 地址和 netctl。它们都只能通过 ssh 访问(例如,我没有键盘和显示器)。
我面临的问题是服务器启动时,如果拔掉网线,则无法设置IP地址。
我尝试使用ExcludeAuto=no
和ForceConnect=yes
,但没有成功。
我也尝试过ifplugd
,但是我的服务器无法访问,所以我没有进行太多测试。
我知道我可能可以用ip link
或ifconfig
直接来做到这一点,但我正在寻找一些更智能的解决方案。
配置如下:
# /etc/netctl/lan1
Description='A basic static ethernet connection'
Interface=enp1s0
Connection=ethernet
IP=static
Address=('192.168.0.3/24')
Gateway='192.168.0.1'
DNS=('8.8.8.8')
答案1
我检查了 netctl 源代码,发现需要在 netctl 配置文件中添加以下几行:
ForceConnect=yes
SkipNoCarrier=yes
例如完整的个人资料必须是这样的:
# /etc/netctl/lan1
Description='A basic static ethernet connection'
Interface=enp1s0
Connection=ethernet
IP=static
Address=('192.168.0.3/24')
Gateway='192.168.0.1'
DNS=('8.8.8.8')
ForceConnect=yes
SkipNoCarrier=yes
如果你在 google 上搜索SkipNoCarrier=yes
,你可以在网上找到它,但它在 Archlinux 网站上仍然没有很好的记录。