WireGuard – 讓被牆IP的VPN重新復活的強大工具

首先感謝逗逼根據地提供的教程

WireGuard簡單介紹

注意:WireGuard 是通過 UDP 協議傳輸數據的,這意味著它可以搭建在被牆的伺服器上使用,復活被牆IP

同時:因為是 UDP 傳輸的,所以也不怕被牆,銳速、BBR 這類TCP加速工具也不會對其起到加速作用。

另外:如果你當地運營商對海外 UDP 鏈接進行 QOS 限速,那麼速度可能不如使用 TCP 鏈接的代理軟體理想。

至於該 VPN 是否容易被GFW針對封鎖,目前還不得而知,至少目前 WireGuard 連 1.0 正式版都不算。

更少的代碼

相比於 OpenVPN 、 IPSec 的幾十萬行代碼,WireGuard 只有短短的四千行。

更容易部署

對於初次接觸的人來說,相比於其他VPN協議,WireGuard 更容易部署。

更安全的加密

Curve25519 目前最高水平的秘鑰交換演算法。

ChaCha20 對稱加解密演算法,比 AES 更快更高效。

Poly1305 是一種 MAC (Message Authentication Code) 標準,用於驗證數據的完整性和消息的真實性。

BLAKE2 一種更安全的 HASH 演算法(類似的有 SHA1, SHA256, MD5)

SipHash24 另一種 HASH 演算法。

HKDF 一種秘鑰衍生演算法。

Linux之父的評價:

Linus Torvalds, on the Linux Kernel Mailing List:
Can I just once again state my love for it and hope it gets merged soon? Maybe the code isn’t perfect, but I’ve skimmed it, and compared to the horrors that are OpenVPN and IPSec, it’s a work of art(它是一件藝術品).

官方網站:https://www.wireguard.com/


再多的我也編不出來了,大家湊活著看吧。

目前該地區對 VPN 的封鎖日益加重,就連 Cisco AnyConnect VPN 思科VPN都在逐漸被干擾(前段時間開始不少人向我反饋頻繁斷開連接 和 乾脆連不上),所以對 VPN 有需求的可以考慮一下 WireGuard ,而且WireGuard 還比 思科VPN配置簡單,不需要導入證書什麼的。

因為其鏈接特性,所以 WireGuard 有很好的穩定性,無論你怎麼切換網路 或者 網路波動導致斷開後,往往可以很快恢復鏈接,所以如果拿來加速遊戲的話,可能效果不錯(當然前提是你的代理伺服器也要網路不錯)。


前提要求

系統要求:Debian 8 / 9、Ubuntu 14.04 / 16.04 / 18.04 / 18.10

伺服器要求:OpenVZ 虛擬化的伺服器不支持安裝該VPN,其他虛擬化均可。

如果擔心出錯,那麼我推薦 Debian9、Ubuntu16.04 / 18.04 / 18.10 系統,這些較新的系統更不容易出錯,相對來說 Ubuntu 系統安裝更方便!

注意:如果你用的是 Vultr、DO,且你本地沒有 IPv6 地址,那就不要勾選 Enable IPv6 ,否則可能客戶端鏈接時可能會出錯。

另外,請確保你的系統是純凈的,建議重裝系統後直接開始本教程!

CentOS7 系統可以參考下官方給的安裝代碼,至於後面的配置步驟什麼的全系統通用。因為時間有限,所以我目前只測試了各個 Debian Ubuntu 系統,有空的話我測試下 CentOS7,補充下手動教程。

Debian安裝步驟

安裝內核

首先,Debian 無論是哪個系統,默認往往都沒有 linux-headers 內核,而安裝使用 WireGuard 必須要這貨,所以我們需要先安裝:

# 更新軟體包源

apt update

# 安裝和 linux-image 內核版本相對於的 linux-headers 內核

apt install linuxheaders$(uname r) y

# 以下為示例內容(僅供參考)

# Debian8 安裝前內核列表(空)

root@doubi:~# dpkg -l|grep linux-headers

# 空,沒有任何輸出

# Debian8 安裝後內核列表(注意這裡的版本號 可能不一樣)

root@doubi:~# dpkg -l|grep linux-headers

ii linuxheaders3.16.06amd64 3.16.572 amd64 Header files for Linux 3.16.06amd64

ii linuxheaders3.16.06common 3.16.572

