如何讓多個乙太網埠(NIC)在 Linux 設備上同時工作
我是路由和網路的新手,所以我希望你們中的一些人能幫助我理解這個問題以及如何解決它。
現在的情況:
我有一個 linux 伺服器(raspbian/ubuntu)。該伺服器有兩個乙太網埠(每個埠都有自己的 MAC 和固定 IP 地址)。請參考下圖以查看預期的連接和分配的 IP 等(請點擊下面的連結)。
一個具有固定 IP 地址的微控制器 (µC) 連接到這個 linux 伺服器上的一個乙太網埠。這個 µC 將數據發送到伺服器,然後將其保存到 linux 伺服器上的數據庫中。linux 伺服器的第二個乙太網埠連接到路由器。該路由器可以訪問網際網路。我的電腦(IP 是動態分配的)也連接到這個路由器。
問題:
當 linux 伺服器上的兩個乙太網埠都連接時,它們不會按預期工作。µC 可以將數據發送到 linux 伺服器,我可以從 linux 伺服器連接到網際網路。但是,如果我想從我的電腦(filezilla、ftp、ssh 等)連接到 linux 伺服器,我總是會超時。一旦兩個乙太網埠都處於活動狀態,就無法連接到伺服器。一旦我禁用了一個乙太網埠(sudo ip link set eth0 down,或者只是從它斷開乙太網電纜),從我的電腦連接到 linux 伺服器就沒有問題了。
我已經嘗試了很多東西(添加自定義路由表、規則等),但到目前為止我無法讓它按照我希望的方式執行。但與此同時,我認為我想太多了,因為這看起來真的不應該花費太多精力來讓這個設置正常工作。
到目前為止,我嘗試過的大多數解決方案都朝著這個方向發展: https ://kindlund.wordpress.com/2007/11/19/configuring-multiple-default-routes-in-linux/
我希望你們中的一些人能告訴我一些我目前沒有看到的明顯的東西。我感謝每一個提示和幫助,非常感謝。
您遇到的問題是您在兩個網路介面上配置了相同的網路。這不是您通常想要的。
理想情況下,您的微控制器網路上會有例如 192.168.1.0/24,而其他連接上會有 192.168.2.0/24。您只能與給定網路建立一個連接。如果您有充分的理由將微控制器置於與其他網路相同的 IP 範圍內,為什麼不簡單地將微控制器連接到該其他網路而忘記第二個介面呢?
另一種解決方案是將兩個介面放在一個網橋中,這樣它們就可以有效地在同一個網路上。除非微控制器正在生成大量數據(有效地使網路介面飽和),否則與僅使用一個介面相比,這並沒有真正的優勢。