Linux

如何使用 iptables/route 通過自己的網關路由來自一臺本地網路設備的流量?

  • November 6, 2010

在我的 Linux 伺服器 (Ubuntu) 上,如何配置源自我的網路介面之一(我的 VPN 設備 - ppp0)的流量以通過其自己的網關地址進行路由?

注意事項:

  • 我無法將其設置為伺服器上的預設路由,因為通過它路由所有流量的成本很高
  • 沒有連結到 VPN 的特定子網 - 它可能是到任何公共 IP 或埠的流量(VPN 充當代理)

最終目標是能夠將單個本地應用程序配置為綁定到 VPN IP 並僅通過 VPN 進行通信,但不應通過它路由其他伺服器流量。我已經這樣設置了,但我似乎需要一些額外的路由規則才能讓它工作。

如果 VPN 實際上充當代理,則應將源地址重新寫入 ppp 會話的遠端(除非它是未編號的介面,但我在 vpn 上沒有看到)。如果它實際上路由正常,並且目的地可能在任何地方,那麼它就變成了一個更有趣的問題。

基本解決方案在 LARTC 中進行了概述——您需要創建第二個路由表,將 VPN 隧道指定為預設路由,然後添加過濾器以引導某些流量查看輔助路由表而不是預設路由表。如果您只需要一個應用程序來使用隧道,並且該應用程序可以綁定到隧道介面的 IP,那麼來自源 IP 的基於策略的路由應該可以解決問題 - 請參見此處的範例:http: //lartc.org/如何/lartc.rpdb.html

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