diff --git a/testing/scenarios/vless_test.go b/testing/scenarios/vless_test.go
index 84d82643..ddb0bdb7 100644
--- a/testing/scenarios/vless_test.go
+++ b/testing/scenarios/vless_test.go
@@ -1,8 +1,8 @@
 package scenarios
 
 import (
-	// "encoding/base64"
-	// "encoding/hex"
+	"encoding/base64"
+	"encoding/hex"
 	"testing"
 	"time"
 
@@ -23,7 +23,7 @@ import (
 	"github.com/xtls/xray-core/proxy/vless/outbound"
 	"github.com/xtls/xray-core/testing/servers/tcp"
 	"github.com/xtls/xray-core/transport/internet"
-	// "github.com/xtls/xray-core/transport/internet/reality"
+	"github.com/xtls/xray-core/transport/internet/reality"
 	transtcp "github.com/xtls/xray-core/transport/internet/tcp"
 	"github.com/xtls/xray-core/transport/internet/tls"
 	"golang.org/x/sync/errgroup"
@@ -377,142 +377,143 @@ func TestVlessXtlsVision(t *testing.T) {
 	}
 }
 
-// func TestVlessXtlsVisionReality(t *testing.T) {
-// 	tcpServer := tcp.Server{
-// 		MsgProcessor: xor,
-// 	}
-// 	dest, err := tcpServer.Start()
-// 	common.Must(err)
-// 	defer tcpServer.Close()
+func TestVlessXtlsVisionReality(t *testing.T) {
+	tcpServer := tcp.Server{
+		MsgProcessor: xor,
+	}
+	dest, err := tcpServer.Start()
+	common.Must(err)
+	defer tcpServer.Close()
 
-// 	userID := protocol.NewID(uuid.New())
-// 	serverPort := tcp.PickPort()
-// 	privateKey, _ := base64.RawURLEncoding.DecodeString("aGSYystUbf59_9_6LKRxD27rmSW_-2_nyd9YG_Gwbks")
-// 	publicKey, _ := base64.RawURLEncoding.DecodeString("E59WjnvZcQMu7tR7_BgyhycuEdBS-CtKxfImRCdAvFM")
-// 	shortIds := make([][]byte, 1)
-// 	shortIds[0] = make([]byte, 8)
-// 	hex.Decode(shortIds[0], []byte("0123456789abcdef"))
-// 	serverConfig := &core.Config{
-// 		App: []*serial.TypedMessage{
-// 			serial.ToTypedMessage(&log.Config{
-// 				ErrorLogLevel: clog.Severity_Debug,
-// 				ErrorLogType:  log.LogType_Console,
-// 			}),
-// 		},
-// 		Inbound: []*core.InboundHandlerConfig{
-// 			{
-// 				ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{
-// 					PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(serverPort)}},
-// 					Listen:   net.NewIPOrDomain(net.LocalHostIP),
-// 					StreamSettings: &internet.StreamConfig{
-// 						Protocol:     internet.TransportProtocol_TCP,
-// 						SecurityType: serial.GetMessageType(&reality.Config{}),
-// 						SecuritySettings: []*serial.TypedMessage{
-// 							serial.ToTypedMessage(&reality.Config{
-// 								Show: true,
-// 								Dest: "www.google.com:443", // use google for now, may fail in some region
-// 								ServerNames: []string{"www.google.com"},
-// 								PrivateKey: privateKey,
-// 								ShortIds: shortIds,
-// 							}),
-// 						},
-// 					},
-// 				}),
-// 				ProxySettings: serial.ToTypedMessage(&inbound.Config{
-// 					Clients: []*protocol.User{
-// 						{
-// 							Account: serial.ToTypedMessage(&vless.Account{
-// 								Id:   userID.String(),
-// 								Flow: vless.XRV,
-// 							}),
-// 						},
-// 					},
-// 				}),
-// 			},
-// 		},
-// 		Outbound: []*core.OutboundHandlerConfig{
-// 			{
-// 				ProxySettings: serial.ToTypedMessage(&freedom.Config{}),
-// 			},
-// 		},
-// 	}
+	userID := protocol.NewID(uuid.New())
+	serverPort := tcp.PickPort()
+	privateKey, _ := base64.RawURLEncoding.DecodeString("aGSYystUbf59_9_6LKRxD27rmSW_-2_nyd9YG_Gwbks")
+	publicKey, _ := base64.RawURLEncoding.DecodeString("E59WjnvZcQMu7tR7_BgyhycuEdBS-CtKxfImRCdAvFM")
+	shortIds := make([][]byte, 1)
+	shortIds[0] = make([]byte, 8)
+	hex.Decode(shortIds[0], []byte("0123456789abcdef"))
+	serverConfig := &core.Config{
+		App: []*serial.TypedMessage{
+			serial.ToTypedMessage(&log.Config{
+				ErrorLogLevel: clog.Severity_Debug,
+				ErrorLogType:  log.LogType_Console,
+			}),
+		},
+		Inbound: []*core.InboundHandlerConfig{
+			{
+				ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{
+					PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(serverPort)}},
+					Listen:   net.NewIPOrDomain(net.LocalHostIP),
+					StreamSettings: &internet.StreamConfig{
+						Protocol:     internet.TransportProtocol_TCP,
+						SecurityType: serial.GetMessageType(&reality.Config{}),
+						SecuritySettings: []*serial.TypedMessage{
+							serial.ToTypedMessage(&reality.Config{
+								Show: true,
+								Dest: "www.google.com:443", // use google for now, may fail in some region
+								ServerNames: []string{"www.google.com"},
+								PrivateKey: privateKey,
+								ShortIds: shortIds,
+								Type: "tcp",
+							}),
+						},
+					},
+				}),
+				ProxySettings: serial.ToTypedMessage(&inbound.Config{
+					Clients: []*protocol.User{
+						{
+							Account: serial.ToTypedMessage(&vless.Account{
+								Id:   userID.String(),
+								Flow: vless.XRV,
+							}),
+						},
+					},
+				}),
+			},
+		},
+		Outbound: []*core.OutboundHandlerConfig{
+			{
+				ProxySettings: serial.ToTypedMessage(&freedom.Config{}),
+			},
+		},
+	}
 
