
我有個問題。首先,我想在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的原因乙太網路0在ifconfig
輸出中以及為什麼互聯網可以工作而內部網路不再工作。
您必須刪除該線gateway 172.16.1.254
並重試。
當然,透過這樣做,如果您的內部 LAN 上有多個子網,您將無法再存取它們。除非您在伺服器上配置指向所有這些子網路的靜態路由:
sudo 路由新增 -net ABCD gw 172.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
重新啟動後,能夠連接到兩個網路。