本帖最後由 upi 於 2019-10-26 16:12 編輯
小弟好耐冇係HKEPC發帖.
今次突登講吓(AC86U) merlin+v2ray server+ws+tls+cdn, 話說近來用SS經常被GFW封IP, 咁搞唔係辦法, 邊有咁多IP可以轉.
早排SS出咗新v2ray-plugin, 用嚟取代已陣亡的simple-obfs, 小弟研究咗一陣, v2ray-plugin可以用websockets+tls+CDN, 但係就唔覺個plugin有埋nginx/caddy功能, 不過都可以用websocket經CDN轉發, 咁即係v2ray-plugin其實係用v2ray.exe運行websocket+tls
於是試吓將用開的merlin + v2ray server + SS 再增加入steamsetting websocket + tls再接CDN.
用v2ray行SS而唔直接用ss-server, 係因為可以直接將v2ray裝落JFFS, 唔駛用USB手指裝entware咁麻煩.
用tls最麻煩係要搞domain name + cert, 上網爬文都係叫你用USB裝entware + acme 去let's encrypt gen張新cert, 不過既然merlin本身的DDNS已內置let's encrypt有現成的cert, 就直接採用, 最終不用裝entware, 搞咗一輪終於搵到張cert/key收係邊
不過都係搞唔掂SS+WS+TLS, 睇access log係有連入, 但係shadowsock reject冇回應, 唔明解
(update: 爬文後, v2ray內置的SS server係唔識直接讀取ws+tls, 要中間加個隨意門dokodemo轉成TCP先得, 仲要修改iptable先可轉發ws數據去dokodemo出TCP, 咁煩, 都係唔好亂搞)
咁唯有轉用較食ram/cpu的vmess, 網上的V2ray server都係教你玩vmess+websocket+tls+web+cdn, 其實你冇經web(Nginx/Caddy)都可以用到CDN
https://toutyrater.github.io/advanced/wss_and_web.html
廢話小講, 個v2ray server config.json inbound係咁:
"inbound": {
"port": 443,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "uuidxxxxxxxxxxxxxx", //UUID自己去gen
"alterId": 64
}
]
},
"streamSettings": {
"network":"ws", //websocket
"security": "tls", //tls
"wsSettings":{
"path":"/", //(update: path 可以加字節, i.e. /v2ray, 以防GFW白撞)
"headers":{}
},
"tlsSettings": {
"serverName": "mydomain.dyndns.com", //即係你個merlin DDNS
"certificates": [
{
"certificateFile": "/jffs/.le/mydomain.dyndns.com/fullchain.pem",
"keyFile": "/jffs/.le/mydomain.dyndns.com/domain.key"
}
]
}
}
},
唔好照炒, 記得改返個UUID, mydomain.dyndns.com 就改返你個merlin ddns個domain.
最新版merlin, Let's encrypt張cert 改咗係/jffs/.le/ddns個domain/ (以前放係/jffs/ssl /jffs/.cert /etc/ssl, 搬咗幾次)
CDN點玩, 請自行上google睇吓, 我就用cloudfare,
asus merlin 所有DDNS domain都被GFW封咗, 你冇得直接用嚟連VPN, 要去申請另一個domain name (網上大把free domain可以申請), 再用CDN個DNS指過去merlin個domain name度. 如你已有現成domain name, 也可以用cname增加sub-domain指去merlin個domain name, 記得CDN set返proxy咁先可以玩CDN轉發, 咁就唔怕你個merlin IP被封.
Update: 實測, SZ中電信固網 OK, router cpu usage: RTHK radio 1-2%, open webpage (立場) 10-20%, lihkg app 3-5%, iphone play youtube 1-3%, cpu loading 唔係想像中咁勁, ram usage keep 住56%, 輕用量可以接受.
==================================================================
10月26日更新
Asus Merlin Let's encrypt 出現不能renew cert現象, 上網爬文發現始自10月初, 應是let's encrypt停了renewal
咁張cert expired就用唔到, 咁點算?
當你原本張CA signed cert到期後, 自己login asus merlin admin GUI
Advance setting > WAN > DDNS
唔用free cert from Let's encrypt, 改用import/persistent auto-generated
generate new cert = yes
additional cert san = "xxx.dyndns.com" //你router個DDNS domain name
click apply
之後reboot router, 等v2ray去apply張新cert
咁仲未用到CDN
login Cloudflare
domain > SSl/TLS
由full (strict) 改返用 full, (Encrypts end-to-end, using a self signed certificate on the server)
如要直連DDNS, 因為張cert係self-signed, 係shadowrocket server要enable Allow Insecure, 咁先連到,
如經CDN, 因為CDN有CA signed cert, 所以唔駛allow insecure |