自建最強科學上網:v2ray + websocket + web + nginx (EasyEngine)

真相網2019.6.1】美博編註:

因V2Ray官方安裝腳本等程序改變,本教程已經失效,自建V2Ray代理新教程,請參考:

自建最強科學上網2+:V2Ray + Caddy + Tls + WebSocket - 美博園

自建最強科學上網5+:V2Ray + Caddy + Tls + HTTP/2 - 美博園

-------------------------------------

v2ray的誕生正應驗了古訓「魔高一尺,道高一丈」。在GFW封鎖網路升級後,翻牆愛國網友也遇到了一些問題:VPN使用艱難,而且很多VPN的背後並非國外的安全來源,安全無從保障;前幾年為網友廣泛喜愛的SS(Shadowsocks)的開發者被喝茶、SSR(ShadowsocksR,SS的修改增強版)也因故停止開發。至今,v2ray的新方法成為翻牆網友的新寵,而且逐漸得到了完善,v2ray作為創新的翻牆方法,利用其核心技術可以變換出多種翻牆應用,目前結合 v2ray + websocket + web + nginx (EasyEngine)的翻牆愛國方式,成為最強的科學上網工具,美博園翻牆網本文詳細介紹給網友。

很多人剛上手 v2ray 的時候,因v2ray 複雜的配置文件無所適從,即使是感覺步驟都完成了,卻還是無法代理上網。不過,隨著大家廣泛的使用, v2ray 的多種建立代理方式都日漸成熟,配置越來越簡化,懂一點點基本伺服器知識的網友只要複製代碼指令就可完成自建代理全程,基本上按照詳細教程的步驟走,就能夠建立一個屬於自己和/或朋友們的安全代理。

起初可能不熟悉,步驟多一點,可能會花上一天時間,但熟悉之後,重建、新建代理也就是複製命令、不到一小時就可搞定的活,得到的卻是安全上網、可以體會到一勞永逸的欣慰,值得大家一試。

請注意:本文介紹的方法只是v2ray應用的多種科學上網方法之一。也歡迎網友完善補充。

V2Ray專題全部文章請參看:v2ray - 美博園

一、v2ray是什麼

V2Ray 是在 Shadowsocks 作者被請喝茶之後出現的一個開源項目,V2Ray是早期的叫法,後來 V2Ray 規模越來越大,就成立一個 Project V 項目。

美博園翻牆網這裡重點介紹建立代理的具體步驟,原理不詳細介紹,要了解原理的網友,請參考v2ray官方的詳細介紹。

v2ray.Project V GitHub項目官方: https://github.com/v2ray

v2ray.Project V 官方網站:https://www.v2ray.com/

二、v2ray特點

1、把v2ray代理流量偽裝成https,代理上網就是在訪問一個https網站;
2、V2Ray 定位是一個平台,開源,任何開發者都可以在這個平台上利用V2Ray開發出一個新的代理軟體;
3、V2Ray 的功能非常強大,
4、V2Ray提供自己原創的翻牆協議VMess,一般認為比Shadowsocks 更安全,一般聲稱支持V2Ray,就是指支持 VMess協議
V2Ray也支持其他協議:
傳統的代理協議:HTTP 和 SOCKS。
MTProto:Telegram 的開發團隊製作的一款協議,作為 Telegram 的專用代理協議。
Shadowsocks協議,但不支持 ShadowsocksR;

三、自建 v2ray + websocket + web + nginx (EasyEngine) 的條件

1)一台 VPS 主機
2)一個網域
3)SSH連接工具:以前用putty較多,現在用xshell很方便,本文會以這個進行說明。

四、建立代理

建立步驟大致分為三個大的部分:

1、v2ray 伺服器端安裝及配置
2、nginx (EasyEngine)安裝及配置
3、v2ray 客戶端使用

美博園本文並沒有區分這三大部分,而是按照每一個操作過程順序來寫出具體操作步驟,請網友自建代理時,按照下面編號順序一步一步往下走:

01、基本條件之一:購買VPS並安裝系統

請見教程:
自己搭建代理伺服器:VPS的選擇
自己搭建代理伺服器:Vultr VPS 購買圖文教程
自己搭建代理伺服器:Vultr VPS 系統安裝圖文教程

