From f2195fa9d6b830fdb7eb234ad22718b72ea4c9ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A3=8E=E6=89=87=E6=BB=91=E7=BF=94=E7=BF=BC?= Date: Sat, 12 Jul 2025 09:00:39 +0000 Subject: [PATCH] Support port in domain --- main/commands/all/tls/ping.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/main/commands/all/tls/ping.go b/main/commands/all/tls/ping.go index f4be3fba..99c03b97 100644 --- a/main/commands/all/tls/ping.go +++ b/main/commands/all/tls/ping.go @@ -7,6 +7,7 @@ import ( "fmt" "net" "reflect" + "strconv" "unsafe" "github.com/xtls/xray-core/main/commands/base" @@ -38,8 +39,13 @@ func executePing(cmd *base.Command, args []string) { base.Fatalf("domain not specified") } - domain := cmdPing.Flag.Arg(0) - fmt.Println("Tls ping: ", domain) + domainWithPort := cmdPing.Flag.Arg(0) + fmt.Println("Tls ping: ", domainWithPort) + TargetPort := 443 + domain, port, err := net.SplitHostPort(domainWithPort) + if err == nil { + TargetPort, _ = strconv.Atoi(port) + } var ip net.IP if len(*pingIPStr) > 0 { @@ -60,7 +66,7 @@ func executePing(cmd *base.Command, args []string) { fmt.Println("-------------------") fmt.Println("Pinging without SNI") { - tcpConn, err := net.DialTCP("tcp", nil, &net.TCPAddr{IP: ip, Port: 443}) + tcpConn, err := net.DialTCP("tcp", nil, &net.TCPAddr{IP: ip, Port: TargetPort}) if err != nil { base.Fatalf("Failed to dial tcp: %s", err) }