多網口環境下建设Ubuntu網絡路由

今朝我們的實驗室有兩條線路:

  • 172.C.D.0/24: 校园网(不成连接互联网,但可以接入VPN)
  • 192.168.B.0/24: 尝试室宽带网(可以连接互联网,可是没有公网IP)

我們的首要需求是通過校園網實現遠程SSH接入,通過實驗室寬帶網訪問互聯網。可是由于Ubuntu天生的默認網關會自動將所有流量轉到metric小的接口上,這將導致本来應該從校園網出口流出的SSH流量也走了實驗室寬帶網,從而無法成立SSH連接。這就需要對路由進行点窜,可以通過netplan辅助進行。

由于校園網的路由已經成立且正確,所以在默認網絡建设下的首要問題其實是主機內路由表可否正確找到到客戶真个路由路徑,并且由于VPN的存在,還需要考慮其産生的虛擬IP到主機的路由

編輯/etc/netplan/50-cloud-init.yaml(这是Ubuntu 24.04默许的收集建设文件,也有可能会变动),将路由项写入:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
network:
    ethernets:
        eno1:
            addresses:
            - 172.C.D.E/24        # 主机校园网IP
            routes:
            - to: 172.A.0.0/12    # 全部校园网的子网
              via: 172.C.D.1      # 当前网关(下同)
            - to: 211.64.0.0/13   # VPN的虚拟IP子网
              via: 172.C.D.1
        eno2:
            dhcp4: true           # 尝试室宽带网(直接利用DHCP建设)

接下来利用netplan apply进行利用,便可以实现两条线路分工工作了。

當然,實現上述目標還有其它编制(例如通過設置路由表使流量強制走來時的接口),可是這些做法稍顯複雜,就不在此贅述了。

利用 Hugo 構建
主題 StackJimmy 設計
xxfseo.com