請記住VPS安裝系統後得到的: ip地址 密碼 用戶名(默認是root),後面會用到。

本文以系統 Ubuntu 18.04為例說明。

02、基本條件之二:購買網域及設置與ip伺服器關聯

請參考教程:
自己搭建代理伺服器:網域購買及設置與ip伺服器關聯

利用v2ray建立代理,並非一定需要網域,不要網域也可以建立代理。
但是,整合有網域的代理技術,可明顯提高代理安全性,把代理行為偽裝成,是實質的非虛擬,訪問https網頁,顯然多一個網域整合進來是值得的。

美博園翻牆網本文介紹的是整合網域的方法。

03、用SSH工具——XShell 連接VPS伺服器

在自家電腦上通過安全的SSH連接到遠端的VPS伺服器,就可以發出各種指令來安裝、建立代理伺服器,在電腦上安裝XShell軟體來實現SSH連接非常方便,美博園推薦這個工具。

請參考:SSH連接軟體-Xshell下載及使用教程

以下進入安裝自建代理的部分,各種指令按照本教程做就行。

04、更新系統

執行以下指令:

dpkg-reconfigure tzdata && apt update && apt -y dist-upgrade && apt -y autoremove && reboot

然後回車

彈出窗口

自建最強科學上網:v2ray + websocket + web + nginx (EasyEngine)

在出現的窗口中,這裡需首先選擇時區:

用鍵盤上下鍵,選擇:
–> Asia,回車
再選擇
–> Hong Kong 回車
就可以,之後就會下載更新並自動重啟。

自建最強科學上網:v2ray + websocket + web + nginx (EasyEngine)

自建最強科學上網:v2ray + websocket + web + nginx (EasyEngine)

安裝過程中,
在命令框中可看到不斷的數據變化
最下方有進度顯示,至100%才完成,耐心等待約數分鐘才能完成。

此結束時,系統自動重新啟動,SSH將斷開,需要重新連接SSH。

05、時間校準

美博園先說明:一般來說,如果你的電腦、VPS伺服器本身是自動調準時間的,時間一般是準確的,這一步並非需要調整。

據v2ray官方介紹:對於 V2Ray,它的驗証方式包含時間,就算是配置沒有任何問題,如果時間不正確,也無法連接 V2Ray 伺服器的,伺服器會認為你這是不合法的請求。所以系統時間一定要正確,只要保證時間誤差在90秒之內就沒問題。

對於 VPS(Linux) 可以執行命令 date -R 查看時間:

date -R

會顯示出,如:

Sun, 22 Jan 2017 10:10:36 -0500

顯示的結果中的 -0500 代表的是時區為西 5 區,如果轉換成東 8 區時間則為 2017-01-22 23:10:36。

如果時間不準確,可以使用 date --set 修改時間:

sudo date --set="2017-01-22 16:16:23"

會顯示出,如:

Sun 22 Jan 16:16:23 GMT 2017

對 VPS 的時間校準之後,自己的個人電腦時間也要調準,電腦時間調準這裡不再贅述,網上方法很多。

無論是 VPS 還是個人電腦,時區是什麼無所謂,因為 V2Ray 會自動轉換時區,但是時間一定要準確。

06、環境要求-安裝curl

要求系統中裝有curl,建議提前在此安裝,安裝命令:

# Debian/Ubuntu系統輸入如下命令:

apt-get update -y && apt-get install curl -y

# CentOS系統輸入如下命令:

yum update -y && yum install curl -y

07、安裝 unzip 和 daemon

安裝 V2Ray 時需要用到 unzip 和 daemon,需首先執行如下命令:

apt install unzip daemon

安裝完成顯示:

Processing triggers for man-db (2.7.5-1) ...
Processing triggers for mime-support (3.59ubuntu1) ...
Setting up daemon (0.6.4-1) ...
Setting up unzip (6.0-20ubuntu1) ...
root@vultr:~#

08、安裝 官方版 V2Ray

美博園(allinfa.com)特別提醒:

網上有一些安裝v2ray的一鍵安裝包,美博園翻牆網在此鄭重提醒網友:最好是直接安裝官方版v2ray,就是美博園本文用到的,其實就是一條命令,並不複雜。有些一鍵安裝包只會省略很少的步驟,但安裝包裡面卻有一些特別的設置,對網友並非都適用,切記!

