Board logo

標題: [教學] R7000裝V2Ray(Vless+tls+tcp+(ws(+nginx)+cdn))+SS+Diversion+Skynet [打印本頁]

作者: bunch    時間: 2021-5-14 02:52     標題: R7000裝V2Ray(Vless+tls+tcp+(ws(+nginx)+cdn))+SS+Diversion+Skynet

本帖最後由 bunch 於 2021-5-14 13:44 編輯

由於冇耐前有巴打問關於升左MERLIN 386之後既野, 手痕同自己部R7000升埋
就順便整埋一份QUICK SETUP NOTE比自己參考(其實主要都係COPY AND PASTE)
主要參考左LIHKGEnterprise
基本上除左DOWNLOAD V2RAY PACKAGE唔同之外, 所有行Merlin嘅機都一樣做法

(Setup Merlin in R7000)
1. Firmware響http://xvtx.ru/xwrt/download.htm,基本動作flash完Hard Reset唔講太多
2. 刷CFE(可跳過), 因為要行AIMESH, 拎ASUS DDNS, LAN TABLE要WORK, 就要改MAC ADDRESS去到ASUS MAC RANGE
而且我HARDWARE NAT行親FA就會拖死HKBN ROUTER, 但要用IP PHONE又唔甩得
ASUS MAC ADDRESS RANGE就自己上網查, 雖然VORTEX份GUIDE話
  1. ETH MAC Address = LAN_MAC_Address (from the bottom of the case)
  2. WL1 MAC Address = ETH MAC Address (Press "=" button)
  3. WL2 MAC Address = ETH MAC Address + 4 (Press "=" button, Then press "+" button four times)
複製代碼
我自己試實際情況係
  1. ETH MAC Address = ASUS_MAC_Address
  2. WL1 MAC Address = ETH MAC Address + 8
  3. WL2 MAC Address = ETH MAC Address + 1
複製代碼
另外由於386.2_4封左唔比行mtd-write
所以刷CFE我係用
  1. dd if=customCFE.bin of=/dev/mtd0
複製代碼
3. Reset Router

(Setup Entware, Skynet, Diversion)
4. 正常SETUP ROUTER, (如果要裝DIVERSION)LAN DHCP唔好派X.X.X.2出街
5. 用SSH入ROUTER
準備一隻手指FORMAT做EXT4, 插落ROUTER
6a. 用fdisk -l 或者 df -k去認出邊一隻係你隻手指(如超過一隻)
6b. (假設係sda1)
  1. mke2fs -t ext4 /dev/sda1
  2. tune2fs -O ^has_journal /dev/sda1
複製代碼
7. amtm->ep, (裝entware)跟住instruction黎裝
8. (amtm menu)->2, (裝Skynet)都係跟住做, 中間會問你SWAP FILE開幾大, 手指夠大就2GB, 手指得果2GB就開1GB, 主要都係避免一直響JFFS寫入寫出
9. (amtm menu)->1, (裝Diversion)都係跟住黎做, 中間叫你入IP就打STEP 4留起左果粒, 自動RESTART

(裝SS)
10. 用SSH入ROUTER
11. opkg update->opkg install shadowsocks-libev-ss-server
12. 由於我自己用開WinSCP黎改FILE, 以下主要都係叫你用WinSCP, 你都可以自己行NANO去寫FILE
以下FILE你可以去https://mega.nz/file/gItQTBhR#AGVLmjPASGpfmxtj8QRxXvNja77PYgHSejznaM5im7s下載, 又或者你喜歡就跟LIHKG自己做一次, 但千其唔好行wget, 佢寫FILE用錯編碼
13. 將admin, isup.sh, ss-init直接掉落/jffs/scripts
14. 打開firewall-start, 加一句(PORT NUMBER自行更改)
  1. iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
複製代碼
15. 打開services-stop, 加一句
  1. /jffs/scripts/ss-init stop
複製代碼
16. 打開services-start(如果裝左Diversion, 會同你改左名做services-start-obsolete, 改返轉頭), 加以下一段
  1. #ss
  2. sleep 60
  3. /jffs/scripts/ss-init stop
  4. /jffs/scripts/ss-init start
  5. cronfile="/jffs/scripts/admin"
  6. dest="/var/spool/cron/crontabs/"
  7. /bin/cp "$cronfile" "$dest"
