將 Wireguard 轉換成 SOCKS5 – Wireproxy

前言

用了這麼久的 Wireguard,其實每天睡醒都在想能不能使用他創造更多東西。當你使用 Wireguard 時,基本上電腦上都要開著這個應用程式,並且他將會成為一個網卡,並改變你電腦的路由。不過有沒有一個方法,他像是代理那樣,有 HTTP 或是 SOCKS 協定,這樣我就只需要在支援的應用程式上綁定,不用改變電腦的路由。

而在某一天睡前就真的讓我逛到這個專案:Wireproxy。這個程式能連接到 Wireguard 隧道、建立 HTTP / SOCKS5 代理接口、也不會改變電腦的路由,最重要的一點是:他不需要管理員權限即可使用。

在開始之前,你需要已經了解 Wireguard 如何使用、知道 HTTP / SOCKS5 代理是什麼,再接著下去看會比較合適。

下載及設定

我們先到 Wireproxy 的 Github 專案,查看最新的 Releases(連結),並下載適用於你電腦版本的。這篇文章會使用 Windows 作為教學示範,所以我下載 windows_amd64 的版本。並將他放置於 C:\ 底下。

001.jpg

接著,建立一個檔案在這個資料夾裡面,檔名結尾要是 .conf。內容就是你的 Wireguard 設定檔,但在結尾的部分我們可以將上以下兩種段落。

若你想要建立 HTTP 代理,則在設定檔結尾加上:

[http]
# 將監聽在本機的 Port 25345
BindAddress = 127.0.0.1:25345

# 如果你想進行身分驗證,則取消這邊的註解。
# Username = ...
# Password = ...

若你想要建立 SOCKS5 代理,則在設定檔結尾加上:

[Socks5]
# 將監聽在本機的 Port 25344
BindAddress = 127.0.0.1:25344

# 如果你想進行身分驗證,則取消這邊的註解。
# Username = ...
# Password = ...

你也可以選擇都要,那就兩個都加上。一份完整的 Wireproxy Config 大概可以長得像下面這樣:

[Interface]
PrivateKey = iO9TEyU8jDnyQTEVgJ8ZG4My1kj00rVYrgVt1vIipnY=
Address = 172.16.0.2/32, fd00::2/128

[Peer]
PublicKey = tqxJc7rKDqlS0cUJSxF2CF6zYHcdhF+HOjAUhxq3TTU=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 12.34.56.78:51820
PersistentKeepalive = 60

[Socks5]
BindAddress = 127.0.0.1:12345

接著存檔於這個資料夾就好囉。

開始使用

在我上面的範例,我將會使用 SOCKS5 接口,並將檔案存為 example.conf

打開一個 cmd 並到這個目錄底下,使用以下命令:

wireproxy.exe -c example.conf

接著打開支援的瀏覽器,這裡我使用 Firefox。到 設定 → 網路設定 底下,設定 SOCKS5 的位址為 localhost 及埠號 12345,確定保存。

002.jpg

這樣,你應該就會看到你的瀏覽器正在使用這個 SOCKS5 接口連上 Wireguard 隧道囉!你可以透過我之前寫的 IP 查詢工具,來看看開啟前及開啟後,IP 位址是否有改變!

其他瀏覽器

上方舉例 Firefox 的原因,是因為他能直接在介面上進行設定,在教學上較為方便。

平常大家常使用 Chromium 體系的瀏覽器,如:Google Chrome、Microsoft Edge、Brave Browser,其實他們也支援,但是在設定上不如 Firefox 簡單。

如果你想要在這些瀏覽器上使用,請參考:Chromium 體系瀏覽器使用 SOCKS 代理