-// 	clientPort := tcp.PickPort()
-// 	clientConfig := &core.Config{
-// 		App: []*serial.TypedMessage{
-// 			serial.ToTypedMessage(&log.Config{
-// 				ErrorLogLevel: clog.Severity_Debug,
-// 				ErrorLogType:  log.LogType_Console,
-// 			}),
-// 		},
-// 		Inbound: []*core.InboundHandlerConfig{
-// 			{
-// 				ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{
-// 					PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(clientPort)}},
-// 					Listen:   net.NewIPOrDomain(net.LocalHostIP),
-// 				}),
-// 				ProxySettings: serial.ToTypedMessage(&dokodemo.Config{
-// 					Address: net.NewIPOrDomain(dest.Address),
-// 					Port:    uint32(dest.Port),
-// 					NetworkList: &net.NetworkList{
-// 						Network: []net.Network{net.Network_TCP},
-// 					},
-// 				}),
-// 			},
-// 		},
-// 		Outbound: []*core.OutboundHandlerConfig{
-// 			{
-// 				ProxySettings: serial.ToTypedMessage(&outbound.Config{
-// 					Vnext: []*protocol.ServerEndpoint{
-// 						{
-// 							Address: net.NewIPOrDomain(net.LocalHostIP),
-// 							Port:    uint32(serverPort),
-// 							User: []*protocol.User{
-// 								{
-// 									Account: serial.ToTypedMessage(&vless.Account{
-// 										Id:   userID.String(),
-// 										Flow: vless.XRV,
-// 									}),
-// 								},
-// 							},
-// 						},
-// 					},
-// 				}),
-// 				SenderSettings: serial.ToTypedMessage(&proxyman.SenderConfig{
-// 					StreamSettings: &internet.StreamConfig{
-// 						Protocol: internet.TransportProtocol_TCP,
-// 						TransportSettings: []*internet.TransportConfig{
-// 							{
-// 								Protocol: internet.TransportProtocol_TCP,
-// 								Settings: serial.ToTypedMessage(&transtcp.Config{}),
-// 							},
-// 						},
-// 						SecurityType: serial.GetMessageType(&reality.Config{}),
-// 						SecuritySettings: []*serial.TypedMessage{
-// 							serial.ToTypedMessage(&reality.Config{
-// 								Show: true,
-// 								Fingerprint: "chrome",
-// 								ServerName: "www.google.com",
-// 								PublicKey: publicKey,
-// 								ShortId: shortIds[0],
-// 								SpiderX: "/",
-// 							}),
-// 						},
-// 					},
-// 				}),
-// 			},
-// 		},
-// 	}
+	clientPort := tcp.PickPort()
+	clientConfig := &core.Config{
+		App: []*serial.TypedMessage{
+			serial.ToTypedMessage(&log.Config{
+				ErrorLogLevel: clog.Severity_Debug,
+				ErrorLogType:  log.LogType_Console,
+			}),
+		},
+		Inbound: []*core.InboundHandlerConfig{
+			{
+				ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{
+					PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(clientPort)}},
+					Listen:   net.NewIPOrDomain(net.LocalHostIP),
+				}),
+				ProxySettings: serial.ToTypedMessage(&dokodemo.Config{
+					Address: net.NewIPOrDomain(dest.Address),
+					Port:    uint32(dest.Port),
+					NetworkList: &net.NetworkList{
+						Network: []net.Network{net.Network_TCP},
+					},
+				}),
+			},
+		},
+		Outbound: []*core.OutboundHandlerConfig{
+			{
+				ProxySettings: serial.ToTypedMessage(&outbound.Config{
+					Vnext: []*protocol.ServerEndpoint{
+						{
+							Address: net.NewIPOrDomain(net.LocalHostIP),
+							Port:    uint32(serverPort),
+							User: []*protocol.User{
+								{
+									Account: serial.ToTypedMessage(&vless.Account{
+										Id:   userID.String(),
+										Flow: vless.XRV,
+									}),
+								},
+							},
+						},
+					},
+				}),
+				SenderSettings: serial.ToTypedMessage(&proxyman.SenderConfig{
+					StreamSettings: &internet.StreamConfig{
+						Protocol: internet.TransportProtocol_TCP,
+						TransportSettings: []*internet.TransportConfig{
+							{
+								Protocol: internet.TransportProtocol_TCP,
+								Settings: serial.ToTypedMessage(&transtcp.Config{}),
+							},
+						},
+						SecurityType: serial.GetMessageType(&reality.Config{}),
+						SecuritySettings: []*serial.TypedMessage{
+							serial.ToTypedMessage(&reality.Config{
+								Show: true,
+								Fingerprint: "chrome",
+								ServerName: "www.google.com",
+								PublicKey: publicKey,
+								ShortId: shortIds[0],
+								SpiderX: "/",
+							}),
+						},
+					},
+				}),
+			},
+		},
+	}
 
-// 	servers, err := InitializeServerConfigs(serverConfig, clientConfig)
-// 	common.Must(err)
-// 	defer CloseAllServers(servers)
+	servers, err := InitializeServerConfigs(serverConfig, clientConfig)
+	common.Must(err)
+	defer CloseAllServers(servers)
 
-// 	var errg errgroup.Group
-// 	for i := 0; i < 1; i++ {
-// 		errg.Go(testTCPConn(clientPort, 1024*1024, time.Second*30))
-// 	}
-// 	if err := errg.Wait(); err != nil {
-// 		t.Error(err)
-// 	}
-// }
+	var errg errgroup.Group
+	for i := 0; i < 1; i++ {
+		errg.Go(testTCPConn(clientPort, 1024*1024, time.Second*30))
+	}
+	if err := errg.Wait(); err != nil {
+		t.Error(err)
+	}
+}