# Debian9 安裝前內核列表(空)

root@doubi:~# dpkg -l|grep linux-headers

# 空,沒有任何輸出

# Debian9 安裝後內核列表(注意這裡的版本號 可能不一樣)

root@doubi:~# dpkg -l|grep linux-headers

ii linuxheaders4.9.07amd64 4.9.1103+deb9u2 amd64 Header files for Linux 4.9.07amd64

ii linuxheaders4.9.07common 4.9.1103+deb9u2 all Common header files for Linux 4.9.07

# 以上為示例內容(僅供參考)

安裝WireGuard

然後我們就可以開始安裝 WireGuard 了。

# 添加 unstable 軟體包源,以確保安裝版本是最新的

echo “deb http://deb.debian.org/debian/ unstable main” > /etc/apt/sources.list.d/unstable.list

echo e ‘Package: *\nPin: release a=unstable\nPin-Priority: 150’ > /etc/apt/preferences.d/limitunstable

# 更新一下軟體包源

apt update

# 開始安裝 WireGuard ,resolvconf 是用來指定DNS的,舊一些的系統可能沒裝。

apt install wireguard resolvconf y

Ubuntu安裝步驟

配置PPA

首先如果你是 Ubuntu 14.04 系統,那麼請先安裝 PPA:

# 以下步驟僅限 Ubuntu 14.04 系統執行

apt update

apt install softwarepropertiescommon y

安裝完成後,我們還需要通過 PPA 工具添加 WireGuard 源:

addaptrepository ppa:wireguard/wireguard

# 執行後提示如下示例內容(僅供參考):

root@doubi:~# add-apt-repository ppa:wireguard/wireguard

WireGuard is a novel VPN that runs inside the Linux Kernel. This is the Ubuntu packaging for WireGuard. More info may be found at its website, listed below.

More info: https://www.wireguard.com/

Packages: wireguard wireguardtools wireguarddkms

Install with: $ apt install wireguard

For help, please contact

More info: https://launchpad.net/~wireguard/+archive/ubuntu/wireguard

Press [ENTER] to continue or ctrlc to cancel adding it

# 這裡會提示你是否繼續,點擊 回車鍵 繼續,點擊 Ctrl+C 鍵退出。

# 然後輸出大概如下內容。

gpg: keyring ‘/tmp/tmp8bgitjjx/secring.gpg’ created

gpg: keyring ‘/tmp/tmp8bgitjjx/pubring.gpg’ created

gpg: requesting key 504A1A25 from hkp server keyserver.ubuntu.com

gpg: /tmp/tmp8bgitjjx/trustdb.gpg: trustdb created

gpg: key 504A1A25: public key “Launchpad PPA for wireguard-ppa” imported

gpg: Total number processed: 1

gpg: imported: 1 (RSA: 1)

OK

# 以上為輸出示例內容(僅供參考)

安裝WireGuard

然後我們就可以開始安裝 WireGuard 了。

# 更新一下軟體包源

apt update

# 開始安裝 WireGuard ,resolvconf 是用來指定DNS的,舊一些的系統可能沒裝。

apt install wireguard resolvconf y

驗證是否安裝成功

當你通過上面的步驟安裝完後,請用下面的代碼驗證一下是否安裝成功。

lsmod | grep wireguard

# 執行該代碼後,提示大概如下示例內容(僅供參考),第一行是必須要有的,至於下面的兩行不同系統似乎還不一樣,但是不影響使用。

root@doubi:~# modprobe wireguard && lsmod | grep wireguard

wireguard 212992 0

ip6_udp_tunnel 16384 1 wireguard

udp_tunnel 16384 1 wireguard

配置步驟

生成密匙對

當你確定安裝成功後,就要開始配置服務端和客戶端的配置文件了。放心,這很簡單。

# 首先進入配置文件目錄,如果該目錄不存在請先手動創建:mkdir /etc/wireguard

cd /etc/wireguard

# 然後開始生成 密匙對(公匙+私匙)。

wg genkey | tee sprivatekey | wg pubkey > spublickey

wg genkey | tee cprivatekey | wg pubkey > cpublickey


查看主網卡名稱

先查看一下你的主網卡名是什麼:

ip addr

# 執行命令後,示例如下(僅供參考),lo 是本地環回 忽略,eth0 就是主網卡名了。

