OpenVPN 只讓指定的 IP Address 通過 VPN

實驗設備需要使用 VPN 連線到內網才能訪問,但 OpenVPN 一開啟後,全部的流量預設都會經由 VPN 傳輸,不僅速度慢還會遇到無法訪問的情況(內網只開放網站白名單)。因此只將需要的特定 IP Address 透過 VPN 傳輸,就不會影響平常使用的流量傳輸。

1. 環境

  • macOS Monterey v12.6.3
  • OpenVPN Connect v3.3.6

2. 設定

開啟 .ovpn 檔案,在檔案尾端加入,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 設定 OpenVPN 連線後,不會有任何網路請求通過 VPN 通道
route-nopull

# 設定某個網路區段優先走 VPN 通道,下面的例子是 192.168.1.1~192.168.1.255
#route 192.168.1.0 255.255.255.0 vpn_gateway

route 192.168.28.0 255.255.255.0 vpn_gateway
route 192.168.29.0 255.255.255.0 vpn_gateway
route 10.0.0.0 255.0.0.0 vpn_gateway
route 172.29.87.0 255.255.255.0 vpn_gateway
route 172.29.88.0 255.255.255.0 vpn_gateway
route 172.31.0.0 255.255.0.0 vpn_gateway


# 所有網路訪問都走 VPN 通道,但是訪問某個網段則否
# route 192.168.1.0 255.255.255.0 net_gateway

每次修改 .ovpn 檔案後,OpenVPN 必須重新 Import Profile > FILE(指定檔案)後才會生效。

3. 相關參數

3.1. route-nopull

OpenVPN 連線後,不會有任何網路請求通過 VPN 通道。

3.2. vpn_gateway

設定 route-nopull,增加 vpn_gateway 來讓指定的 IP Address 可以通過 VPN 通道。

3.3. net_gateway

vpn_gateway 相反。預設訪問請求都走 VPN 時,指定特定 IP 不通過 OpenVPN 出去。

4. References