安裝 官方版 V2Ray 執行命令:

bash <(curl -L -s https://install.direct/go.sh)

這樣一條命令就會完成安裝 V2Ray.
執行很快

此腳本會自動安裝以下文件:
    /usr/bin/v2ray/v2ray:V2Ray 程序;
    /usr/bin/v2ray/v2ctl:V2Ray 工具;
    /etc/v2ray/config.json:配置文件;
    /usr/bin/v2ray/geoip.dat:IP 數據文件
    /usr/bin/v2ray/geosite.dat:網域數據文件 此腳本會配置自動運行腳本。自動運行腳本會在系統重啟之後,自動運行 V2Ray。目前自動運行腳本只支持帶有 Systemd 的系統,以及 Debian / Ubuntu 全系列。

運行腳本位於系統的以下位置:
    /etc/systemd/system/v2ray.service: Systemd
    /etc/init.d/v2ray: SysV

執行完成末端會顯示有:

  PORT:12345 (這裡只是示意,非真實連線埠數據)
UUID:ewer735c-e888-40cc-8ded-1fe74d715c75  (這裡只是示意,非真實ID數據)
Created symlink /etc/systemd/system/multi-user.target.wants/v2ray.service → /etc/systemd/system/v2ray.service.
V2Ray v4.18.0 is installed.
root@vultr:~#

請留意:

這裡可以看到 Port 和 UUID, UUID 相當於 V2Ray 的密碼,
請將 Port 和 UUID 這二項資料複製保存記錄下來,後面要用到。

09、啟動v2ray

雖然已經安裝了 V2Ray,但並沒有啟動,

現在啟動v2ray,輸入命令:

service v2ray start

//查看v2ray狀態,輸入命令:

service v2ray status

如看到如下綠色字 active (running),表明 v2ray已經啟動:

Active:   active (running) since Sun 2019-04-28 08:53:48 HKT; 39s ago

10、 安裝 EasyEngine

V2ray需用到 NGINX,NGINX是什麼,大多數網友不需要了解,知道用下面命令安裝即可,若需要詳細了解的網友可自行網上查詢。

美博園翻牆網這裡推薦安裝 EasyEngine 來架前端,它相當好用,因它內置了 NGINX 和 Let』s Encrypt,省去我們一些安裝步驟,而且,EasyEngine可在 Let』s Encrypt的 SSL加密證書三個月期滿後自動續約,相當方便。

一鍵命令安裝EasyEngine

wget -qO ee rt.cx/ee && sudo bash ee

完成需約2、3分鐘

中途會詢問你的 名字 和 email

請自己隨意輸入

提示:輸入名字

EasyEngine (ee) will NEVER send your information across
Enter your name:

如:abcd   (請改為自己想輸入的名字,只是標示,可隨意)
回車

接著,提示輸入 mail

Enter your name: abcd
Enter your email:
(輸入mail,如:)
abc123@gmail.com    (請改為自己的mail,也沒有看到實際用途,可隨意)
回車

繼續快速安裝,幾十秒完成
完成安裝可見:

For EasyEngine (ee) auto completion, run the following command
source /etc/bash_completion.d/ee_auto.rc
EasyEngine (ee) installed/updated successfully
EasyEngine (ee) help: https://docs.rtcamp.com/easyengine/
root@vultr:~#

11、 應用bash自動完成功能

安裝完成後,需要為EasyEngine ee命令應用bash自動完成功能,令設定更加順利。
運行以下命令:

source /etc/bash_completion.d/ee_auto.rc

12、安裝 Let』s Encrypt 的SSL證書

Let』s Encrypt 提供免費的 SSL證書,為大家使用ssl加密(即:https)提供了方便,每3個月需要重新申請一次,但本文方法安裝在EasyEngine中,到期會自動續約。

在安裝EasyEngine後,可以很方便安裝Let』s Encrypt 的SSL證書,一個命令解決問題。

先請大家留意,如下命令中的網域 abc.com(本文示意),需要換成你自己申請的 網域domain!

輸入命令:

ee site create abc.com --html --letsencrypt

回車

大概幾分鐘後,會提示:

root@vultr:~# ee site create abc.com --html --letsencrypt
Adding repository for NGINX, please wait...
Updating apt-cache, please wait...
Fixing missing GPG keys, please wait...
Installing packages, please wait...
Reload : nginx     [OK]
Running pre-update checks, please wait...
Setting up NGINX configuration 	[Done]
Setting up webroot 		[Done]
Reload : nginx     [OK]
HTTP Auth User Name: easyengine
HTTP Auth Password : bHJJEG
Successfully created site https://abc.com
Letsencrypt is currently in beta phase. 
Do you wish to enable SSl now for abc.com?
Type "y" to continue [n]:

詢問是否繼續

輸入 y
回車

約幾分鐘完成,

可見:

Do you wish to enable SSl now for abc.com?
Type "y" to continue [n]:y
Downloading LetsEncrypt          [Done]
Please Wait while we fetch SSL Certificate for your site.
It may take time depending upon network.
Let's Encrypt successfully setup for your site
Your certificate and chain have been saved at /etc/letsencrypt/live/abc.com/fullchain.pem
Configuring Nginx SSL configuration
Adding /var/www/abc.com/conf/nginx/ssl.conf
Adding /etc/nginx/conf.d/force-ssl-abc.com.conf
Added HTTPS Force Redirection for Site  https://abc.com
Creating Cron Job for cert auto-renewal
Reload : nginx     [OK]
Congratulations! Successfully Configured SSl for Site  https://abc.com
Your cert will expire within 89 days.
root@vultr:~#

說明安裝ssl成功,ssl證書已經安裝到你的網域 abc.com上了,89天後過期。

12、將 v2ray 加入 nginx

其實就是在網域domain中建立一個路徑。按照下面幾步輸入命令:

12-1)進入 nginx 的 conf(整合文件)

