今天發現我的 Cydia 連不上,進去 linode 後台一看,靠腰已經斷線三四天了。
環境:Ubuntu 16.04 LTS,Linode JP 2
Linode 即使連不上 SSH,還是可以用他們的 lish 服務進去 terminal,所以以下操作都是在 lish 做的
先測試看看是不是 nginx 掛掉,輸入
service nginx restart
發現無法重開,於是看看是不是 networking 掛掉,一樣輸入
service networking restart
結果還是顯示 failed,哇完蛋了
用 ifconfig 看一下,顯示
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:25411 errors:0 dropped:0 overruns:0 frame:0 TX packets:25411 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000
GG,網卡介面怎麼不見啦!!想說是不是我系統設定壞了,所以用了各種 Backup Restore,甚至重開了一個 linode 來測
最後發現是 linode 智障又給我亂改設定動到網卡介面,如果不想動 grub 之類的,就用以下方法解決:
解決方法 1:
先列出所有網卡
ifconfig -a | grep Link
出現範例如下:
dummy0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx enp0s3 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet6 addr: xxxx::xxxx:xxxx:xxxx:xxxx/64 Scope:Link erspan0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 gre0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 gretap0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 ip6_vti0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 ip6gre0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 ip6tnl0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 ip_vti0 Link encap:IPIP Tunnel HWaddr lo Link encap:Local Loopback sit0 Link encap:IPv6-in-IPv4 teql0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 tunl0 Link encap:IPIP Tunnel HWaddr
可以看到有 HWaddr 的只有 dummy0 跟 enp0s3,而 dummy 顧名思義就是假的XD
所以修改 /etc/network/interfaces,把裡面介面(原本應該是 eth0)換成 enp0s3 ,再重開機就好了
另外,如果 Linode Dashboard 那邊有設定 Auto-configure Networking 的話,要關掉,不然重開機會被還原成 eth0
此外如果有 iptables 之類的也要檢查裡面有沒有網卡設定。
解決方法 2:
打開
/etc/udev/rules.d/70-persistent-net.rules,看到裡面的設定,當中的 MAC address 改為正確的值(ifconfig -a 取得網卡 MAC),再重開機就好了
這篇文章 智障 Linode 亂改我的網卡介面之解法 最早出現於 Hiraku Dev。