複製代碼
16B(Necessary if installed Diversion). 響services-start度將RC相關嘅DELETE哂
17. 將admin, isup.sh, ss-init, services-start全部改做755 PERMISSION(即係所有X都揀哂), 又或者你可以行COMMAD
  1. chmod +x admin isup.sh ss-init services-start
複製代碼
18. 去/mnt/sda1/entware/etc開個folder叫shadowsocks,入面開個file叫config.json
Server port同password自己轉
  1. {
  2. "server":"0.0.0.0",
  3. "server_port":8080,
  4. "password":"Your_password_here_need_change",
  5. "local_port":1080,
  6. "timeout":600,
  7. "method":"chacha20-ietf-poly1305",
  8. "fast_open":false,
  9. "workers":1
  10. }
複製代碼
18(Optional). 如果你好似我咁HARDWARE ACCELERATION剩係開得CTF唔行得FA, 就同services-start, services-stop, services-event加
  1. nvram set ctf_fa_cap=0
  2. nvram commit
複製代碼
唔知點解呢部份即使改左CFE, 每次RESTART LAN都會轉成1, 但DL返CFE落黎又真係仲係0黎. 所以暫時每次ACTION都FORCE佢做0
19. REBOOT

(裝V2RAY, 呢度其實先係重點, 上面係方便我返公司果陣用既低耗PROXY)
以下會用比較新既VLESS, 據作者所講, 舊有VMESS響TLS有好多浪費資源既地方, 搞到佢慢過TROJAN之類好多, 亦大食
另外正常如果本身係ASUS ROUTER, 或者有改MAC ADDRESS(印象中VORTEX好似一開波就幫你改左LAN同WIFI1), 你就可以拎ASUS DDNS, 仲順便可以拎埋LETS ENCRYPE CERT, 冇搞過或者唔得嘅就要自己申請個免費DDNS, 再用acme.sh拎CERT
20. 首先去GITHUB拎最新版V2RAY(而家最新係4.39.1)
R7000用既係ARM32_V5, 其他機我唔知, 要自己去查返
21. 解壓後成舊野掉落/jffs
22. 將v2ray同v2ctl轉成755 PERMISSION
23. 打開CONFIG.JSON改成下面咁
留意返8443係我連入V2RAY既PORT, 10000係我用nginx起嘅防白阻WEB, 1234你V2RAY掛WS嘅PORT
EMAIL隨便打垃圾野, PATH可以改但一改同時改兩個位(要一樣)
ID要你自己去GEN嘅
運作原理: 你CLIENT經8443連入去果陣會分開TCP同WS, TCP就直接對ID之類, WS就會自動REDIRECT去PORT1234, TCP FAIL就會彈去PORT 10000個WEB(HTTP就夠用)
  1. {
  2.     "log" : {
  3.         "access": "/var/log/v2ray/access.log",
  4.         "error": "/var/log/v2ray/error.log",
  5.         "loglevel": "error"
  6.     },
  7.     "inbounds": [
  8.         {
  9.             "port": 8443,
  10.             "protocol": "vless",
  11.             "settings": {
  12.                 "clients": [
  13.                     {
  14.                         "id": "00000000-0000-0000-0000-000000000000",
  15.                         "level": 0,
  16.                         "email": "a@b.com"
  17.                     }
  18.                 ],
  19.                 "decryption": "none",
  20.                 "fallbacks": [
  21.                     {
  22.                         "dest": 10000
  23.                     },
  24.                     {
  25.                         "path": "/v2ray",
  26.                         "dest": 1234,
  27.                         "xver": 1
  28.                     }
  29.                 ]
  30.             },
  31.             "streamSettings": {
  32.                 "network": "tcp",
  33.                 "security": "tls",
  34.                 "tlsSettings": {
  35.                     "alpn": [
  36.                         "http/1.1"
  37.                     ],
  38.                     "certificates": [
  39.                         {
  40.                             "certificateFile": "/mnt/sda1/ssl/cert.pem",
  41.                             "keyFile": "/mnt/sda1/ssl/key.pem"
  42.                         }
  43.                     ]
  44.                 }
  45.             }
  46.         },
  47.         {
  48.             "port": 1234,
  49.             "listen": "127.0.0.1",
  50.             "protocol": "vless",
  51.             "settings": {
  52.                 "clients": [
  53.                     {
  54.                         "id": "00000000-0000-0000-0000-000000000000",
  55.                         "level": 0,
  56.                         "email": "a@b.com"
  57.                     }
  58.                 ],
  59.                 "decryption": "none"
  60.             },
  61.             "streamSettings": {
  62.                 "network": "ws",
  63.                 "security": "none",
  64.                 "wsSettings": {
  65.                     "acceptProxyProtocol": true,
  66.                     "path": "/v2ray"
  67.                 }
  68.             }
  69.         }
  70.     ],
  71.     "outbounds": [
  72.         {
  73.             "protocol": "freedom"
  74.         }
  75.     ]
  76. }