同樣需注意,下面命令中的網域abc.com,要改為你的網域domain
輸入:

cd /var/www/abc.com/conf/nginx

回車

12-2)之後輸入下面指令編輯NGINX配置文件:v2ray.conf

輸入命令:

nano v2ray.conf

12-3)在窗口中,將下列內容貼上去:

請注意下列要貼上去的內容中,有二個地方要先修改為你自己的內容:

a)將 vv22 改為你自己的路徑,可改為任意數字字母
b)12345這個連線埠號,改為你前面第08步記下的port

美博園(allinfa.com)提示: 複製、修改下面代碼時特別注意不要增減空格或任何標點符號等。

再次提示:下面代碼中,
這個路徑 /vv22 的斜杠後沒有空格;127.0.0.1:12345這些數字間都沒有空格!

--- 請複製以下代碼,不包括本行 ---

location /vv22 {
proxy_redirect off;
proxy_pass https://127.0.0.1:12345;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}

--- 複製代碼結束,不包括本行 ---

退出nano編輯狀態

輸入上述修改後的內容後,退出nano編輯狀態

按 Ctrl+X
它會問你會否儲存檔案,按下 y 後,
再按多一次 Enter 鍵就可以了。

返回根目錄

注意,上述退出nano編輯後,並不在根目錄,而是在:root@vultr:/var/www/abc.com/conf/nginx#
需要退回到根目錄後再輸入後續命令。

在root@vultr:/var/www/abc.com/conf/nginx# 後面
輸入

cd

回車
就可退回到根目錄

13、建立一個 html網頁文件

給網域建立一個網頁文件,請輸入如下命令,

請注意:務必先將下面命令中的網域 abc.com(本文示意)改為你自己的網域

cp /var/www/html/index.nginx-debian.html /var/www/abc.com/htdocs/index.html && chown www-data: /var/www/abc.com/htdocs/index.html

14、重新啟動 NGINX

輸入命令

service nginx restart

回車

查看nginx啟動狀態

輸入命令:

service nginx status

顯示有綠色的 active (running),表明nginx正在運行。

15、設定 V2ray伺服器端

V2ray 伺服器端所有設定都在 /etc/v2ray/config.json,所以修改這個文件就可以了。

15-1)首先備份原本的 V2ray 伺服器端 配置文件 config.json

輸入命令:

cp /etc/v2ray/config.json /etc/v2ray/config.json.bak

15-2)然後,刪除原本的config.json文件

因上一步已經備份了原本的config.json文件,可以將原本刪除了。

輸入命令:

