简单来说,和 Trojan、SS 可以自定义密码一样,Xray-core 的 VLESS 和 VMess 也可以自定义 id 了,一些规则见上方链接。 若无特殊需求,建议首选全随机的 UUIDv4 若选择自定义 id,建议保持一定的复杂度 现在VLESS、VMess 加载配置时就会检查 id 是否有效,Xray-core 自带的 UUID generator 也得到了增强: xray uuid...
HandshakeContext(ctx); err != nil { return nil, err } return tlsConn, nil } } func (t *Trojan) StreamWebsocketConn(conn net.Conn, wsOptions *WebsocketOption) (net.Conn, error) { @@ -104,7 +133,37 @@ func (t *Trojan) StreamWebsocketConn(conn net.Conn, wsOptions *WebsocketOption...
@@ -117,9 +116,6 @@ func (t *Trojan) StreamConn(conn net.Conn) (net.Conn, error) { } tlsConn := tls.Client(conn, tlsConfig) if err := tlsConn.Handshake(); err != nil { return nil, err } // fix tls handshake not timeout ctx, cancel := context.WithTimeout(context.Back...
// Client initiates a XTLS client handshake on the given connection. func Client(c net.Conn, config *xtls.Config) net.Conn { xtlsConn := xtls.Client(c, config) return &Conn{Conn: xtlsConn} } // Server initiates a XTLS server handshake on the given connection. func Server(c net....
2 changes: 1 addition & 1 deletion 2 proxy/trojan/client.go Original file line numberDiff line numberDiff line change @@ -124,7 +124,7 @@ func (c *Client) Process(ctx context.Context, link *transport.Link, dialer inter return errors.New("failed to write A request payload").Base(er...
分包上行、?x_padding=000...会产生较多、较长的日志,你可以在反代软件中设置不记录它们。 此外,和 Xray 的其它传输层一样,服务端也接受X-Forwarded-Forheader 以取得客户端的真实 IP,也会依据服务端设置的host来检查客户端发来的 host(个人建议是没事别设,毕竟已经隐藏在 path 后面了)。
tlsConnector *trojan.Trojan } type ShadowSocksOption struct { @@ -61,6 +65,11 @@ type v2rayObfsOption struct { Mux bool `obfs:"mux,omitempty"` } type shadowTLSOption struct { Password string `obfs:"password"` Host string `obfs:"host"` } // StreamConn implements C.ProxyAdapter func...