複製代碼
24. 打開services-start響最尾加下面堆野, DOMAINNAME你就自己改返自己果個, 正路經華碩的話, CERT同KEY就放響
/jffs/.le/入面, 用WINSCP入的話Ctrl+O可以打PATH
  1. mkdir /var/log/v2ray/
  2. sleep 240

  3. #cert copy
  4. cp /jffs/.le/domainname.asuscomm.com/fullchain.cer /mnt/sda1/ssl/cert.pem
  5. cp /jffs/.le/domainname.asuscomm.com/domainname.asuscomm.com.key /mnt/sda1/ssl/key.pem

  6. #v2ray start
  7. mkdir /var/log/v2ray/
  8. nohup /jffs/v2ray/v2ray --config=/jffs/v2ray/config.json > /dev/null 2>&1 &
  9. iptables -I INPUT -p tcp --dport 8443 -j ACCEPT

  10. #check v2ray every 15 minute
  11. cru a check-v2ray "*/15 * * * * /jffs/scripts/v2ray-check.sh > /dev/null"
  12. #let v2ray auto restart
  13. cru a restart-v2ray "30 3 1 * * /jffs/scripts/v2ray-reload.sh > /dev/null"
複製代碼
25. 打開firewall-start, 加:
  1. iptables -I INPUT -p tcp --dport 8443 -j ACCEPT
複製代碼
26. 開新FILE: v2ray-check.sh
  1. #! /bin/sh
  2. case "$(pidof v2ray | wc -w)" in
  3. 0)  echo "Restarting V2ray:     $(date)" >> /var/log/v2ray/v2ray-status.log
  4.     nohup /jffs/v2ray/v2ray --config=/jffs/v2ray/config.json >/dev/null 2>&1 &
  5.     ;;
  6. 1)  # all ok
  7.     ;;
  8. *)  echo "Removed double V2ray: $(date)" >> /var/log/v2ray/v2ray-status.log
  9.     kill $(pidof v2ray | awk '{print $1}')
  10.     ;;
  11. esac
複製代碼
27. 開新FILE: v2ray-reload.sh
  1. #!/bin/sh
  2. #find old v2ray process and kill it.
  3. ps -w | grep /jffs/v2ray/v2ray | grep -v grep | awk '{print $1}' | xargs kill
  4. #sleep 10s for wait port release
  5. sleep 10
  6. #load v2ray again
  7. nohup /jffs/v2ray/v2ray --config=/jffs/v2ray/config.json >/dev/null 2>&1 &
複製代碼
28. 將v2ray-reload.sh同v2ray-check.sh都改成755 PERMISSION
29. REBOOT

CDN
30. 首先你要買或者申請一個二級DOMAIN NAME(即係AAA.COM果類, 而唔係平時DDNS果種AAA.BBB.COM)
如果你去GODADDY買, 買一年就好, DOMAIN NAME永遠都係申請平, 續期貴, 反正只係中轉就年年轉就好
31. 再去CLOUDFLARE申請一個免費ACCOUNT
32. 響CLOUDFLARE度ADD SITE, 入返你申請左果個DOMAIN NAME
33. SCAN一次DNS, 佢會順手話你知你要去GODADDY(我例子)度轉NAMESPACE落去CLOUDFLARE
34. 響GODADDY, 管理NAME SPACE度入返CLOUDFLARE比你果兩個NAMESPACE, 之後就再冇佢事
35. 去返CLOUDFLARE, DNS所有RECORD清哂佢, 然後加一個新RECORD
TYPE: CNAME, NAME: www, Content: domainname.asuscomm.com, Proxy status: proxied
36. 去ssl/tls, 揀full (strict)
37. ssl/tls下面Edge Certificates, 停左tls 1.3(之前v2ray未支援, 我當佢而家都未支援先)
38. firewall, setting, security level: Essentially Off
去到呢度, SERVER SIDE所有野都SET完