rm /etc/v2ray/config.json && nano /etc/v2ray/config.json

15-3)編輯 V2ray 伺服器端 配置文件 config.json

還記得前面第08步叫大家記下 port 和 UUID 嗎? 這裡就會用到了。

---
如果忘記的話,可以輸入以下指令:

cat /etc/v2ray/config.json.bak

就可看到原本的 UUID 和 port
---

將下列內容複製到窗口中

美博園(allinfa.com)提示:

※ 請務必不要動代碼中的任何標點符號、包括不要增減空格等等;

再次提示:這個伺服器端的代碼中,最容易出錯的是自己填入的幾個數據如連線埠、ID、路徑等,在『複製』時無意中『增加了空格』,如ID那一行:

本來是 "id": "ewer735c-e888-40cc-8ded-1fe74d715c75", 即:雙引號中的字元間全部沒有空格;

但在複製時系統可能會在引號前、後或ID那串字元間增加半形空格,不易發現,變成這樣,如:

"id": " 這裡多一個空格ewer735c-e888-40cc-8ded-1fe74d715c75", 這就會出錯。

※ 請務必替換下面3項內容:

1)"port":12345,    將12345換成第08步自己的連線埠號
2)"id": "ewer735c-e888-40cc-8ded-1fe74d715c75",   請更換為第08步自己的UUID
3)"path": "/vv22"    請將vv22更換為第12-3步中自己的路徑

再次提示:這個路徑 "/vv22" 的引號前、引號後、斜杠前、斜杠後,都沒有空格,即:

"/vv22" 這是對的,字元間全部沒有空格;

這些有空格的都會出錯:" /vv22" "/ vv22" "/vv22 " " / vv22" 等

========= 複製下面的內容,不包括本行 ===========

{
    "log": {
            "access": "/var/log/v2ray/access.log",
            "error": "/var/log/v2ray/error.log",
            "loglevel": "warning"
    },
    "inbound": {
            "port": 12345,
            "protocol": "vmess",
            "settings": {
                    "clients": [{
                            "id": "ewer735c-e888-40cc-8ded-1fe74d715c75",
                            "level": 1,
                            "alterId": 64,
                            "security": "auto"
                    }]
            },
            "streamSettings":{
                    "network":"ws",
                    "security": "auto",
                    "wsSettings":{
                            "path": "/vv22"
                            }
                    }
    },
    "outbound": {
            "protocol": "freedom",
            "settings": {}
    },
	"outboundDetour": [
        {
            "protocol": "blackhole",
            "settings": {},
            "tag": "blocked"
        }
    ],
    "routing": {
        "strategy": "rules",
        "settings": {
            "rules": [
                {
                    "type": "field",
                    "ip": [
                        "0.0.0.0/8",
                        "10.0.0.0/8",
                        "100.64.0.0/10",
                        "127.0.0.0/8",
                        "169.254.0.0/16",
                        "172.16.0.0/12",
                        "192.0.0.0/24",
                        "192.0.2.0/24",
                        "192.168.0.0/16",
                        "198.18.0.0/15",
                        "198.51.100.0/24",
                        "203.0.113.0/24",
                        "::1/128",
                        "fc00::/7",
                        "fe80::/10"
                    ],
                    "outboundTag": "blocked"
                }
            ]
        }
    }
}

========= 複製到此結束,不包含本行 ==============

15-4、保存修改:

貼上上述代碼後,不用回車
按Ctrl+X
來退出 nano編輯

它會問你是否儲存檔案,按下 y
再按 Enter 鍵就可以了。

17、重新啟用v2ray

輸入命令:

service v2ray restart

檢查一下啟動狀態,輸入命令:

service v2ray status

如看到 綠色字 active (running),表明 v2ray已經啟動。

18、重新 reload sysctl

輸入

sysctl -p

回車

=================
至此,本教程v2ray代理已經安裝完成可以使用了。 大功告成!
=================

19、高級用法:開啟防火牆-連線埠設置

我們只是用於翻牆,需要打開這幾個連線埠 port: 22, 80, 443,和你自己的連線埠(本教程例舉為12345),用下面的代碼打開這幾個 port。

依次輸入以下指令:

ufw allow 22

回車

ufw allow 80

回車

ufw allow 443

回車

