V2Ray 使用指南:通往網路自由之路

V2Ray 是一個憤憤不平的產物,是對自由的呼喚。在 2015 年 ShadowsocksGoAgent 等「科學上網」技術的作者被集體約談之後,V2Ray 的發起者決定抗起「科學上網」的大旗,他曾經寫道:

我是只是一名普通的开发人员,已肉翻,本已不依赖这些翻墙工具,但 ShadowSock 和 GoAgent 被迫删除代码的事件实在太恶心,不得不做点什么了。

V2Ray 開發至今,已經非常成熟,並且方便使用,今天主要是講解一下作爲用戶應該如何使用。

首先,列出一些可供各位看官參閱的資料:

目錄

獲取 V2Ray

最新版本的 V2Ray 可以從官方網站尋找,也可以直接在 GitHub 的 Releases 頁面中獲取:

如今很多平臺都有打包好的 V2Ray,我們也可以在這裏直接查看。例如,在「Arch Linux」中,我們可以通過如下命令獲取 V2Ray:

pacman -S v2ray

配置 V2Ray

V2Ray 的配置方法多種多樣,強烈建議各位看官通讀「新 V2Ray 白話文指南」來打造更符合自己需求的配置。筆者建議初學者直接嘗試「新 V2Ray 白話文指南」中的「mKCP 配置」,另外推薦在指南基礎上加入 seed,詳情可以查看 配置文檔KcpObject 的介紹。

其中 UUID 可以使用 這個 網站生成。

使用客戶端

全部 第三方客戶端 請上官網查看,這裡只給大家介紹筆者推薦的客戶端。

Linux

執行 V2Ray

若是通過平臺安裝的 V2Ray 則可以直接查看 使用 systemd 開機自動啟動 V2Ray 的部分。

下載完畢後解壓縮,將 config.json 拷貝到解壓後的目錄,進入解壓後的目錄,運行 v2ray

./v2ray

如果無法運行,右鍵查看 v2ray 的屬性 (Properties) 看看是否設定爲可執行 (Permissions -> Allow executing file as program),勾選完畢後再執行就可以了。或者直接使用如下命令:

chmod +x v2ray

開始運行會提示 V2Ray 在哪個地址的哪個端口運行,例如:

2000/01/01 00:00:00 [Info]TCP|Listener: Listening on 127.0.0.1:1080

那麼代理地址就是 127.0.0.1,端口就是 1080

使用 systemd 開機自動啟動 V2Ray

每次開機自動啟動 V2Ray 可以很大程度上提升用戶體驗,其實現方法有很多,這裡筆者簡單的講述一下通過 systemd 的實現方法(若是通過平臺安裝的 V2Ray 則或許可以忽略對 systemd 的配置)。

首先我們先在路徑 (directory):/lib/systemd/system/ 下建立一個 v2ray.service 文件,例如:

vim /lib/systemd/system/v2ray.service

然後編輯 v2ray.service 文件如下:

[Unit]
Description=V2Ray Service
Documentation=https://www.v2fly.org/
After=network.target nss-lookup.target

[Service]
User=nobody
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
NoNewPrivileges=true
ExecStart=/usr/bin/v2ray -config /etc/v2ray/config.json # you might want to update the config file
Restart=on-failure
RestartPreventExitStatus=23

[Install]
WantedBy=multi-user.target

其中標註的那一行需要進行修改,修改之後就可以保存並退出了(在 vim 中請使用 :wq 保存並退出,更多關於 vim 的知識可以查看筆者寫的 「Vim 學習筆記:與鍵盤最優雅的距離」)。然後,我們需要開啟 v2ray.service(這裡不同的發行版 (distro) 可能存在些許的差別,這裡以「Arch Linux」爲例):

systemctl enable v2ray.service

這樣就大功告成了~如果想要關閉服務可以使用:

systemctl disable v2ray.service

詳細的 systemd 使用方法可以參考「Arch Linux Wiki」的教程:systemd

查看 systemd 服務的 log

如果直接使用 V2Ray,在出現錯誤的時候我們可以直接查看其 log。但是在 systemd 中我們如何查看 v2ray.service 的 log 呢:

journalctl -u v2ray.service

這個方法也適用於查看其它 service 的 log,這樣我們就可以很快的鎖定問題了。

開啟代理

V2Ray 運行後可以開啓系統中的全局代理,以 GNOME 爲例:

Settings -> Network -> Network Proxy -> Manual

Environment variables

除此之外還可以設置「Environment variables」例如(請自行替換帶有 <> 的內容,爲保證設置永久有效請將修改完的內容添加在 ~/.bashrc 中):

proxy=<http://ProxyServerAddress:Port/>

export all_proxy=$proxy
export ALL_PROXY=$proxy

export http_proxy=$proxy
export https_proxy=$proxy
export ftp_proxy=$proxy
export rsync_proxy=$proxy
export HTTP_PROXY=$proxy
export HTTPS_PROXY=$proxy
export FTP_PROXY=$proxy
export RSYNC_PROXY=$proxy

export no_proxy="localhost,127.0.0.0/8,::1,<LocalAddress>,<LocalDomain>"
讓 sudo 也得到代理

如果我們想讓 sudo 也得到代理可以在 /etc/sudoers.d/05_proxy 中添加如下內容(出自 這篇文章):

Defaults env_keep += "*_proxy *_PROXY"

除此之外還有很多我們可以斟酌的設置,強烈建議閱讀 這篇「Arch Wiki」

開啓系統全局代理以後,我們依然需要將瀏覽器的代理功能開啟。

Firefox

在 Firefox 中:

menu -> Preferences -> Advanced -> Network -> Setting -> Manual proxy configuration

在 SOCKS Host 中填寫之前記住的代理地址,在 Port 中填寫之前記住的端口

Chromium

Chromium 中的代理功能比較簡單,是直接跟隨系統全局代理的:

menu -> Settings -> Show advanced settings... -> Network -> Change proxy settings...

通常情況下會直接彈出系統的代理設置,如果沒有彈出的話自己打開系統設置或者按照命令行指示進行就可以了

Android

以下爲項目地址,也可以直接從 Play Store 獲取:

以上軟體的配置方法也是一個道理,將配置文件 config.json 導入到手機中就可以使用了。

總結

V2Ray 不是一個簡單的軟體,但它完成了它該擁有的使命,很多時候不是我們想要複雜而是時代或者社會在驅使着我們變得複雜,希望諸位引以爲戒。

不忘初心,方得始終。

敬上