之前用了一陣子的 shadowsocks-rust,一直都是需要時才利用 sslocal -v --config CONFIG.json 這樣的方式開 VPN 連線,android 手機則繼續使用 outline 客戶端,相安無事好一陣子。但有次手機端的 outline app 更新後出問題,不知怎的就是連不上公司 VPN,公司找了一個替代方案 v2RayTun,試了之後覺得比原本的 outline 體驗好很多(原本 outline 連接比較慢,也偶有連不上的問題),查詢後發現原來 v2ray 是一個開源專案 Project V 下的其中一個工具,Project V 目標是建立一個平臺,讓大家更好更快的科學上網。
分享一下我的安裝及設定方式
安裝 v2ray
yay -Ss v2ray
或者直接從 Releases 下載 v2ray 安裝包,安裝後會有兩個指令 v2ray 和 v2ctl,用來啟動和管理 v2ray。
設定 v2ray
vim /etc/v2ray/config.json
主要的設定都放在這個 json,它其實可以吃 json5 格式,所以註解不需要砍掉
{
"log": {
"loglevel": "warning"
},
"dns": {
"servers": [
"8.8.8.8"
]
},
// 流量入口
"inbounds": [
{
"listen": "172.17.0.1",
"port": 9050,
"protocol": "http",
"tag": "http-in"
}
],
// 流量出口
"outbounds": [
{
"protocol": "shadowsocks",
"tag": "ss-out",
"settings": {
"servers": [
{
"address": "YOUR_SERVER_ADDRESS",
"port": YOUR_SERVER_PORT,
"method": "YOUR_METHOD", // 例如: "chacha20"
"password": "YOUR_PASSWORD"
}
]
},
"streamSettings": {
"network": "tcp",
"sockopt": {
"tcpFastOpen": false
}
}
}
],
// 路由設定 (可選)
// V2Ray 預設會將所有 'inbounds' 的流量轉發到 'outbounds' 列表中的第一個
// 在這個設定中,'http-in' 的流量會自動流向 'ss-out',所以 'routing' 區塊可以省略
"routing": {
"rules": [
{
"type": "field",
"inboundTag": [
"http-in"
],
"outboundTag": "ss-out"
}
]
}
}
啟動 v2ray
有兩種方式啟動 v2ray,一種是在命令列中執行 v2ray 命令,另一種是在 systemd 中啟動 v2ray.service,我目前使用 systemd,但兩種都筆記下來:
# 1. 手動
v2ray run -c /etc/v2ray/config.json
# 2. systemd
sudo systemctl start v2ray # 啟動
sudo systemctl enable v2ray # 開機後自動重啟