Update On Tue Nov 11 19:39:22 CET 2025

This commit is contained in:
github-action[bot]
2025-11-11 19:39:23 +01:00
parent 77af742bd1
commit 923627574b
193 changed files with 19026 additions and 7809 deletions

View File

@@ -145,19 +145,8 @@ func getTLSProtocol(parsedURL *url.URL, logger *logs.Logger) (string, *tls.Confi
// exit 退出程序并显示帮助信息
func exit(err error) {
errMsg1, errMsg2 := "", ""
if err != nil {
errStr := "FAILED: " + err.Error()
if len(errStr) > 35 {
errMsg1 = errStr[:35]
if len(errStr) > 70 {
errMsg2 = errStr[35:67] + "..."
} else {
errMsg2 = errStr[35:]
}
} else {
errMsg1 = errStr
}
fmt.Fprintf(os.Stderr, "Error: %v [%d]\n", err, os.Getpid())
}
fmt.Printf(`
╭─────────────────────────────────────╮
@@ -171,11 +160,8 @@ func exit(err error) {
│ server://password@host/host?<query> │
│ client://password@host/host?<query> │
│ master://hostname:port/path?<query> │
├─────────────────────────────────────┤
│ %-35s │
│ %-35s │
╰─────────────────────────────────────╯
`, 36, version, 36, fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH), errMsg1, errMsg2)
`, 36, version, 36, fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH))
os.Exit(1)
}

View File

@@ -32,6 +32,7 @@ type Common struct {
logger *logs.Logger // 日志记录器
tlsCode string // TLS模式代码
tlsConfig *tls.Config // TLS配置
coreType string // 核心类型
runMode string // 运行模式
dataFlow string // 数据流向
tunnelKey string // 隧道密钥
@@ -291,6 +292,11 @@ func (c *Common) getAddress(parsedURL *url.URL) error {
return nil
}
// getCoreType 获取核心类型
func (c *Common) getCoreType(parsedURL *url.URL) {
c.coreType = parsedURL.Scheme
}
// getTargetAddrsString 获取目标地址组的字符串表示
func (c *Common) getTargetAddrsString() string {
addrs := make([]string, len(c.targetTCPAddrs))
@@ -447,6 +453,7 @@ func (c *Common) initConfig(parsedURL *url.URL) error {
return err
}
c.getCoreType(parsedURL)
c.getTunnelKey(parsedURL)
c.getPoolCapacity(parsedURL)
c.getRunMode(parsedURL)
@@ -519,7 +526,7 @@ func (c *Common) initTunnelListener() error {
}
// 初始化隧道TCP监听器
if c.tunnelTCPAddr != nil && c.disableTCP != "1" {
if c.tunnelTCPAddr != nil && (c.disableTCP != "1" || c.coreType != "client") {
tunnelListener, err := net.ListenTCP("tcp", c.tunnelTCPAddr)
if err != nil {
return fmt.Errorf("initTunnelListener: listenTCP failed: %w", err)
@@ -528,7 +535,7 @@ func (c *Common) initTunnelListener() error {
}
// 初始化隧道UDP监听器
if c.tunnelUDPAddr != nil && c.disableUDP != "1" {
if c.tunnelUDPAddr != nil && (c.disableUDP != "1" || c.coreType != "client") {
tunnelUDPConn, err := net.ListenUDP("udp", c.tunnelUDPAddr)
if err != nil {
return fmt.Errorf("initTunnelListener: listenUDP failed: %w", err)