我在 NUC 上运行 Ubuntu 16.04 来管理我的家庭和工作网络。NUC 中的单个 NIC 分配了两个 IP 地址,每个网络一个,具体分配方法如下/etc/network/interfaces
:
auto lo
iface lo inet loopback
#1st is home
auto enp3s0
iface enp3s0 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.254 # huawei modem
dns-search homenet
#2nd is work vpn
auto enp3s0:1
iface enp3s0:1 inet static
address 172.16.9.1
netmask 255.255.255.240
gateway 172.16.9.1
dns-search xx.yy.xx.com
ifconfig
过去会同时显示 inet 地址192.168.0.1
和172.16.9.1
,但自从今天运行提供的 ubuntu 更新以来,现在只显示第一个。工作子网中的机器无法互相看到或看到外部网络,因为 IP 地址172.16.9.1
无法访问。
肯定有些东西发生了变化,但我不知道该改变什么或如何改变。
这台机器正在运行,isc-dhcp-server
以在家庭和工作网络中分配 IP 地址,并bind9
为家庭网络进行 DNS 查找。当它正常工作时,工作机器的 DNS 由 VPN 管理。
我没有使用图形网络管理器。
有什么想法可以让其再次运行吗?
更新:我随后看到了一行boot.log
以前不存在的内容:
Failed to start Raise network interfaces.
See 'systemctl status networking.service' for details.
所以我这样做了。我可以看到以下消息四次:
ifup[670]: Another app is currently holding the xtables lock.
Perhaps you want to use the -w option?
/etc/network
我有一个脚本if-pre-up.d/iptables
,它调用系统iptables
命令五次。我猜这就是错误的原因 - 但直到今天更新之前它一直运行可靠。虽然我可以把-w
所有这些行都放进去,但我怀疑我只是在治疗症状而不是解决真正的原因 - 我还没有确定。
更新2iptables
:我原本以为脚本中对 的五次调用产生了四个xtables lock
错误。但后来我发现我的脚本实际上被调用了四次:每个接口调用一次(lo
、enp3s0
和enp3s0:1
),并且将$IFACE
的值设置为 。对和 的--all
调用同时运行,并且其中一个会阻塞另一个。--all
enp3s0
我在更改日志中找不到任何内容,但我猜测,运行 IFACE=--all 的这个脚本可能是我遇到的问题的根本原因。
提前致谢
干杯,T