# 寫著你的伺服器外網IP的(下面 X.X.X.X 處),就是你的主網卡,NAT的伺服器則是顯示內網IP。

# 如果你拿不準哪個網卡是主網卡,請留言詢問。

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

link/ether 00:16:3c:cf:89:73 brd ff:ff:ff:ff:ff:ff

inet X.X.X.X/25 brd 255.255.255.255 scope global eth0

valid_lft forever preferred_lft forever

生成服務端配置文件

接下來就開始生成服務端配置文件:

# 井號開頭的是注釋說明,用該命令執行後會自動過濾注釋文字。

# 下面加粗的這一大段都是一個代碼!請把下面幾行全部複製,然後粘貼到 SSH軟體中執行,不要一行一行執行!

echo “[Interface]

# 伺服器的私匙,對應客戶端配置中的公匙(自動讀取上面剛剛生成的密匙內容)

PrivateKey = $(cat sprivatekey)

# 本機的內網IP地址,一般默認即可,除非和你伺服器或客戶端設備本地網段衝突

Address = 10.0.0.1/24

# 運行 WireGuard 時要執行的 iptables 防火牆規則,用於打開NAT轉發之類的。

# 如果你的伺服器主網卡名稱不是 eth0 ,那麼請修改下面防火牆規則中最後的 eth0 為你的主網卡名稱。

PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# 停止 WireGuard 時要執行的 iptables 防火牆規則,用於關閉NAT轉發之類的。

# 如果你的伺服器主網卡名稱不是 eth0 ,那麼請修改下面防火牆規則中最後的 eth0 為你的主網卡名稱。

PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

# 服務端監聽埠,可以自行修改

ListenPort = 443

# 服務端請求域名解析 DNS

DNS = 8.8.8.8

# 保持默認

MTU = 1420

# [Peer] 代表客戶端配置,每增加一段 [Peer] 就是增加一個客戶端賬號,具體我稍後會寫多用戶教程。

[Peer]

# 該客戶端賬號的公匙,對應客戶端配置中的私匙(自動讀取上面剛剛生成的密匙內容)

PublicKey = $(cat cpublickey)

# 該客戶端賬號的內網IP地址

AllowedIPs = 10.0.0.2/32″|sed ‘/^#/d;/^\s*$/d’ > wg0.conf

# 上面加粗的這一大段都是一個代碼!請把下面幾行全部複製,然後粘貼到 SSH軟體中執行,不要一行一行執行!

多用戶教程:

簡單說明

其實 WireGuard 的多用戶配置特別簡單,只需要生成一對客戶端密匙(公匙+私匙),在服務端配置文件中新增一段 [Peer] 寫上新的客戶端公匙和客戶端的內網IP地址即可。

當然我們可以用命令快捷添加,或者手動修改服務端配置文件也行。

而各客戶端賬號配置文件的區別也只是 [Interface] 中的客戶端私匙和客戶端內網IP地址不同罷了。


另外我們需要明白一個對等原則:

  • 服務端配置文件中的 [Interface] 是保存自己的服務端私匙,而客戶端配置文件中的 [Interface] 同樣保存自己的客戶端私匙。
  • 服務端配置文件中的 [Peer] 是保存客戶端的公匙,而客戶端配置文件中的 [Peer] 是保存服務端的公匙。
  • 即,服務端與客戶端都是互相保存自己的私匙在 [Interface] 中,互相保存對方公匙在 [Peer] 中。

服務端配置文件添加用戶

以下步驟是動態添加客戶端配置(以下配置前提是你已經配置過 WireGuard 配置文件並啟動了)。

你也可以手動修改配置文件 [/etc/wireguard/wg0.conf],記得修改完重啟一下。以下動態添加無需重啟。

# 重新生成一對客戶端密匙

# cprivatekey1 為客戶端私匙,cpublickey1 為客戶端公匙

wg genkey | tee cprivatekey1 | wg pubkey > cpublickey1

# 伺服器上執行添加客戶端配置代碼(新增一個 [peer]):

# $(cat cpublickey1) 這個是客戶端公匙,10.0.0.3/32 這個是客戶端內網IP地址,按序遞增最後一位(.3),不要重複

wg set wg0 peer $(cat cpublickey1) allowedips 10.0.0.3/32

然後查看 WireGuard 狀態:

wg

# 執行命令後輸出內容如下(僅供參考,下面的不是讓你執行的命令):

interface: wg0

