​

最近一、兩年各類 VPN 廣告鋪天蓋地,而且還有終身訂閱的 VPN,價格不貴

不過有些低價到讓人懷疑他們會不會隨時就跑路了?! 🤔

我覺得只要該公司能撐到三~五年,就已經算是賺到了,至今能經營超過百年的公司都算厲害了~

根本不期待他們能運作超過十年。。 😂

VPN 偶而拿來跨區看其他國家影片或者拿來臨時加速上網還是挺不錯的

不過使用他們官方提供的 App 來連線使用的話,通常都是全域網路都會被帶入到 VPN 隧道裡面

雖然簡單無腦,但是不適合需要進階一點的使用方式

​

所幸他們這些 VPN 服務商有些都有提供 OpenVPN、IKEv2 or WireGuard 等其他連線方法

這篇主要是讓你透過 Docker 快速將 OpenVPN 轉換成本地內網可用的 SOCKS 代理

轉換成 SOCKS 代理後,你就可以使用 Proxy.pac、瀏覽器的外掛 SwitchyOmega 或者 Surge。。等等

來達到進階自由的代理模式,例如你可以設定遇到 Netflix 域名時,就透過日本代理去連線

遇到 Disney+ 時候,就透過美國代理去連線,遇到沒有設定的域名,就還是維持你原本的網路去上網

全自動無需每次都要手動開關 VPN,非常的方便

​

下載 OpenVPN.ovpn 設定檔

以下使用 KeepSolid VPN Unlimited 來搭配使用(各家公司 OpenVPN 提供的連線方式有可能不同)

首先先到 VPN Unlimited 官網的管理後台登入

https://my.keepsolid.com/products/vpn/

​

這邊可以手動下載到他們家有提供的各種協議 VPN,你選好需要的國家跟協議以後

就可以直接下載設定檔使用

​

​

可以多選幾個常用國家一起下載回來,每個國家都會是獨立的 ovpn 檔案

下載的檔案請妥善保存,稍等要把這檔案掛入 Docker 裡面

​

利用 Docker 快速部屬

在 Docker Hub 上面找到有人實作的現成 image

測試一下,只要照著說明書填入對應的路徑與名稱即可開箱即用

需要詳細使用說明可以去看原始碼: https://github.com/binhex/arch-privoxyvpn

適合 VPN Unlimited 的 Docker 指令如下(只啓動 SOCKS、關閉 Privoxy)

​

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
docker run -d \
--cap-add=NET_ADMIN \
-p 9118:9118 --restart=always \
--name=ovpn2socks-name \
-v /path/to/your/openvpn.ovpn:/config/openvpn/openvpn.ovpn \
-v /etc/localtime:/etc/localtime:ro \
-e VPN_ENABLED=yes \
-e VPN_PROV=custom \
-e VPN_CLIENT=openvpn \
-e LAN_NETWORK=192.168.1.0/24 \
-e NAME_SERVERS=1.1.1.1,8.8.8.8 \
-e SOCKS_USER=username \
-e SOCKS_PASS=password \
-e ENABLE_SOCKS=yes \
-e ENABLE_PRIVOXY=no \
-e DEBUG=false \
-e UMASK=000 \
-e PUID=0 \
-e PGID=0 \
binhex/arch-privoxyvpn

如上,有以上幾行設定請按需修改

第 3 行:映射的 port 也就是 SOCKS 連線會用到的,如果你打算開多個的話,記得把數字跳開

第 4 行:容器的名稱,請自己隨意取自己能一眼辨識出的名字即可

第 5 行:對應到剛剛下載回來的 OpenVPN.ovpn 檔案路徑

第 10 行:請改為你自己內部網路的 IP 段

第 11 行:使用的 DNS Server

第 12、13 行:SOCKS 連線使用時需要驗證的帳號跟密碼

​

以上修改為自己環境設定後,全部拷貝起來,一次貼到已經安裝好 Docker 的主機上

按下 Enter 馬上跑起來,稍等十幾秒等待容器建立 OpenVPN 連線後,即可開始使用

​

如果你想要同時建立多條線路的話,只要修改不同 ovpn 檔案路徑並把容器名稱跟 port 跳開

即可輕鬆同時建立多條線路,但你要注意一下你購買的 VPN 有沒有超過同時在線數量的限制

每一個 OpenVPN 連線都會建立一個獨立 Docker 容器

​

2020/12/03 update
如果你使用 Ivacy VPN 可以參考這篇: https://www.jkg.tw/p3402/

​

SwitchyOmega 設定

Docker 幫你自動連好 OpenVPN 與搭好 SOCKS 代理後

接下來我們使用其他代理軟體就能輕鬆透過我們搭好的隧道上網了

首先打開 SwitchyOmega 的設定視窗,準備新增一個新的 Profile

​

​

接著隨便取個名字與選好 Proxy Profile

​

​

如下圖填好各欄位的資料,請根據自己前面設定的環境去修改

​

​

我們上面 SOCKS 代理有加驗證所以上圖第 4 步驟要填帳號跟密碼

​

​

記得 Apply 保存一下設定即可

​

​

想要自動根據域名來切換各國家代理的話,可以依照下圖範例

​

​

上圖只是範例,照抄不一定有效,請根據自己需求與實際域名修改

​

至此就完成所有設定囉!如此輕鬆就能將 OpenVPN 轉成本地內網 SOCKS 代理

想要更進階的玩法可以自己嘗試摸索唷! 🖖