再次提醒下面命令的12345改為自己『08、安裝 官方版 V2Ray』產生的連線埠

ufw allow  12345

回車

再輸入命令啟用防火牆

ufw enable

回車

會提問:

root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?

問是否真的啟用防火牆 enable firewall,並警告如果設定不當會斷線。因我們已經啟用 allow port 22 ,所以沒有問題,

按下 y
回車

就可以了。

20、高級用法:linux系統設定微調

參考:Linux TCP 性能調優筆記 · Siege

目的是改善丟包,使得連線速度更好一些

20-1)首先備份原本設定

cp /etc/sysctl.conf /etc/sysctl.conf.bak

20-2)刪除原本文件

rm /etc/sysctl.conf && nano /etc/sysctl.conf

20-3)複製下面新設定文件內容

========== 複製 下面內容 開始 start,不包含本行 ===========

#
# /etc/sysctl.conf - Configuration file for setting system variables
# See /etc/sysctl.d/ for additional system variables.
# See sysctl.conf (5) for information.
#

### 改善記情體管理 ###

#提高整個系統的文件限制
fs.file-max = 2097152
fs.inotify.max_user_watches=524288

# 減少使用緩存
vm.swappiness = 10
vm.vfs_cache_pressure=50
vm.dirty_ratio = 60
vm.dirty_background_ratio = 2

### 一般資訊安全設置 ###

#表示開啟SYN Cookies。當出現SYN等待隊列溢出時,使用cookies來處理,可防範少量SYN攻擊,默認為0,表示關閉;
net.ipv4.tcp_syncookies = 1

# Number of times SYNACKs for passive TCP connection.
net.ipv4.tcp_synack_retries = 2

#表示用於向外連接的連線埠範圍。預設情況下很小
net.ipv4.ip_local_port_range = 2000 65535

# Protect Against TCP Time-Wait
net.ipv4.tcp_rfc1337 = 1

# 減少 tcp_fin_timeout 等待時間
net.ipv4.tcp_fin_timeout = 15

# 表示當keepalive起用的時候,TCP發送keepalive消息的頻度。
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 15

### TUNING NETWORK PERFORMANCE ###

# 預設 socket 緩存
net.core.rmem_default = 31457280
net.core.wmem_default = 31457280

#增加 TCP 緩存上限
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864

# 增加接收的連接
net.core.somaxconn = 65535

# 當網路卡接收的 packets 快過 kernel 能處理的時候,增加連線進來的 backlog queue 能令 kernal 有更多時間處理
net.core.netdev_max_backlog = 250000

# Increase the maximum amount of option memory buffers
net.core.optmem_max = 25165824

#表示SYN隊列的長度,默認為1024,加大隊列長度?8192,可以容納更多等待連接的網路連接數。
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 1440000

# Increase the maximum amount of option memory buffers
net.core.optmem_max = 25165824

#增加 Linux 自動調整的 TCP 緩存上限
# This is measured in units of pages (4096 bytes)
net.ipv4.tcp_mem = 65536 131072 262144
net.ipv4.udp_mem = 65536 131072 262144

# Increase the read-buffer space allocatable
net.ipv4.tcp_rmem = 8192 87380 16777216
net.ipv4.udp_rmem_min = 16384

# Increase the write-buffer-space allocatable
net.ipv4.tcp_wmem = 8192 65536 16777216
net.ipv4.udp_wmem_min = 16384

# 表示系統同時保持TIME_WAIT的最大數量,如果超過這個數字,TIME_WAIT將立刻被清除並列印警告信息,可以用來防止簡單的 DOS 攻擊。
net.ipv4.tcp_max_tw_buckets = 1440000

#表示開啟重用。允許將TIME-WAIT sockets重新用於新的TCP連接,默認為0,表示關閉;
net.ipv4.tcp_tw_reuse = 1

#表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0,表示關閉;
#為了對NAT設備更友好,建議設置為0。
#修改TW快速回收的問題以更好的兼容移動設備。
net.ipv4.tcp_tw_recycle = 0

#修改系統默認的 TIMEOUT 時間。
net.ipv4.tcp_fin_timeout = 30

#額外的,對於內核版本新於**3.7.1**的,我們可以開啟tcp_fastopen:
net.ipv4.tcp_fastopen = 3