public key: xxxxxxxxxxxxxxxxx #服務端私匙

private key: (hidden)

listening port: 443

peer: xxxxxxxxxxxxxxxxxxxx #舊客戶端賬號的公匙

allowed ips: 10.0.0.2/32 #舊客戶端賬號的內網IP地址

peer: xxxxxxxxxxxxxxxxxxxx #新客戶端賬號的公匙

allowed ips: 10.0.0.3/32 #新客戶端賬號的內網IP地址

# 以上內容僅為輸出示例(僅供參考)

如果顯示正常,那麼我們就保存到配置文件:

wgquick save wg0

然後我們就要開始生成對應的客戶端配置文件了。

生成對應客戶端配置文件

新客戶端配置文件,和其他客戶端賬號的配置文件只有 [Interface] 中的客戶端私匙、內網IP地址參數不一樣。

# 井號開頭的是注釋說明,用該命令執行後會自動過濾注釋文字。

# 下面加粗的這一大段都是一個代碼!請把下面幾行全部複製,然後粘貼到 SSH軟體中執行,不要一行一行執行!

echo “[Interface]

# 客戶端的私匙,對應伺服器配置中的客戶端公匙(自動讀取上面剛剛生成的密匙內容)

PrivateKey = $(cat cprivatekey1)

# 客戶端的內網IP地址(如果上面你添加的內網IP不是 .3 請自行修改)

Address = 10.0.0.3/24

# 解析域名用的DNS

DNS = 8.8.8.8

# 保持默認

MTU = 1420

[Peer]

# 伺服器的公匙,對應伺服器的私匙(自動讀取上面剛剛生成的密匙內容)

PublicKey = $(cat spublickey)

# 伺服器地址和埠,下面的 X.X.X.X 記得更換為你的伺服器公網IP,埠請填寫服務端配置時的監聽埠

Endpoint = X.X.X.X:443

# 因為是客戶端,所以這個設置為全部IP段即可

AllowedIPs = 0.0.0.0/0, ::0/0

# 保持連接,如果客戶端或服務端是 NAT 網路(比如國內大多數家庭寬頻沒有公網IP,都是NAT),那麼就需要添加這個參數定時鏈接服務端(單位:秒),如果你的伺服器和你本地都不是 NAT 網路,那麼建議不使用該參數(設置為0,或客戶端配置文件中刪除這行)

PersistentKeepalive = 25″|sed ‘/^#/d;/^\s*$/d’ > client1.conf

# 上面加粗的這一大段都是一個代碼!請把下面幾行全部複製,然後粘貼到 SSH軟體中執行,不要一行一行執行!

接下來你就可以將這個客戶端配置文件 [/etc/wireguard/client.conf] 通過SFTP、HTTP等方式下載到本地了。

不過我更推薦,SSH中打開顯示配置文件內容並複製出來後,本地設備新建一個文本文件 [xxx.conf] (名稱隨意,後綴名需要是 .conf) 並寫入其中,提供給 WireGuard 客戶端讀取使用。

cat /etc/wireguard/client.conf

服務端配置文件刪除用戶

要刪除呢也很簡單,首先你需要知道你要刪除用戶的客戶端公匙(例如上面剛剛生成的 cpublickey1)。

當然,你也可以手動打開配置文件刪除,記得修改後重啟。下面的動態刪除無需重啟。

wg set wg0 peer $(cat cpublickey1) remove

# 如果客戶端公匙文件還在,那麼可以執行這個命令刪除。

# 注意:該命令執行後,就可以跳過下面這段命令了,直接保存配置文件即可。

——————————————

# 如果客戶端公匙文件已刪除,那麼可以通過 wg 命令看到客戶端的公匙:

wg

# 執行命令後輸出內容如下(僅供參考,下面的不是讓你執行的命令):

interface: wg0

public key: xxxxxxxxxxxxxxxxx #服務端私匙

private key: (hidden)

listening port: 443

peer: xxxxxxxxxxxxxxxxxxxx #客戶端賬號的公匙

allowed ips: 10.0.0.2/32 #客戶端賬號的內網IP地址

peer: xxxxxxxxxxxxxxxxxxxx #客戶端賬號的公匙

allowed ips: 10.0.0.3/32 #客戶端賬號的內網IP地址

# 以上內容僅為輸出示例(僅供參考)

