樹莓派有線網(wǎng)口連接一臺(tái)交換機(jī),地址10.10.10.12,交換機(jī)不連外網(wǎng)。
無線網(wǎng)口連接WIFI,地址192.168.0.201
設(shè)想是樹莓派通過WIFI連接外網(wǎng),通過有線連內(nèi)網(wǎng)跑一個(gè)正在寫的程序
配置好后發(fā)現(xiàn)兩個(gè)網(wǎng)段都可以ping通,但是ping 不通 www.google.com
懷疑是路由表的問題
之前一個(gè)小項(xiàng)目上也遇到過linux系統(tǒng)雙網(wǎng)卡,分別接內(nèi)網(wǎng)外網(wǎng),ping外網(wǎng)地址默認(rèn)使用內(nèi)網(wǎng)網(wǎng)卡的問題。
同時(shí)我手頭有臺(tái)ubuntu主機(jī)也是一樣的連接方式,但是沒有問題
查看之后發(fā)現(xiàn)路由表第一條有問題,所有的包都從eth0發(fā)出去了
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 303 0 0 eth0
之前遇到過類似的問題,發(fā)現(xiàn)是路由的配置問題,并且問題出在先配置無線,再配置有線的情況下,反之就沒問題。如果最后配置有線IP,會(huì)增加一條新的路由規(guī)則,導(dǎo)致數(shù)據(jù)全部從這個(gè)有線網(wǎng)卡發(fā)送出去。
這次直接把這條路由刪掉,發(fā)現(xiàn)也行。
再開機(jī)啟動(dòng)里加上就行
sudo route del -net 0.0.0.0/0 eth0
但是加上了不其效果,猜想是相關(guān)服務(wù)還沒啟動(dòng),加了個(gè)time.sleep(20)解決