Linux

將一台 Linux PC 連接到兩個不同的 LAN 網路(一個生產,一個用於測試)

  • September 6, 2018
           Cable Modem
       (with 4-port switch)
               |
              / \
             /   \
            /     \
     Router1       Router2
       |               |
      LAN              |
       |               |
(multiple PC's)         |
       |              /
        \            /
         \          /
        [eth0     eth1]
        [    my PC    ]

Router1 和 Router2 執行 Arch Linux。兩者設置相同。Router1 是現場/生產。Router2 是一個測試/開發單元。Router2 用作冷備用(通常僅在 Router1 出現故障或需要維修時才連接的備用。)

電纜調製解調器是 DHCP 伺服器。路由器 1 和路由器 2 都將通過電纜調製解調器在其 WAN 埠上分配 IP 地址。兩個路由器都將 dnsmasq 作為 DHCP 伺服器執行,並且設置相同,它們都將相同的 IP 地址範圍分配給它們的 DHCP 客戶端。

當我的 PC 通過 eth0 (IP 192.168.0.10) 連接到 LAN 時,我需要臨時連接到 Router2 以執行一些測試。過去,我總是在工作時間之外做這項工作。過程是連接Router2,斷開我的PC與LAN的連接並將其直接連接到Router2,然後執行我的工作。然而,這是非常不方便的。

我的電腦上有 eth1(第二個物理網卡)。(我的 PC 也執行 Arch Linux。)我希望能夠在通過 eth0 連接到 LAN 時以及在工作時間在 Router2 上工作。連接後,我需要通過 ssh 進入 Router2 並完成我的工作,然後關閉 Router2 並斷開它與電纜調製解調器的連接。

預設情況下,Router1 和 Router2 的 LAN 埠均為 192.168.0.1,網關為 192.168.0.255。

我怎樣才能實現我的目標?我假設我可能必須更改 Router2 上的一些網路設置,但我希望將此類更改保持在最低限度,因為它應該完全複製 Router1。

我喜歡 LostWander 的回答,但如果這只是您想臨時設置的東西,您可以使用以下方式向您的 PC 路由表添加一條路由:

ip route add a.b.c.d/32 dev eth1

其中 abcd 是 Router2 的 IP 地址。注意:在刪除此路由之前,您將無法與連接到 eth0 的網路上與 Router2 具有相同 IP 地址的任何設備通信。

在對路由器設置進行最少更改的同時,實際上可以讓您訪問 Router2 的方法是在您的 PC 上創建一個虛擬機。然後,您可以將 eth1 分配給該 VM,並通過您想要使用的任何 VM 主機軟體工作。這樣您就不必更改路由器的任何內容或弄亂 PC 上的路由表。

引用自:https://serverfault.com/questions/929614