# 複製你要刪除的客戶端賬號的公匙(peer 後面的字元),替換下面命令中的 xxxxxxx 並執行即可

wg set wg0 peer xxxxxxx remove

# 執行後,我們在用 wg 命令查看一下是否刪除成功。

如果刪除成功,那麼我們就保存到配置文件:

wgquick save wg0

其他剩餘其他操作:

# 賦予配置文件夾許可權

chmod 777 R /etc/wireguard

# 打開防火牆轉發功能

echo 1 > /proc/sys/net/ipv4/ip_forward

echo “net.ipv4.ip_forward = 1” >> /etc/sysctl.conf

sysctl p

啟動WireGuard

wgquick up wg0

# 執行命令後,輸出示例如下(僅供參考)

[#] ip link add wg0 type wireguard

[#] wg setconf wg0 /dev/fd/63

[#] ip address add 10.0.0.1/24 dev wg0

[#] ip link set mtu 1420 dev wg0

[#] ip link set wg0 up

[#] resolvconf -a tun.wg0 -m 0 -x

[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# 如果此處沒有報錯:RTNETLINK answers: Operation not supported,且輸入內容差不多,那麼說明啟動成功了!

WireGuard —— Windows/Android 客戶端簡單使用教程

目前 WireGuard 還只有個 Android 版的官方客戶端,而 Windows 和 Android(另一個) 以及 IOS 客戶端都是由第三方(TunSafe)製作(開源)的。至於 Mac 和 Linux 都還沒有可視化的程序,只能命令行方式使用。

因為我只有 Windows 和 Android 設備,所以本教程為:Windows Android 客戶端簡單使用教程。

IOS 官方版客戶端(TestFlight 測試中):https://testflight.apple.com/join/63I19SDT

IOS TunSafe版客戶端(TestFlight 測試中):https://testflight.apple.com/join/9gbYAJLB

 


TunSafe 提供的免費 WireGuard 賬號:https://tunsafe.com/vpn

打開網頁後選擇你想要的伺服器地區,然後點擊綠色的 [Generate and Download] 按鈕下載配置文件,導入客戶端即可,手機客戶端可以掃描二維碼(點擊下載按鈕後顯示)。

下載

下載穩定版安裝包:https://tunsafe.com/downloads/TunSafe-1.4.exe

下載測試版安裝包:https://tunsafe.com/downloads/TunSafe-1.5-rc1.exe

測試版相比穩定版修復了一些問題、新增了一些功能,但是沒有經過大量穩定測試,有興趣可以嘗試下。

隨著時間的變化,以上下載鏈接可能不再是最新版本,所以可能需要去官方下載頁面 下載(第一個或第二個綠色按鈕 Download TunSafe X.X Installer)。


這個客戶端也有綠色版,去上面的官方下載頁面根據你的系統位數選擇下載壓縮包:

  1. TunSafe X.X Standalone Zip for 64-bit systems (x64, Windows 7 or later, 206 kB)
  2. TunSafe X.X Standalone Zip for 32-bit systems (x86, Windows 7 or later, 177 kB)

當然綠色版就需要你手動安裝 TAP 虛擬網卡了:

  1. Standalone TunSafe-TAP Installer 9.21.2 (Windows 7 or later, 178 kB)

 


安裝

下載後,右鍵 [以管理員方式運行] 安裝程序,然後如下圖所示開始安裝:

04t8oze

上圖是使用條款,直接點擊 [I Agree] 按鈕繼續。

下圖是選擇要安裝的程序,客戶端自身 和 TAP虛擬網卡程序,默認全部勾選,點擊 [Next >] 按鈕繼續。

biwrn0vd

下圖,選擇安裝目錄後,點擊 [Install] 按鈕開始安裝。

然後等待安裝完成,安裝過程中可能會因為涉及到安裝虛擬網卡,系統會提示你要安裝設備軟體,記得勾選左下角的 [信任xxx….] ,然後點擊 [安裝] 按鈕。

ed10rbsb-2

 


使用

安裝完成後,會直接啟動軟體,軟體整體如下圖所示。

h9tx8ooa

我們點擊 File – Import File 選項,就會提示你選擇客戶端配置文件(如下多個圖演示)。

當然你也可以點擊 File – Browse in Explorer 選項,會直接打開該VPN客戶端的客戶端配置文件存放目錄,你將你的客戶端配置文件(xx.conf)複製過去就行了。

注意:配置文件名即為VPN客戶端伺服器列表中顯示的名稱,例如 client.conf 顯示為 client ,可以自己修改。

lrxvmpl-3

ompsr1hj

rgt18cei-2

添加完後,我們選擇 client 這個我們剛剛添加的VPN客戶端配置,然後點擊右側的 [Connect] 按鈕(下圖是點擊後的,所以按鈕變成了 [Reconnect] ,即重新鏈接)。[Disconnect] 按鈕代表停止鏈接。

該軟體的托盤菜單中也有 [Connect]、[Reconnect]、[Disconnect] 選項。

點擊右側的 [Edit Config] 按鈕即可編輯當前配置文件。

u1mzmpah

另外,軟體 Options – Service Mode 中的選項分別對應的是:

  1. Don』t Use a Service – 不使用服務
  2. Foreground Mode (Close connection when closing TunSafe) – 前台模式(關閉TunSafe時關閉連接)
  3. Background Mode (Stay connected when closing TunSafe) – 後台模式(關閉TunSafe時保持連接狀態)
  4. Resume Connection when Windows Starts – Windows啟動時自動連接
  5. Minimize to Tray when Windows Starts – Windows啟動時最小化到托盤

 


Android 官方版客戶端

下載安裝

Google Play地址:https://play.google.com/store/apps/details?id=com.wireguard.android

逗比雲地址:https://yun.doubibackup.com/?dir=科學上網/Android/WireGuard


使用方法

打開客戶端後,一片空白,我們點擊右下角的 [+加號藍色] 按鈕,可以看出彈出幾個添加配置的選項,分別是:

  1. 選擇客戶端配置文件
  2. 掃描二維碼
  3. 創建文件

推薦前兩種。

第一種就是將客戶端配置文件傳到手機上,然後選擇配置文件就行了(配置文件名不要包含中文)。

第二種即你去找個生成二維碼圖片的網站,複製你的客戶端配置文件內容去這些網站將其生成為二維碼,然後手機掃描二維碼即可添加成功,添加時會提示你要給該配置文件起個名字。

rgt18cei-3

下圖的 ubuntu14.04 配置選項就是我添加的,點擊配置名稱即可看到配置詳情,而點擊配置名稱右側的 [開關] 選項,即可鏈接該伺服器。

h9tx8ooa-2
lrxvmpl-4

配置不走VPN的應用

我們點擊配置名稱看到配置詳情後,點擊右上角的 [鉛筆] 按鈕,即可修改配置信息,其中有個 [0 EXCLUDED APPLICATIONS] 選項,點擊後就可以 勾選 不走VPN的應用。

u1mzmpah-2

 


Android TunSafe版客戶端

相比官方版客戶端,TunSafe 版只是自帶了30天免費的伺服器賬號(1天1GB),所以你覺得哪個好用就用哪個。


下載安裝

Google Play地址:https://play.google.com/store/apps/details?id=com.tunsafe.app

逗比雲地址:https://yun.doubibackup.com/?dir=科學上網/Android/TunSafe VPN


使用方法

打開客戶端後,可以看到如下界面,我們點擊右上角的 [三點] 按鈕可以看到如下幾個選項,分別是:

  1. 配置文件列表
  2. 配置不走VPN的應用
  3. 客戶端設置

我們點擊第一個選項 [Config Files],進入配置文件列表頁面。

注意:第二個選項,進去後勾選想要不走VPN的應用即可,我就不截圖了。

biwrn0vd-2

我們可以看到這裡和 WireGuard Android官方版客戶端一樣。

我們點擊右下角的 [+加號藍色] 按鈕,可以看出彈出幾個添加配置的選項,分別是:

  1. 選擇客戶端配置文件
  2. 掃描二維碼
  3. 創建文件

推薦前兩種。

第一種就是將客戶端配置文件傳到手機上,然後選擇配置文件就行了(配置文件名不要包含中文)。

第二種即你去找個生成二維碼圖片的網站,複製你的客戶端配置文件內容去這些網站將其生成為二維碼,然後手機掃描二維碼即可添加成功,添加時會提示你要給該配置文件起個名字。

ed10rbsb-3

添加完成後,點擊勾選你要使用的 配置名稱,然後回到該客戶端軟體首頁。

點擊中間的 大紅條 ,即可連接至當前選中的伺服器。

然後 大紅條 就變成 大綠條 了,並且下面的公網IP也變為伺服器IP了。

04t8oze-2
yvewr2xg

設置頁面

最後就是設置頁面了,下圖中的選項分別對應:

  1. 互聯網禁用開關
    當 TunSafe 斷開連接時,禁用所有的互聯網訪問。
  2. TunSafe 啟動時連接
    啟動 TunSafe 時,自動連接上次使用的VPN伺服器。
  3. 開機時自動啟動
    設備開機後,自動連接上次使用的VPN伺服器。
  4. 允許本地網路流量
    不將專用網路(例如192.168.x.x)路由通過VPN隧道。
  5. 顯示Ping延遲
    伺服器列表顯示延遲(表示沒看到)。
  6. 顯示公網IP
    伺服器列表顯示公網IP(表示沒看到)。
  7. 顯示前台通知
    當TunSafe處於活動狀態時,顯示帶有統計信息的通知。

不懂保持默認就行。

ompsr1hj-2

 


客戶端到這裡基本就介紹完了,有什麼需要補充的記得告訴我。

WireGuard —— Windows 客戶端國內外IP分流教程

分流原理很簡單,就是利用 WireGuard 配置文件中的 PreUp、PostDown 參數,這兩個參數分別指的是:啟動時執行的命令,結束時執行的命令

我們只需要收集一下中國IP段,然後做個 .bat 批處理腳本,將腳本位置寫到這兩個參數後面,這樣每次啟動時,都會執行腳本將中國IP段加入系統路由表中,這樣中國IP就會直連,而國外IP則會走VPN,實現了國內外IP分流。

正好,我也發現了一個已經做好了的項目,我們可以直接拿來用,感謝一下項目作者。

Github 項目地址:https://github.com/lmc999/auto-add-routes


使用步驟

下載文件

首先我們要下載所需的文件:

下載地址:https://github.com/lmc999/auto-add-routes/archive/master.zip

下載後我們會得到一個壓縮包:auto-add-routes-master.zip

我們將其解壓到任意目錄,例如我們解壓後得到的路徑為:D:\Program Files\TunSafe\auto-add-routes-master

那麼我們開始修改客戶端配置文件。


修改客戶端配置文件

首先我們選擇你要修改的配置文件名稱,然後點擊右側的 [Edit Config] 按鈕,即可打開配置文件。

或者你也可以點擊菜單欄 File – Browse in Explorer ,這樣就直接打開了客戶端的配置文件存放目錄,自行打開配置文件。

ed10rbsb

然後我們在 [Interface] 欄位中加入以下兩行代碼,注意別加到 [Peer] 中!

  1. PreUp = start “” “D:\Program Files\TunSafe\auto-add-routes-master\routes-up.bat”
  2. PostDown = start “” “D:\Program Files\TunSafe\auto-add-routes-master\routes-down.bat”
  3.  
  4. # 自行修改 D:\Program Files\TunSafe\auto-add-routes-master 為你的文件路徑。

加入位置如下圖所示(僅供參考):

修改並保存後,我們就可以開始啟動客戶端了。

rgt18cei


啟動客戶端

開始鏈接伺服器之前,我們需要勾選 Options – Allow Pre/Post Commands 選項。

這個選項代表:當啟動/停止鏈接VPN時,將會執行配置文件中指定的代碼(即我們剛才添加的)。

如果不勾選這個選項,則代表不會執行命令,所以:

  1. 勾選 Allow Pre/Post Commands 選項:國內外IP分流,國內IP不走VPN
  2. 不勾選 Allow Pre/Post Commands 選項:全局走VPN

1這樣你就可以根據需求,把這個選項當初一個 國內外IP分流/全局 來回切換的選項。

注意:不要在正在連接VPN時取消勾選 Allow Pre/Post Commands 選項,這樣會導致你停止鏈接時,軟體將不會清理系統路由表。

同理:不要在正在連接VPN時勾選 Allow Pre/Post Commands 選項,這樣會導致你停止鏈接時可能會報錯(畢竟沒有路由表讓腳本刪除)。

勾選 Allow Pre/Post Commands 選項並點擊 [Connect] 按鈕開始鏈接VPN後,訪問 http://ip111.cn/ 網頁看看,國內IP顯示的是不是你的本地IP,而國外IP顯示的是不是你的伺服器IP。

lrxvmpl-