我在 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.
所以我就這麼做了。我可以看到以下訊息 4 次:
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
所有這些內容,但我懷疑我只是在治療症狀,而不是解決真正的原因——我還沒有確定真正的原因。
更新2:最初我以為iptables
我的腳本中的五次呼叫產生了四個xtables lock
錯誤。我發現我的腳本實際上被調用了四次:一次針對每個介面(lo
、enp3s0
和enp3s0:1
),一次針對$IFACE
值為--all
。對--all
和 的呼叫enp3s0
同時運行,其中一個呼叫會阻塞另一個呼叫。
我在更改日誌中找不到任何內容,但我大膽猜測為 IFACE=--all 運行此腳本可能是我遇到的問題的根本原因。
先致謝
乾杯,T