#recommended for hosts with jumbo frames enabled
net.ipv4.tcp_mtu_probing = 1

#設置TCP擁塞演算法,建議 Linode 用戶選擇 bbr,其他公司可以輸入以下指令(不要 # 號)
# sysctl net.ipv4.tcp_available_congestion_control
# 如果看到 bbr 可以選 bbr,否則建議 htcp
net.ipv4.tcp_congestion_control = bbr

==============複製上面內容 結束,不包含本行 ====================

20-4、退出保存

粘帖上述內容後
按Ctrl+X
退出 nano,

問你會否儲存檔案,按下 y

再按Enter 鍵
就可以。

21、高級用法:開啟BBR加速

google 開源了 TCP BBR 擁塞控制演算法,根據用戶使用體驗的效果來看在 VPS 上開啟了 TCP BBR 後網速最高可達到10幾倍的提升。

關於 Google BBR 擁塞控制演算法目前有兩個版本,一個原版,另一個為魔改版,魔改版 Google BBR 是在原版的基礎上調整了一些參數,加速效果更勝一籌。

美博園(allinfa.com)建議:安裝 Google 原版,不要安裝修改版。

Debian 9 和 ubuntu 18.04 都默認了4.9或以上的內核, 所以不需要更換內核, 可以直接開啟BBR。

查看內核版本
輸入命令:

uname -r

如果是4.9.x或以上可以直接繼續

21-1、修改系統變數
輸入命令:

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf

再輸入:

echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

21-2、保存使其生效
輸入命令:

sysctl -p

21-3、查看內核是否已開啟BBR

輸入命令:

sysctl net.ipv4.tcp_available_congestion_control

顯示如下:

# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno

再輸入命令:

sysctl net.ipv4.tcp_congestion_control

顯示如下:

net.ipv4.tcp_congestion_control = bbr

表明已經開啟BBR加速

21-4、驗証BBR是否已經啟動

輸入命令:

lsmod | grep bbr

顯示如下即啟動成功:

# lsmod | grep bbr
tcp_bbr          20480  14

=== 以上到此,v2ray完成,可以安全使用了,祝賀大家,辛苦了!===

參考:一些在線工具/資源

前面提到了,v2ray為網友搭建了一個平台,網友可以發揮才智創建多種代理用法,本文介紹的只是眾多用法中的一種方式。
以下是一些在線工具/資源,方便網友在進一步使用時自己創新和靈活應用(不分先後順序):

VeekXT V2Ray配置生成(veekxt.com)

https://www.veekxt.com/utils/v2ray_gen
支持 4.x 版本的配置文件生成器

V2Ray 配置生成器(GitHub)

https://github.com/htfy96/v2ray-config-gen
靜態 V2Ray 配置文件生成頁面

UUID Generator(uuidgenerator.net)

https://www.uuidgenerator.net/
VMess User ID 生成工具

vTemplate 項目倉庫(GitHub)

https://github.com/KiriKira/vTemplate
一個 V2Ray 配置文件模板收集倉庫

======== 自建v2ray代理系列文章參考 ============

自己搭建代理伺服器:VPS的選擇 - 美博園
自己搭建代理伺服器:Vultr VPS 購買圖文教程 - 美博園
自己搭建代理伺服器:Vultr VPS 系統安裝圖文教程 - 美博園
自己搭建代理伺服器:檢測ip是否被牆及更換ip - 美博園
自己搭建代理伺服器:網域購買及設置與ip伺服器關聯 - 美博園
SSH連接軟體-Xshell下載及使用教程 - 美博園
自建最強科學上網:v2ray + websocket + web + nginx (EasyEngine) - 美博園
v2ray客戶端代理上網 - Windows、Android、Mac、ios - 美博園
本文鏈接:https://dafahao.com/zh-tw/v2ray-websocket-web-nginx-easyengine.html
本文標題:自建最強科學上網:v2ray + websocket + web + nginx (EasyEngine) - 真相網

這裡是你留言評論的地方


請留言


8 + 4 =
【您可以使用 Ctrl+Enter 快速發送】
Copyright © 2007 - 2026 , Design by 真相網. 本站原創首發均可免費自由轉載. 轉載資料若有著作權問題請留言通知管理員及時處理. 【回到頂部】