喜歡嘅可以好似我咁起個NGINX響PORT 10000掛個HTTP(冇S), 防白撞
(當有人用XXX.ASUSCOMM.COM:8443又或者WWW.AAA.COM:8443試撞果陣會見到個有齊CERT嘅PAGE)
39. opkg install nginx
40. 打開/opt/etc/nginx/nginx.conf, 改左個PORT做10000
41. 打開/jffs/scripts/firewall-start, 加
  1. iptables -I INPUT -p tcp --dport 10000 -j ACCEPT
複製代碼
42. 打開/jffs/scripts/services-start 加
  1. #nginx
  2. /opt/etc/init.d/S80nginx start
  3. iptables -I INPUT -p tcp --dport 10000 -j ACCEPT
複製代碼
(CLIENT)
TCP: TCP CONNECTION係做唔到CDN嘅, 所以ADDRESS打返ASUSCOMM.COM果個
PORT就用8443(或者你自己改左乜就用乜), ID都照抄返你自己果個
SECURITY係NONE, FLOW用TCP, PATH唔洗打野, TLS就用TLS, ALLOWINSECURE建議FLASE(安全D好)

WS(冇CDN): WS CONNECTION先做到CDN, 如果你想SET個冇CDN先既, 照抄上面(包括PORT都係8443), 剩係轉
FLOW: WS, PATH: /v2ray(或者睇你JSON改左乜)

先假設我買左aaa.com
WS(CDN): ADDRESS用www.aaa.com, PORT 8443, ID同PATH照抄
SECURITY: NONE, FLOW: WS, TLS: TLS, ALLOWINSECURE: FALSE
TLS SERVER NAME(如有): www.aaa.com

其實VMESS同VLESS個client setting係差唔多

P.S. 之前曾經有多舊XTLS出黎取代TLS, 不過唔知係咪BUG左, 作者更新完拎走左
另外實測, 用VLESS係真係快過VMESS唔少, ROUTER CPU少左扯到100%咁...
經CDN由2千幾MS PING跌到800MS, 而唔經CDN維持響200水平
作者: andy032412    時間: 2021-5-14 10:56

留名支持教學文, 雖然我都有起VLESS. 不過我直接係ESXI 上起.

想問下你用R7000 起VLESS, PERFORMANCE 點? 大概咩速度
作者: ckwxxxx    時間: 2021-5-14 11:06

感謝教學

真係要抄定
香港隨時就要用
作者: andy032412    時間: 2021-5-14 11:08

感謝教學

真係要抄定
香港隨時就要用
ckwxxxx 發表於 2021-5-14 11:06



    抄定都冇用, 你要係外國放隻ASUS 先得

香港要用, 只可以起VPS. 或者外國有朋友開VPN比你
作者: bunch    時間: 2021-5-14 11:50

本帖最後由 bunch 於 2021-5-14 12:17 編輯

回覆 2# andy032412

屋企1000Mbps(HKBN)

MOBILE TEST: ANDROID (v2rayNG)
TEST SERVER: HGC(沙田)
公司WIFI(HGC NETWORK): 75.9DL, 148UP
SS: 42.0DL, 56.1UP
VLESS(TCP): 39.7DL, 51.9DL
VLESS(WS): 39.1DL, 44.9DL
VLESS(WS, CDN): 45.0DL, 47.0UP

TEST SERVER: HKIX
公司WIFI: 40.4DL, 110DL
SS: 39.9DL, 60.4UP
VLESS(TCP): 42.0DL, 55.3UP
VLESS(WS): 37.0DL, 46.0UP
VLESS(WS, CDN): 44.6DL, 45.9UP


