建議:VMess v2、DTLS和錯誤處理 #935
okudayukiko
started this conversation in
Ideas
Replies: 2 comments
-
关于 3 VMess v2: 现在我的想法是用现成的 https://noiseprotocol.org/ 这样保证安全性的同时减少开发的工作量。 加密的话大概还是会有无加密的支持,毕竟我个人还是比较希望同一个协议可以满足各种需求。而且未来VLess也会支持加密,所以并不能把vless和无加密等同。 |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
1、增加DTLS協定?如KCP+DTLS。如
"security": "dtls"
。2、TCP和TLS是強制糾錯(如丟包、CRC錯誤、VMess的時間戳錯誤、TLS的MAC錯誤)。UDP和DTLS是可選糾錯。對部分丟包等錯誤可以不糾錯,我想這就是WireGuard在筆記型電腦、手機上比Trojan/V2Ray-TLS省電的原因。我的HP ProBook 1035G1筆記型電腦,不使用V2Ray-TLS的時候續航還好,使用V2Ray-TLS的時候耗電快速,用WireGuard就低發熱、省電不少。
3、設計VMess v2(適用於懶得申請域名、懶得用TLS/DTLS的情況)?VMess v2不需申請域名,不需設定時間同步。VMess v2基於:
(1)Ed22519 V2ID Pair,1個V2ID Pair有2個V2IDs,兩個V2ID互相對應(一個V2ID是512bits,相當於4個UUID),V2ID1包括Private Key 1和Public Key 2,V2ID2包括Private Key 2和Public Key 1。V2ID使用BASE32編碼,也是為了方便輸入。
(2)對稱加密支援AES-128-GCM或CHACHA20-POLY1305,不提供無加密,無加密建議用VLess+TLS或VLess+DTLS。
(3)散列算法支援SHA256、BLAKE2S。
(4)由客戶端選擇加密算法,
"security"
:"auto"
|"aes-128-gcm"
|"chacha20-poly1305"
,aes-128-gcm
即使用AES-128-GCM和SHA256加密算法,chacha20-poly1305
即使用CHACHA20-POLY1305和BLAKE2S加密算法,auto
即自動判斷(用cpuid檢測處理器是否支援AES指令集)。(5)X25519密鑰交換。
(6)VMess v2支援TCP和UDP(KCP)。
4、在
streamSettings
加入AllowPartialError
(允許少量錯誤)選項。允許少量錯誤,也就是允許少量(在0.05-0.125之間也就是5%-12.5%之間隨機選擇一個數,而且這個數字每隔1小時就更新一次,比如選擇了0.08就允許8%的錯誤)丟包、CRC錯誤、MAC錯誤、時間戳錯誤,對於這些錯誤不進行糾錯(不resend,也就是不重發),但對於MAC錯誤、時間戳錯誤則是drop(丟包)處理(TCP對丟包錯誤、CRC錯誤是強制糾錯)。當使用"security": tls
時,因為TLS是強制糾錯,所以AllowPartialError
無效。C:\Users\Administrator>ping /n 100 us_vps_ip_addr
us_vps_ip_addr 的Ping統計資料:
封包:已傳送=100,已收到=94,已遺失=6(6%遺失)。
C:\Users\Administrator>ping /n 100 www.alibaba.com
www.alibaba.com 的Ping統計資料:
封包:已傳送=100,已收到=100,已遺失=0(0%遺失)。
5、建議SOCKS協定 預設代理UDP流量,即
"udp": true
。Beta Was this translation helpful? Give feedback.
All reactions