如何將某些網址列入白名單/黑名單以不使用 VPN 連線?

如何將某些網址列入白名單/黑名單以不使用 VPN 連線?

附註:我發現我們的 OpenVPN 伺服器確實是為分割隧道設定的,但我們的客戶正在推送他們自己的網關:

redirect-gateway def1 bypass-dhcp bypass-dns

這樣做是為了存取一些外部世界無法存取的內部服務。一個更合適的問題是:在不推送透過 VPN 路由整個流量的網關的情況下存取 VPN 內部服務的正確方法是什麼,儘管我認為這相當本身就是一個不同的問題


我在家庭辦公室,雖然我透過網路管理器建立了穩定的 VPN 連接,但其速度非常有限。我家裡有 1 GBit 連接,而 VPN 連接目前僅提供 10 MBit。

雖然某些服務必須透過 VPN 連接,但大多數流量可以繞過它,因為 VPN 所做的只是減慢速度。 (我特別關注公共資料密集型服務,例如從官方 docker hub 或 npm 註冊表下載映像。但是,為了進行設置,讓我們採用像 fast.com 這樣的服務。)

如何將某些網站列入白名單以使用 VPN 連線或將其他網站列入黑名單以不使用 VPN 連線?

答案1

與為您設定 VPN 的人員討論。

這通常稱為分割路由,其中​​ VPN 隧道將用於公司網路內部的資源,而預設網關將用於其餘資源。這通常比按服務過濾更容易。一般情況下,公司會有一些網路上的一種內部計劃,可以輕鬆提供分割路由。

您應該檢查您的組織是否允許這樣做。並非所有組織都允許分割路由,因為他們希望對您的流量進行資料遺失防護。

答案2

以下是一些可以嘗試的替代方案:


  • 省略更改預設網關:

在設定指令中將“redirect-gateway”選項變更為redirect-private


  • 僅透過 VPN 路由 VPN 流量:(
    如果伺服器將明確路由推送到客戶端,則有效)

選取 VPN 設定 -> IPV4 -> 下的複選框
“僅將此連接用於其網路上的資源”
如果他們推送明確路由,則只有該流量才會通過 VPN。


  • 推送非 VPN 流量外部隧道的:

連接到您的 VPN,然後在終端中:

host www.sl.se # host you want outside tunnel
194.68.78.65 # the ip of the host above
sudo ip route add 194.68.78.65 dev eth0 # route traffic outside VPN 

這會將流量路由到 VPN 外部的 www.sl.se


  • 推送 VPN 流量裡面逐一主機的隧道

連接到您的 VPN,然後在終端中:

host your-vpn-onlyhost.com # host you want inside of tunnel
 1.1.1.1.1 # the ip of the host above
sudo ip route add 1.1.1.1 dev tun0 # route traffic inside VPN

所有範例均假設 VPN 介面名稱為 tun0,而您的網路卡名稱為 eth0。且 DNS 名稱可以在 Internet 上解析。

答案3

你想要的是所謂的分割隧道。

您可以執行的操作取決於您在客戶端電腦上的使用者類型。如果您不是 sudoer,則必須由此類使用者(通常是系統管理員)來修復此問題。

如果您是 sudoer(並且假設您的組織可以進行這樣的更改;這取決於您來了解),您可以按照本指南

筆記:

  1. 16.04 和 18.04 之間發生了一些更改,因此較舊的指南可能不完整。

  2. 我不知道 18.04 和 19.10 之間是否有任何變化導致該指南不起作用。

有關的:

僅將 OpenVPN 用於一項應用程式/服務

https://serverfault.com/questions/792118/openvpn-how-to-stop-public-traffic-routing-through-vpn-server

https://dltj.org/article/openvpn-split-routing/(2010年起)

相關內容