不能同時使用兩個網路接口

不能同時使用兩個網路接口

我有個問題。首先,我想在Ubuntu 14.04上設定一個伺服器。我有 2 個介面:eth0 用於 dhcp 伺服器,eth1 用於網路連線。但如果我同時連接兩個網絡,電腦上就沒有互聯網。所以我必須在伺服器和互聯網之間做出選擇。太糟糕了,誰能告訴我如何關閉這個問題?

/etc/網路/介面:

auto lo eth0 eth1

iface lo inet loopback

iface eth0 inet static
address 172.16.1.100
netmask 255.255.255.0
broadcast 172.16.1.255
gateway 172.16.1.254

sudo 路由輸出:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth1
192.168.0.0     *               255.255.255.0   U     1      0        0 eth1

UPD:ifconfig 輸出:

eth0      Link encap:Ethernet  HWaddr 90:e6:ba:46:1d:50  
          inet6 addr: fe80::92e6:baff:fe46:1d50/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1110 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:184287 (184.2 KB)

eth1      Link encap:Ethernet  HWaddr 00:04:75:98:5f:da  
          inet addr:192.168.0.101  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::204:75ff:fe98:5fda/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14498 errors:0 dropped:0 overruns:2 frame:0
          TX packets:13096 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:9710708 (9.7 MB)  TX bytes:1840400 (1.8 MB)
          Interrupt:18 Base address:0x4c00 

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:4398 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4398 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:527890 (527.8 KB)  TX bytes:527890 (527.8 KB)

答案1

配置我的第一個答案的輸出ifconfig和註釋,我認為問題與您在/etc/network/interfaces.

由於您沒有任何具體配置乙太網路1在 中/etc/network/interfaces,我假設您的數據機正在透過 DHCP 向您的伺服器提供 IP 資訊。根據route輸出,您的預設閘道指向數據機,從而指向網際網路。

但在你的/etc/network/interfaces檔案中乙太網路0您也配置了預設網關(語句gateway 172.16.1.254)。

系統上不能有兩個預設網關。預設網關的分配乙太網路1停用靜態配置乙太網路0,沒有IP的原因乙太網路0ifconfig輸出中以及為什麼互聯網可以工作而內部網路不再工作。

您必須刪除該線gateway 172.16.1.254並重試。

當然,透過這樣做,如果您的內部 LAN 上有多個子網,您將無法再存取它們。除非您在伺服器上配置指向所有這些子網路的靜態路由:

sudo 路由新增 -net ABCD gw 1​​72.16.1.254

route您可以在已儲存的腳本中新增該命令/etc/network/if-up.d,以便在每次介面啟動時執行。

答案2

根據我對您的帖子的了解,您正在透過以下方式連接到互聯網乙太網路1並透過您的內部網絡乙太網路0。然後,您的伺服器將扮演 DHCP 伺服器和 PC 上網預設閘道的角色。

首先,在 PC 上檢查是否已正確接收所有 DHCP 設置,包括網關。從你的問題來看,我認為應該是 172.16.1.100

其次,請確保您的乙太網路1網路連線良好且配置良好;這顯然取決於您的 ISP。

最後,最重要的操作是,您必須在伺服器上的兩個介面之間啟用 IP 轉送。如果沒有這個,資料包將不會在您的電腦和網路之間路由:

手動設定:

sudo echo 1 > /proc/sys/net/ipv4/ip_forward

若要在啟動時自動設定 IP 轉送標誌,請取消註解該#net.ipv4.ip_forward=1/etc/sysctl.conf

您還必須確保沒有 IPtables 防火牆規則可阻止流量。做 :

iptables-L-n

取得規則清單(如果有)。我首先會在禁用所有防火牆規則的情況下嘗試此設定:

iptables -F

答案3

我有類似的問題,但我的介面文件是空的,如下所示:

# The loopback network interface
auto lo
iface lo inet loopback

我設法透過移動/刪除找到的有線連接檔案來解決該問題: /etc/NetworkManager/system-connections/Wired connection 1

重新啟動後,能夠連接到兩個網路。

相關內容