DESKTOP TEST: WINSOWS (v2rayN)
TEST SERVER: HKIX
公司LAN: 90.48DL, 94.68UP
SS: 42.47DL, 60.27UP
VLESS(TCP): 49.88DL, 46.67UP
VLESS(WS): 44.00DL, 39.22UP
VLESS(WS, CDN): 35.73DL, 46.69UP

感覺樽頸係響我隻ROUTER粒CPU度, 不過只係上下網睇下YOUTUBE, 1080P片, 夠用有突
另外行CDN基本都上百PING, 其他都10左右
作者: andy032412    時間: 2021-5-14 12:18

回覆 5# bunch


    應該係, BOTTLENECK 一定係CPU. 不過如果自己一個用, 就真係夠用.

想問下呢, 有冇可能可以做到連VLESS果陣有埋internal access.
我想當佢VPN咁用.
雖然SECURITY 應該就冇咩, 純粹學術研究
作者: bunch    時間: 2021-5-14 12:33

本帖最後由 bunch 於 2021-5-14 12:51 編輯

回覆 6# andy032412

咁應該要響FIREWALL RULES度落手, 應該要行兩句
Edit: 果兩句應該做唔到,forward得一個port冇用
作者: winsel    時間: 2021-5-15 14:36

好文SUPPORT , 支持師兄教學, 我比koolshare 既merlin 386 版搞到頭都痕晒
作者: upi    時間: 2021-5-17 10:39

vless fallback 其實係咪可以指去外面真實嘅網站, e.g.
"fallbacks": [
  {
    "dest": 80 // 回落配置,可以直接转到其他网站,例如"www.baidu.com:80"
  }
]
咁就唔駛額外裝entware同nginx?

根據日常使用經驗, 行WS+CDN嘅port一般只會用443, 用443以外好快會被GFW針對封port
作者: bunch    時間: 2021-5-17 23:04

本帖最後由 bunch 於 2021-5-18 01:28 編輯

回覆 9# upi

我個443比HKBN霸左(要用IP PHONE), 所以唯有用個有時會拎黎搞HTTPS既8443, so far仲未比人封,但神早準備好cdn

至於指去其他WEBSITE係做到既, 例如
"dest": "www.yahoo.com.cn:80"

查完一輪, 佢SYNTAX係
"dest": "domain:port"|"IP:port"
當用DOMAIN果陣, 佢行既係直接TCP HTTP1.1 REQUEST
(問題係對家有權報佢錯, 所以我先會試到成堆TARGET都唔得, 包括佢EXAMPLE既百度)
我試落就限制好大

BTW, 而家望緊xray,佢好似改左偽裝web browser去拎request,但會唔會有特徵係問題
至少V2ray暫時冇明顯特徵,xray clone之後完改左好多野,要花時間刨
作者: upi    時間: 2021-5-27 11:52

如果你有用WS+CF CDN, 咁個fallback其實係多餘, 因為你可以係CF CDN度set page rules嘅forwarding url 去分流, 又或用firewall rule直block堆GFW 白撞IP

page rules:
1 /v2ray = https on (隨便set個 non-url forwarding rule去exclude你ws path i.e. /v2ray)
2 *domain.com/* = forwarding url to https://www.example.com (所有traffic指去反偵/真website)

除咗 domain.com/v2ray嘅vless tcp tls traffic會去返v2ray server 走WS外, 其他所有traffic指晒去個反偵/真website度, 隨便你用乜都得, 最好係海外ip, 咁就唔使自己專登整個擺明係假嘅反偵web咁on9

又或再賤D係CF CDN firewall rule玩吓堆GFW 白撞 ip
先加 url path /v2ray = allow (放行v2ray嘅traffic)
再加 cn = challenge/block (白撞後再指去反偵website度)

仲有GFW會用大量IP去白撞cdn嘅domain, 咁CF就可能會解發rate limit 去block/blacklist咗某段CN IP, 所以有時係牆內會連唔到CDN domain, 咁你就要加條firewall rule to bypass CF嘅security level:
cn + url path (/v2ray) =  bypass (呢條rule要排第一)





歡迎光臨 電腦領域 HKEPC Hardware (https://h1.hkepc.com/forum/) Powered by Discuz! 7.2