V2Ray之TLS+WebSocket+Nginx+CDN翻牆方法
如果你的VPS IP 被牆了,或者你直接連接VPS的速度不理想,可以試試本文介紹的方法。
本文以Cloudflare CDN為例配置,據傳,如果你不是使用 移動寬頻 的用戶,那麼使用 Cloudflare 中轉的速度相對來說是比較慢的,這個是因為線路的問題,無解。如果你使用移動網路的話,那麼 Cloudflare 的中轉節點可能會在香港,速度也許會不錯 (不完全保證)。
體驗了本文介紹的方法,如果速度不理想,可以考慮用國內的CDN替換Cloudflare,據說能體驗飛一般的速度,正好 V2Ray 已經支持 HTTP/2 了,又拍雲、七牛、阿里都不錯,騰訊的 h2 還在內測,百度不清楚。據傳國內CDN中轉法速度提升非常大,也非常穩定,高峰期毫無壓力,在重點 IP 段也無所畏懼。
會用 Cloudflare,其它的 CDN 應該也許也不會有問題。但有一點,如果是為了復活被牆IP,則只能用Cloudflare等國外的CDN。
本文以自建V2ray伺服器簡明教程 為基礎,V2ray基本安裝配置請參照此簡明教程。
本文介紹的方法不太複雜,但對小白來說也不是很容易,如果你懶得折騰,那就用我們提供的免費翻牆軟體吧:
安卓手機翻牆、Chrome一鍵翻牆包、火狐firefox一鍵翻牆包、XX-Net禁聞版
或者也可以購買現成的搬瓦工翻牆服務(跟本庫無關哦,為支持我們,可考慮年付):
本文目錄
註冊一個域名
如果已經註冊有域名了可以跳過。 TLS 需要一個域名,域名有免費的和有付費的,如果你不捨得為一個域名每年花點錢,用個免費域名也可以,但總體來說付費的會優於免費的,我看到有網友因為用了免費域名,結果出現域名解析故障而翻牆失敗。所以,還是推薦買個便宜點的域名。關於域名註冊商,推薦namesilo ,這家域名商有不少便宜的域名選擇,比如.xyz域名,一年才0.99美元,很便宜,而且可選擇免費域名隱私保護。為了方便,在本文中我就忽略如何註冊購買域名了。關於如何獲取域名,具體可搜索相關文章教程。
註冊好域名之後務必記得添加一個 A 記錄指向你的 VPS!
另外,為了避免主域名被封鎖,推薦先使用子域名,但本文以主域名為例!
以下假設註冊的域名為 mydomain.me,請將之替換成自己的域名。
域名添加到Cloudflare
確保在Cloudflare DNS 設置處啟用CDN,就是Proxy Status 那一列,那個金黃金黃的雲彩圖標要點亮,A記錄指向你的VPS IP地址。
另外,在 Cloudflare 的 SSL/TLS 設置中啟用 Flexible 模式,並關掉 TLS 1.3 。
大概這樣就可以了。等待一會兒,ping 域名試試看,如果ping 出的ip變成了 Cloudflare ip,那麼我們已經成功給我們的域名套上了Cloudflare CDN。
證書生成
我們採用最簡略的配置,VPS端無需自己生成證書,直接使用Cloudflare CDN 自動生成的證書。所以這一步你需要做的就是 do nothing. 這樣配置不但超簡易,而且配合Cloudflare SSL/TLS 的 Flexible 模式,比Full模式速度更快。
VPS 安裝配置Nginx
apt=get updateapt-get -y install nginx
然後替換/etc/nginx.conf為如下配置,此配置文件是通用配置,不管什麼域名都可以使用,直接下載覆蓋即可:
wget https://raw.githubusercontent.com/bannedbook/fanqiang/master/v2ss/server-cfg/nginx.conf -O -> /etc/nginx/nginx.conf
下面是nginx.conf的內容,為方便大家,製作了這個nginx通用配置文件並上傳到github,大家可以直接使用上面的命令下載覆蓋即可。
user www-data;worker_processes auto;pid /run/nginx.pid;include /etc/nginx/modules-enabled/*.conf;worker_rlimit_nofile 655350;events { use epoll; worker_connections 65536;}http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE ssl_prefer_server_ciphers on; access_log /var/log/nginx-access.log; error_log /var/log/nginx-error.log; gzip on; server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } location /bannedbook { # 与 V2Ray 配置中的 path 保持一致 proxy_redirect off; proxy_pass http://127.0.0.1:10000; #假设WebSocket监听在环回地址的10000端口上 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; # Show realip in v2ray access.log proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }}
然後,測試nginx配置: nginx -t
重新載入配置: nginx -s reload
配置 V2Ray
伺服器配置
V2Ray{ "log": { "loglevel": "warning", "access": "/dev/null", "error": "/dev/null" }, "inbounds": [{ "listen":"127.0.0.1", "port": 10000, "protocol": "vmess", "settings": { "clients": [ { "id": "de20d937-ca8f-af14-ea07-20b45447d371", "level": 1, "alterId": 64 } ] }, "streamSettings": { "network": "ws", "wsSettings": { "path": "/bannedbook" } } }], "outbounds": [ { "protocol": "freedom", "settings": {}, "tag": "allowed" }, { "protocol": "blackhole", "settings": {}, "tag": "blocked" } ], "routing": { "rules": [ { "type": "field", "ip": [ "geoip:private" ], "outboundTag": "blocked" } ] }}
修改配置後記得測試配置:/usr/bin/v2ray/v2ray -test -config /etc/v2ray/config.json
重啟v2ray: service v2ray restart
相關教程
- 自建V2ray伺服器簡明教程
- 自建V2Ray+TLS翻牆配置方法
- V2Ray之TLS+WebSocket翻牆方法
- Brook之TLS+WebSocket+CDN翻牆教程
- Brook之TLS+WebSocket+Web伺服器翻牆教程
- Brook之TLS+WebSocket翻牆教程
- 自建Shadowsocks伺服器簡明教程
- SSH連接VPS教程
- V2ray官方一鍵安裝腳本
- Windows版V2ray客戶端安裝配置指南.md
- 使用FileZilla和VPS傳輸文件教程
- 最簡單的Google BBR 一鍵加速VPS教程
- 翻牆VPS推薦:搬瓦工VPS購買教程
- 購買Vultr VPS圖文教程.md
V2Ray客戶端配置
{ "inbounds": [ { "port": 1080, "listen": "127.0.0.1", "protocol": "socks", "sniffing": { "enabled": true, "destOverride": ["http", "tls"] }, "settings": { "auth": "noauth", "udp": false } } ], "outbounds": [ { "protocol": "vmess", "settings": { "vnext": [ { "address": "mydomain.me", "port": 443, "users": [ { "id": "de20d937-ca8f-af14-ea07-20b45447d371", "alterId": 64 } ] } ] }, "streamSettings": { "network": "ws", "security": "tls", "wsSettings": { "path": "/bannedbook" } } } ]}
網站
V2ray偽裝這一步不是必須,只是為了隱藏和偽裝的更好。說是偽裝,其實我們安裝了nginx web伺服器,也就是已經安裝了一個真正的網站,試試用瀏覽器打開你的域名,會看到nginx的默認首頁。為了隱藏和偽裝的更逼真,你可以考慮弄一些英文網頁放到vps 的/var/www/html目錄下,當然,必須包括一個index.html , 這樣會使你的網站看起來更象一個真實的網站。
真實網站+加裝v2ray
更往前想一步,如果你已經有一個真正的網站,而網站域名沒有被牆,那麼完全可以利用本文介紹的方法,在原有的真實網站基礎上,開闢一個path,加裝V2ray用來翻牆。這就是完全以真實網站為掩護來翻牆了。
安卓翻牆-禁聞瀏覽器、Windows翻牆:ChromeGo
AD:搬瓦工官方翻牆服務Just My Socks,不怕被牆