[GH-ISSUE #4821] xtcp connection fails despite successful NAT hole punching #3807

Closed
opened 2026-05-05 14:26:10 -06:00 by gitea-mirror · 6 comments
Owner

Originally created by @tsuk1nose on GitHub (May 29, 2025).
Original GitHub issue: https://github.com/fatedier/frp/issues/4821

Bug Description

Issue: xtcp connection fails despite successful NAT hole punching

Problem Description

When attempting to use xtcp to access a service that works correctly via stcp, the connection fails. Although logs indicate that NAT hole punching is successful, the connection is non-functional and unusable.

frpc Version

proxy: 0.60.0; visitor: 0.60.0;

frps Version

0.62.1

System Architecture

server:linux/amd64; proxy:windows/amd64; visitor: windows/amd64;

Configurations

Server Configuration

frps.toml

frps.toml
tcpmuxHTTPConnectPort = 514
auth.token = "****" 

log.to = "/var/log/frps.log"
log.level = "info"
log.maxDays = 3

Client Configuration

Proxy

serverAddr = "***"
auth.token = "***"
transport.tls.enable = true

log.to = "./logs/frpc.log"
log.level = "info"
log.maxDays = 3

[[proxies]]
name = "rdp-***"
type = "stcp"
secretKey = "***"
localIP = "127.0.0.1"
localPort = 3389
transport.useEncryption = true
transport.useCompression = true

[[proxies]]
name = "xrdp-***"
type = "xtcp"
secretKey = "***"
localIP = "127.0.0.1"
localPort = 3389
transport.useEncryption = true
transport.useCompression = true

[[proxies]]
name = "ssh-***"
type = "stcp"
secretKey = "***"
localIP = "127.0.0.1"
localPort = 22
transport.useEncryption = true
transport.useCompression = true

[[proxies]]
name = "xssh-***"
type = "xtcp"
secretKey = "***"
localIP = "127.0.0.1"
localPort = 22
transport.useEncryption = true
transport.useCompression = true

Visitor

serverAddr = "***"
serverPort = 114
auth.token = "***"
transport.tls.enable = true

#log.to = "./logs/frpc.log"
log.level = "info"
#log.maxDays = 3

[[visitors]]
name = "rdp"
type = "stcp"
serverName = "rdp-***"
secretKey = "***"
bindAddr = "127.0.0.1"
bindPort = 13389

[[visitors]]
name = "xrdp"
type = "xtcp"
serverName = "xrdp-***"
secretKey = "***"
bindAddr = "127.0.0.1"
bindPort = 23389
keepTunnelOpen = true

[[visitors]]
name = "ssh"
type = "stcp"
serverName = "ssh-***"
secretKey = "***"
bindAddr = "127.0.0.1"
bindPort = 10022

[[visitors]]
name = "xssh"
type = "xtcp"
serverName = "xssh-***"
secretKey = "***"
bindAddr = "127.0.0.1"
bindPort = 20022
keepTunnelOpen = true

Logs

Logs

Server

2025-05-29 11:19:25.006 [I] [frps/root.go:105] frps uses config file: /etc/frps/frps.toml
2025-05-29 11:19:25.667 [I] [server/service.go:187] tcpmux httpconnect multiplexer listen on 0.0.0.0:514, passthough: false
2025-05-29 11:19:25.667 [I] [server/service.go:237] frps tcp listen on 0.0.0.0:114
2025-05-29 11:19:25.667 [I] [frps/root.go:114] frps started successfully
2025-05-29 11:19:25.668 [I] [server/service.go:351] dashboard listen on 0.0.0.0:7500
2025-05-29 11:19:38.595 [I] [server/service.go:582] [b6c954d5058017f0] client login info: ip [***:3590] version [0.60.0] hostname [] os [windows] arch [amd64]
2025-05-29 11:19:38.791 [I] [proxy/stcp.go:56] [b6c954d5058017f0] [rdp-***] stcp proxy custom listen success
2025-05-29 11:19:38.791 [I] [server/control.go:399] [b6c954d5058017f0] new proxy [rdp-***] type [stcp] success
2025-05-29 11:19:38.792 [I] [server/control.go:399] [b6c954d5058017f0] new proxy [xrdp-***] type [xtcp] success
2025-05-29 11:19:38.792 [I] [proxy/stcp.go:56] [b6c954d5058017f0] [ssh-***] stcp proxy custom listen success
2025-05-29 11:19:38.792 [I] [server/control.go:399] [b6c954d5058017f0] new proxy [ssh-***] type [stcp] success
2025-05-29 11:19:38.792 [I] [server/control.go:399] [b6c954d5058017f0] new proxy [xssh-***] type [xtcp] success
2025-05-29 11:19:58.839 [I] [server/service.go:582] [0325308cb6a9ca9f] client login info: ip [***:4437] version [0.60.0] hostname [] os [windows] arch [amd64]
2025-05-29 11:20:01.805 [I] [nathole/controller.go:280] sid [17484887991fcaa65b82ce2010] report make hole success: true, mode 0, index 0
2025-05-29 11:20:02.078 [I] [nathole/controller.go:280] sid [17484888008487da2b98e423ad] report make hole success: true, mode 0, index 1
2025-05-29 11:20:29.561 [I] [proxy/proxy.go:204] [b6c954d5058017f0] [ssh-***] get a user connection [***:4437]
2025-05-29 11:20:43.669 [I] [proxy/proxy.go:204] [b6c954d5058017f0] [rdp-***] get a user connection [***:4437]
2025-05-29 11:20:49.274 [I] [proxy/proxy.go:204] [b6c954d5058017f0] [rdp-***] get a user connection [***:4437]

Proxy

2025-05-28 20:19:38.392 [I] [sub/root.go:142] start frpc service for config file [./frpc.toml]
2025-05-28 20:19:38.394 [I] [client/service.go:295] try to connect to server...
2025-05-28 20:19:39.027 [I] [client/service.go:287] [b6c954d5058017f0] login to server success, get run id [b6c954d5058017f0]
2025-05-28 20:19:39.027 [I] [proxy/proxy_manager.go:173] [b6c954d5058017f0] proxy added: [rdp-*** xrdp-*** ssh-*** xssh-***]
2025-05-28 20:19:39.221 [I] [client/control.go:168] [b6c954d5058017f0] [rdp-***] start proxy success
2025-05-28 20:19:39.222 [I] [client/control.go:168] [b6c954d5058017f0] [xrdp-***] start proxy success
2025-05-28 20:19:39.222 [I] [client/control.go:168] [b6c954d5058017f0] [ssh-***] start proxy success
2025-05-28 20:19:39.224 [I] [client/control.go:168] [b6c954d5058017f0] [xssh-***] start proxy success
2025-05-28 20:20:00.846 [I] [proxy/xtcp.go:72] [b6c954d5058017f0] [xssh-***] nathole prepare success, nat type: EasyNAT, behavior: BehaviorNoChange, addresses: [***:4467 ***:4467], assistedAddresses: [192.168.201.3:49182 100.64.0.19:49182 192.168.3.36:49182]
2025-05-28 20:20:01.116 [I] [proxy/xtcp.go:72] [b6c954d5058017f0] [xrdp-***] nathole prepare success, nat type: EasyNAT, behavior: BehaviorNoChange, addresses: [***:4469 ***:4469], assistedAddresses: [192.168.201.3:63881 100.64.0.19:63881 192.168.3.36:63881]
2025-05-28 20:20:01.308 [I] [proxy/xtcp.go:93] [b6c954d5058017f0] [xrdp-***] get natHoleRespMsg, sid [17484888008487da2b98e423ad], protocol [quic], candidate address [***:4457], assisted address [100.64.0.4:60181 192.168.3.3:60181 192.168.201.2:60181 10.147.18.108:60181], detectBehavior: {Role:receiver Mode:0 TTL:7 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0}
2025-05-28 20:20:02.037 [I] [proxy/xtcp.go:93] [b6c954d5058017f0] [xssh-***] get natHoleRespMsg, sid [17484887991fcaa65b82ce2010], protocol [quic], candidate address [***:4458], assisted address [100.64.0.4:60180 192.168.3.3:60180 192.168.201.2:60180 10.147.18.108:60180], detectBehavior: {Role:sender Mode:0 TTL:0 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0}
2025-05-28 20:20:02.040 [I] [proxy/xtcp.go:109] [b6c954d5058017f0] [xssh-***] establishing nat hole connection successful, sid [17484887991fcaa65b82ce2010], remoteAddr [192.168.3.3:60180]
2025-05-28 20:20:02.313 [I] [proxy/xtcp.go:109] [b6c954d5058017f0] [xrdp-***] establishing nat hole connection successful, sid [17484888008487da2b98e423ad], remoteAddr [192.168.3.3:60181]

Visitor

2025-05-29 11:19:58.376 [I] [sub/root.go:142] start frpc service for config file [.\visitor.toml]
2025-05-29 11:19:58.376 [I] [client/service.go:295] try to connect to server...
2025-05-29 11:19:59.243 [I] [client/service.go:287] [0325308cb6a9ca9f] login to server success, get run id [0325308cb6a9ca9f]
2025-05-29 11:19:59.244 [I] [visitor/visitor_manager.go:121] [0325308cb6a9ca9f] start visitor success
2025-05-29 11:19:59.245 [I] [visitor/visitor_manager.go:121] [0325308cb6a9ca9f] start visitor success
2025-05-29 11:19:59.246 [I] [visitor/visitor_manager.go:121] [0325308cb6a9ca9f] start visitor success
2025-05-29 11:19:59.247 [I] [visitor/visitor_manager.go:121] [0325308cb6a9ca9f] start visitor success
2025-05-29 11:19:59.247 [I] [visitor/visitor_manager.go:172] [0325308cb6a9ca9f] visitor added: [rdp xrdp ssh xssh]
2025-05-29 11:20:00.026 [I] [visitor/xtcp.go:283] [0325308cb6a9ca9f] [xssh] nathole prepare success, nat type: EasyNAT, behavior: BehaviorNoChange, addresses: [***:4458 ***:4458], assistedAddresses: [100.64.0.4:60180 192.168.3.3:60180 192.168.201.2:60180 10.147.18.108:60180]
2025-05-29 11:20:00.323 [I] [visitor/xtcp.go:283] [0325308cb6a9ca9f] [xrdp] nathole prepare success, nat type: EasyNAT, behavior: BehaviorNoChange, addresses: [***:4457 ***:4457], assistedAddresses: [100.64.0.4:60181 192.168.3.3:60181 192.168.201.2:60181 10.147.18.108:60181]
2025-05-29 11:20:01.001 [I] [visitor/xtcp.go:309] [0325308cb6a9ca9f] [xssh] get natHoleRespMsg, sid [17484887991fcaa65b82ce2010], protocol [quic], candidate address [***:4467], assisted address [192.168.201.3:49182 100.64.0.19:49182 192.168.3.36:49182], detectBehavior: {Role:receiver Mode:0 TTL:7 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0}
2025-05-29 11:20:01.003 [W] [nathole/nathole.go:295] [0325308cb6a9ca9f] [xssh] decode sid message error: message type error
2025-05-29 11:20:02.008 [I] [visitor/xtcp.go:320] [0325308cb6a9ca9f] [xssh] establishing nat hole connection successful, sid [17484887991fcaa65b82ce2010], remoteAddr [192.168.3.36:49182]
2025-05-29 11:20:02.280 [I] [visitor/xtcp.go:309] [0325308cb6a9ca9f] [xrdp] get natHoleRespMsg, sid [17484888008487da2b98e423ad], protocol [quic], candidate address [***:4469], assisted address [192.168.201.3:63881 100.64.0.19:63881 192.168.3.36:63881], detectBehavior: {Role:sender Mode:0 TTL:0 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0}
2025-05-29 11:20:02.283 [I] [visitor/xtcp.go:320] [0325308cb6a9ca9f] [xrdp] establishing nat hole connection successful, sid [17484888008487da2b98e423ad], remoteAddr [192.168.3.36:63881]

Steps to reproduce

...

Affected area

  • Docs
  • Installation
  • Performance and Scalability
  • Security
  • User Experience
  • Test and Release
  • Developer Infrastructure
  • Client Plugin
  • Server Plugin
  • Extensions
  • Others
Originally created by @tsuk1nose on GitHub (May 29, 2025). Original GitHub issue: https://github.com/fatedier/frp/issues/4821 ### Bug Description # Issue: xtcp connection fails despite successful NAT hole punching ## Problem Description When attempting to use `xtcp` to access a service that works correctly via `stcp`, the connection fails. Although logs indicate that NAT hole punching is successful, the connection is non-functional and unusable. ### frpc Version proxy: 0.60.0; visitor: 0.60.0; ### frps Version 0.62.1 ### System Architecture server:linux/amd64; proxy:windows/amd64; visitor: windows/amd64; ### Configurations ## Server Configuration ### frps.toml ``` frps.toml tcpmuxHTTPConnectPort = 514 auth.token = "****" log.to = "/var/log/frps.log" log.level = "info" log.maxDays = 3 ``` ## Client Configuration ### Proxy ``` serverAddr = "***" auth.token = "***" transport.tls.enable = true log.to = "./logs/frpc.log" log.level = "info" log.maxDays = 3 [[proxies]] name = "rdp-***" type = "stcp" secretKey = "***" localIP = "127.0.0.1" localPort = 3389 transport.useEncryption = true transport.useCompression = true [[proxies]] name = "xrdp-***" type = "xtcp" secretKey = "***" localIP = "127.0.0.1" localPort = 3389 transport.useEncryption = true transport.useCompression = true [[proxies]] name = "ssh-***" type = "stcp" secretKey = "***" localIP = "127.0.0.1" localPort = 22 transport.useEncryption = true transport.useCompression = true [[proxies]] name = "xssh-***" type = "xtcp" secretKey = "***" localIP = "127.0.0.1" localPort = 22 transport.useEncryption = true transport.useCompression = true ``` ### Visitor ``` serverAddr = "***" serverPort = 114 auth.token = "***" transport.tls.enable = true #log.to = "./logs/frpc.log" log.level = "info" #log.maxDays = 3 [[visitors]] name = "rdp" type = "stcp" serverName = "rdp-***" secretKey = "***" bindAddr = "127.0.0.1" bindPort = 13389 [[visitors]] name = "xrdp" type = "xtcp" serverName = "xrdp-***" secretKey = "***" bindAddr = "127.0.0.1" bindPort = 23389 keepTunnelOpen = true [[visitors]] name = "ssh" type = "stcp" serverName = "ssh-***" secretKey = "***" bindAddr = "127.0.0.1" bindPort = 10022 [[visitors]] name = "xssh" type = "xtcp" serverName = "xssh-***" secretKey = "***" bindAddr = "127.0.0.1" bindPort = 20022 keepTunnelOpen = true ``` ### Logs ## Logs ### Server ``` 2025-05-29 11:19:25.006 [I] [frps/root.go:105] frps uses config file: /etc/frps/frps.toml 2025-05-29 11:19:25.667 [I] [server/service.go:187] tcpmux httpconnect multiplexer listen on 0.0.0.0:514, passthough: false 2025-05-29 11:19:25.667 [I] [server/service.go:237] frps tcp listen on 0.0.0.0:114 2025-05-29 11:19:25.667 [I] [frps/root.go:114] frps started successfully 2025-05-29 11:19:25.668 [I] [server/service.go:351] dashboard listen on 0.0.0.0:7500 2025-05-29 11:19:38.595 [I] [server/service.go:582] [b6c954d5058017f0] client login info: ip [***:3590] version [0.60.0] hostname [] os [windows] arch [amd64] 2025-05-29 11:19:38.791 [I] [proxy/stcp.go:56] [b6c954d5058017f0] [rdp-***] stcp proxy custom listen success 2025-05-29 11:19:38.791 [I] [server/control.go:399] [b6c954d5058017f0] new proxy [rdp-***] type [stcp] success 2025-05-29 11:19:38.792 [I] [server/control.go:399] [b6c954d5058017f0] new proxy [xrdp-***] type [xtcp] success 2025-05-29 11:19:38.792 [I] [proxy/stcp.go:56] [b6c954d5058017f0] [ssh-***] stcp proxy custom listen success 2025-05-29 11:19:38.792 [I] [server/control.go:399] [b6c954d5058017f0] new proxy [ssh-***] type [stcp] success 2025-05-29 11:19:38.792 [I] [server/control.go:399] [b6c954d5058017f0] new proxy [xssh-***] type [xtcp] success 2025-05-29 11:19:58.839 [I] [server/service.go:582] [0325308cb6a9ca9f] client login info: ip [***:4437] version [0.60.0] hostname [] os [windows] arch [amd64] 2025-05-29 11:20:01.805 [I] [nathole/controller.go:280] sid [17484887991fcaa65b82ce2010] report make hole success: true, mode 0, index 0 2025-05-29 11:20:02.078 [I] [nathole/controller.go:280] sid [17484888008487da2b98e423ad] report make hole success: true, mode 0, index 1 2025-05-29 11:20:29.561 [I] [proxy/proxy.go:204] [b6c954d5058017f0] [ssh-***] get a user connection [***:4437] 2025-05-29 11:20:43.669 [I] [proxy/proxy.go:204] [b6c954d5058017f0] [rdp-***] get a user connection [***:4437] 2025-05-29 11:20:49.274 [I] [proxy/proxy.go:204] [b6c954d5058017f0] [rdp-***] get a user connection [***:4437] ``` ### Proxy ``` 2025-05-28 20:19:38.392 [I] [sub/root.go:142] start frpc service for config file [./frpc.toml] 2025-05-28 20:19:38.394 [I] [client/service.go:295] try to connect to server... 2025-05-28 20:19:39.027 [I] [client/service.go:287] [b6c954d5058017f0] login to server success, get run id [b6c954d5058017f0] 2025-05-28 20:19:39.027 [I] [proxy/proxy_manager.go:173] [b6c954d5058017f0] proxy added: [rdp-*** xrdp-*** ssh-*** xssh-***] 2025-05-28 20:19:39.221 [I] [client/control.go:168] [b6c954d5058017f0] [rdp-***] start proxy success 2025-05-28 20:19:39.222 [I] [client/control.go:168] [b6c954d5058017f0] [xrdp-***] start proxy success 2025-05-28 20:19:39.222 [I] [client/control.go:168] [b6c954d5058017f0] [ssh-***] start proxy success 2025-05-28 20:19:39.224 [I] [client/control.go:168] [b6c954d5058017f0] [xssh-***] start proxy success 2025-05-28 20:20:00.846 [I] [proxy/xtcp.go:72] [b6c954d5058017f0] [xssh-***] nathole prepare success, nat type: EasyNAT, behavior: BehaviorNoChange, addresses: [***:4467 ***:4467], assistedAddresses: [192.168.201.3:49182 100.64.0.19:49182 192.168.3.36:49182] 2025-05-28 20:20:01.116 [I] [proxy/xtcp.go:72] [b6c954d5058017f0] [xrdp-***] nathole prepare success, nat type: EasyNAT, behavior: BehaviorNoChange, addresses: [***:4469 ***:4469], assistedAddresses: [192.168.201.3:63881 100.64.0.19:63881 192.168.3.36:63881] 2025-05-28 20:20:01.308 [I] [proxy/xtcp.go:93] [b6c954d5058017f0] [xrdp-***] get natHoleRespMsg, sid [17484888008487da2b98e423ad], protocol [quic], candidate address [***:4457], assisted address [100.64.0.4:60181 192.168.3.3:60181 192.168.201.2:60181 10.147.18.108:60181], detectBehavior: {Role:receiver Mode:0 TTL:7 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0} 2025-05-28 20:20:02.037 [I] [proxy/xtcp.go:93] [b6c954d5058017f0] [xssh-***] get natHoleRespMsg, sid [17484887991fcaa65b82ce2010], protocol [quic], candidate address [***:4458], assisted address [100.64.0.4:60180 192.168.3.3:60180 192.168.201.2:60180 10.147.18.108:60180], detectBehavior: {Role:sender Mode:0 TTL:0 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0} 2025-05-28 20:20:02.040 [I] [proxy/xtcp.go:109] [b6c954d5058017f0] [xssh-***] establishing nat hole connection successful, sid [17484887991fcaa65b82ce2010], remoteAddr [192.168.3.3:60180] 2025-05-28 20:20:02.313 [I] [proxy/xtcp.go:109] [b6c954d5058017f0] [xrdp-***] establishing nat hole connection successful, sid [17484888008487da2b98e423ad], remoteAddr [192.168.3.3:60181] ``` ### Visitor ``` 2025-05-29 11:19:58.376 [I] [sub/root.go:142] start frpc service for config file [.\visitor.toml] 2025-05-29 11:19:58.376 [I] [client/service.go:295] try to connect to server... 2025-05-29 11:19:59.243 [I] [client/service.go:287] [0325308cb6a9ca9f] login to server success, get run id [0325308cb6a9ca9f] 2025-05-29 11:19:59.244 [I] [visitor/visitor_manager.go:121] [0325308cb6a9ca9f] start visitor success 2025-05-29 11:19:59.245 [I] [visitor/visitor_manager.go:121] [0325308cb6a9ca9f] start visitor success 2025-05-29 11:19:59.246 [I] [visitor/visitor_manager.go:121] [0325308cb6a9ca9f] start visitor success 2025-05-29 11:19:59.247 [I] [visitor/visitor_manager.go:121] [0325308cb6a9ca9f] start visitor success 2025-05-29 11:19:59.247 [I] [visitor/visitor_manager.go:172] [0325308cb6a9ca9f] visitor added: [rdp xrdp ssh xssh] 2025-05-29 11:20:00.026 [I] [visitor/xtcp.go:283] [0325308cb6a9ca9f] [xssh] nathole prepare success, nat type: EasyNAT, behavior: BehaviorNoChange, addresses: [***:4458 ***:4458], assistedAddresses: [100.64.0.4:60180 192.168.3.3:60180 192.168.201.2:60180 10.147.18.108:60180] 2025-05-29 11:20:00.323 [I] [visitor/xtcp.go:283] [0325308cb6a9ca9f] [xrdp] nathole prepare success, nat type: EasyNAT, behavior: BehaviorNoChange, addresses: [***:4457 ***:4457], assistedAddresses: [100.64.0.4:60181 192.168.3.3:60181 192.168.201.2:60181 10.147.18.108:60181] 2025-05-29 11:20:01.001 [I] [visitor/xtcp.go:309] [0325308cb6a9ca9f] [xssh] get natHoleRespMsg, sid [17484887991fcaa65b82ce2010], protocol [quic], candidate address [***:4467], assisted address [192.168.201.3:49182 100.64.0.19:49182 192.168.3.36:49182], detectBehavior: {Role:receiver Mode:0 TTL:7 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0} 2025-05-29 11:20:01.003 [W] [nathole/nathole.go:295] [0325308cb6a9ca9f] [xssh] decode sid message error: message type error 2025-05-29 11:20:02.008 [I] [visitor/xtcp.go:320] [0325308cb6a9ca9f] [xssh] establishing nat hole connection successful, sid [17484887991fcaa65b82ce2010], remoteAddr [192.168.3.36:49182] 2025-05-29 11:20:02.280 [I] [visitor/xtcp.go:309] [0325308cb6a9ca9f] [xrdp] get natHoleRespMsg, sid [17484888008487da2b98e423ad], protocol [quic], candidate address [***:4469], assisted address [192.168.201.3:63881 100.64.0.19:63881 192.168.3.36:63881], detectBehavior: {Role:sender Mode:0 TTL:0 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0} 2025-05-29 11:20:02.283 [I] [visitor/xtcp.go:320] [0325308cb6a9ca9f] [xrdp] establishing nat hole connection successful, sid [17484888008487da2b98e423ad], remoteAddr [192.168.3.36:63881] ``` ### Steps to reproduce 1. 2. 3. ... ### Affected area - [ ] Docs - [ ] Installation - [ ] Performance and Scalability - [ ] Security - [ ] User Experience - [ ] Test and Release - [ ] Developer Infrastructure - [ ] Client Plugin - [ ] Server Plugin - [ ] Extensions - [ ] Others
Author
Owner

@fatedier commented on GitHub (May 29, 2025):

  1. Please make sure that the versions of frpc and frps are the same during testing.
  2. Set the log level to debug and check if there are more error logs when the user tries to connect.
<!-- gh-comment-id:2918502418 --> @fatedier commented on GitHub (May 29, 2025): 1. Please make sure that the versions of `frpc` and `frps` are the same during testing. 2. Set the log level to `debug` and check if there are more error logs when the user tries to connect.
Author
Owner

@tsuk1nose commented on GitHub (May 29, 2025):

  1. Please make sure that the versions of frpc and frps are the same during testing.
  2. Set the log level to debug and check if there are more error logs when the user tries to connect.

Thank you very much for your response and support!

I've now updated all the related packages to version 0.62.1 and also set the log level to debug. Unfortunately, aligning the versions did not resolve the issue. Please find the new debug logs below:

Logs

Server

2025-05-29 15:11:04.626 [I] [frps/root.go:105] frps uses config file: /etc/frps/frps.toml
2025-05-29 15:11:05.098 [I] [server/service.go:187] tcpmux httpconnect multiplexer listen on 0.0.0.0:514, passthough: false
2025-05-29 15:11:05.099 [I] [server/service.go:237] frps tcp listen on 0.0.0.0:114
2025-05-29 15:11:05.100 [I] [frps/root.go:114] frps started successfully
2025-05-29 15:11:05.100 [I] [server/service.go:351] dashboard listen on 0.0.0.0:7500
2025-05-29 15:11:35.600 [I] [server/service.go:582] [00df7d0c96f13bef] client login info: ip [*.*.*.*:10338] version [0.62.1] hostname [] os [windows] arch [amd64]
2025-05-29 15:11:35.788 [D] [server/control.go:243] [00df7d0c96f13bef] new work connection registered
2025-05-29 15:11:35.790 [I] [server/control.go:399] [00df7d0c96f13bef] new proxy [xrdp-***] type [xtcp] success
2025-05-29 15:11:35.790 [I] [proxy/stcp.go:56] [00df7d0c96f13bef] [rdp-***] stcp proxy custom listen success
2025-05-29 15:11:35.791 [I] [server/control.go:399] [00df7d0c96f13bef] new proxy [rdp-***] type [stcp] success
2025-05-29 15:11:35.791 [I] [proxy/stcp.go:56] [00df7d0c96f13bef] [ssh-***] stcp proxy custom listen success
2025-05-29 15:11:35.791 [I] [server/control.go:399] [00df7d0c96f13bef] new proxy [ssh-***] type [stcp] success
2025-05-29 15:11:35.791 [I] [server/control.go:399] [00df7d0c96f13bef] new proxy [xssh-***] type [xtcp] success
2025-05-29 15:11:46.830 [I] [server/service.go:582] [ece96c3da62403b2] client login info: ip [*.*.*.*:10421] version [0.62.1] hostname [] os [windows] arch [amd64]
2025-05-29 15:11:47.026 [D] [server/control.go:243] [ece96c3da62403b2] new work connection registered
2025-05-29 15:11:47.780 [D] [server/control.go:272] [00df7d0c96f13bef] get work connection from pool
2025-05-29 15:11:47.780 [D] [proxy/proxy.go:131] [00df7d0c96f13bef] [xssh-***] get a new work connection: [*.*.*.*:10338]
2025-05-29 15:11:47.964 [D] [server/control.go:243] [00df7d0c96f13bef] new work connection registered
2025-05-29 15:11:47.964 [D] [proxy/proxy.go:131] [00df7d0c96f13bef] [xrdp-***] get a new work connection: [*.*.*.*:10338]
2025-05-29 15:11:47.974 [D] [server/control.go:243] [00df7d0c96f13bef] new work connection registered
2025-05-29 15:11:48.389 [D] [server/control.go:243] [00df7d0c96f13bef] new work connection registered
2025-05-29 15:11:48.528 [D] [nathole/controller.go:362] sid [174850270769b8265b22eb6757] visitor nat: {NatType:EasyNAT Behavior:BehaviorNoChange PortsDifference:0 RegularPortsChange:false PublicNetwork:false}, candidateAddrs: [*.*.*.*:10431 ]; client nat: {NatType:EasyNAT Behavior:BehaviorNoChange PortsDifference:0 RegularPortsChange:false PublicNetwork:false}, candidateAddrs: [*.*.*.*:10447 ], protocol: quic
2025-05-29 15:11:48.529 [D] [nathole/controller.go:364] sid [174850270769b8265b22eb6757] visitor detect behavior: {Role:receiver Mode:0 TTL:7 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0}
2025-05-29 15:11:48.529 [D] [nathole/controller.go:365] sid [174850270769b8265b22eb6757] client detect behavior: {Role:sender Mode:0 TTL:0 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0}
2025-05-29 15:11:48.953 [D] [nathole/controller.go:362] sid [1748502707174c647950cd990c] visitor nat: {NatType:EasyNAT Behavior:BehaviorNoChange PortsDifference:0 RegularPortsChange:false PublicNetwork:false}, candidateAddrs: [*.*.*.*:10430 ]; client nat: {NatType:EasyNAT Behavior:BehaviorNoChange PortsDifference:0 RegularPortsChange:false PublicNetwork:false}, candidateAddrs: [*.*.*.*:10451 ], protocol: quic
2025-05-29 15:11:48.953 [D] [nathole/controller.go:364] sid [1748502707174c647950cd990c] visitor detect behavior: {Role:sender Mode:0 TTL:0 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0}
2025-05-29 15:11:48.953 [D] [nathole/controller.go:365] sid [1748502707174c647950cd990c] client detect behavior: {Role:receiver Mode:0 TTL:7 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0}
2025-05-29 15:11:49.713 [I] [nathole/controller.go:280] sid [174850270769b8265b22eb6757] report make hole success: true, mode 0, index 0
2025-05-29 15:11:50.137 [I] [nathole/controller.go:280] sid [1748502707174c647950cd990c] report make hole success: true, mode 0, index 1

Proxy

2025-05-29 00:11:34.763 [I] [sub/root.go:149] start frpc service for config file [./frpc.toml]
2025-05-29 00:11:34.764 [I] [client/service.go:314] try to connect to server...
2025-05-29 00:11:35.364 [I] [client/service.go:306] [00df7d0c96f13bef] login to server success, get run id [00df7d0c96f13bef]
2025-05-29 00:11:35.364 [I] [proxy/proxy_manager.go:177] [00df7d0c96f13bef] proxy added: [rdp-*** xrdp-*** ssh-*** xssh-***]
2025-05-29 00:11:35.548 [I] [client/control.go:172] [00df7d0c96f13bef] [xrdp-***] start proxy success
2025-05-29 00:11:35.548 [I] [client/control.go:172] [00df7d0c96f13bef] [rdp-***] start proxy success
2025-05-29 00:11:35.548 [I] [client/control.go:172] [00df7d0c96f13bef] [ssh-***] start proxy success
2025-05-29 00:11:35.550 [I] [client/control.go:172] [00df7d0c96f13bef] [xssh-***] start proxy success
2025-05-29 00:11:47.541 [D] [proxy/proxy_wrapper.go:265] [00df7d0c96f13bef] [xssh-***] start a new work connection, localAddr: 192.168.3.36:49798 remoteAddr: 198.12.120.218:114
2025-05-29 00:11:47.729 [D] [proxy/proxy_wrapper.go:265] [00df7d0c96f13bef] [xrdp-***] start a new work connection, localAddr: 192.168.3.36:49798 remoteAddr: 198.12.120.218:114
2025-05-29 00:11:48.105 [I] [proxy/xtcp.go:72] [00df7d0c96f13bef] [xssh-***] nathole prepare success, nat type: EasyNAT, behavior: BehaviorNoChange, addresses: [*.*.*.*:10447 *.*.*.*:10447], assistedAddresses: [192.168.201.3:63422 100.64.0.19:63422 192.168.3.36:63422]
2025-05-29 00:11:48.528 [I] [proxy/xtcp.go:72] [00df7d0c96f13bef] [xrdp-***] nathole prepare success, nat type: EasyNAT, behavior: BehaviorNoChange, addresses: [*.*.*.*:10451 *.*.*.*:10451], assistedAddresses: [192.168.201.3:56136 100.64.0.19:56136 192.168.3.36:56136]
2025-05-29 00:11:48.710 [I] [proxy/xtcp.go:93] [00df7d0c96f13bef] [xrdp-***] get natHoleRespMsg, sid [1748502707174c647950cd990c], protocol [quic], candidate address [*.*.*.*:10430], assisted address [100.64.0.4:61419 192.168.3.3:61419 192.168.201.2:61419 10.147.18.108:61419], detectBehavior: {Role:receiver Mode:0 TTL:7 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0}
2025-05-29 00:11:49.287 [I] [proxy/xtcp.go:93] [00df7d0c96f13bef] [xssh-***] get natHoleRespMsg, sid [174850270769b8265b22eb6757], protocol [quic], candidate address [*.*.*.*:10431], assisted address [100.64.0.4:61418 192.168.3.3:61418 192.168.201.2:61418 10.147.18.108:61418], detectBehavior: {Role:sender Mode:0 TTL:0 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0}
2025-05-29 00:11:49.289 [D] [nathole/nathole.go:292] [00df7d0c96f13bef] [xssh-***] get udp message local 0.0.0.0:63422, from 192.168.3.3:61418
2025-05-29 00:11:49.290 [I] [proxy/xtcp.go:109] [00df7d0c96f13bef] [xssh-***] establishing nat hole connection successful, sid [174850270769b8265b22eb6757], remoteAddr [192.168.3.3:61418]
2025-05-29 00:11:49.707 [D] [nathole/nathole.go:292] [00df7d0c96f13bef] [xrdp-***] get udp message local 0.0.0.0:56136, from 192.168.3.3:61419
2025-05-29 00:11:49.707 [I] [proxy/xtcp.go:109] [00df7d0c96f13bef] [xrdp-***] establishing nat hole connection successful, sid [1748502707174c647950cd990c], remoteAddr [192.168.3.3:61419]
2025-05-29 00:11:57.249 [D] [proxy/proxy.go:219] [00df7d0c96f13bef] [xssh-***] join connections, localConn(l[127.0.0.1:49799] r[127.0.0.1:22]) workConn(l[0.0.0.0:63422] r[192.168.3.3:61418])
2025-05-29 00:11:57.251 [D] [proxy/proxy.go:231] [00df7d0c96f13bef] [xssh-***] join connections closed
2025-05-29 00:12:10.515 [D] [proxy/proxy.go:219] [00df7d0c96f13bef] [xrdp-***] join connections, localConn(l[127.0.0.1:49800] r[127.0.0.1:3389]) workConn(l[0.0.0.0:56136] r[192.168.3.3:61419])
2025-05-29 00:13:16.596 [D] [proxy/proxy.go:219] [00df7d0c96f13bef] [xssh-***] join connections, localConn(l[127.0.0.1:49802] r[127.0.0.1:22]) workConn(l[0.0.0.0:63422] r[192.168.3.3:61418])
2025-05-29 00:13:16.597 [D] [proxy/proxy.go:231] [00df7d0c96f13bef] [xssh-***] join connections closed
2025-05-29 00:13:16.597 [D] [proxy/proxy.go:231] [00df7d0c96f13bef] [xrdp-***] join connections closed
2025-05-29 00:13:16.597 [D] [proxy/proxy.go:219] [00df7d0c96f13bef] [xrdp-***] join connections, localConn(l[127.0.0.1:49803] r[127.0.0.1:3389]) workConn(l[0.0.0.0:56136] r[192.168.3.3:61419])
2025-05-29 00:13:16.598 [D] [proxy/proxy.go:231] [00df7d0c96f13bef] [xrdp-***] join connections closed
2025-05-29 00:14:46.594 [D] [proxy/proxy.go:219] [00df7d0c96f13bef] [xrdp-***] join connections, localConn(l[127.0.0.1:49806] r[127.0.0.1:3389]) workConn(l[0.0.0.0:56136] r[192.168.3.3:61419])
2025-05-29 00:14:46.594 [D] [proxy/proxy.go:219] [00df7d0c96f13bef] [xssh-***] join connections, localConn(l[127.0.0.1:49807] r[127.0.0.1:22]) workConn(l[0.0.0.0:63422] r[192.168.3.3:61418])
2025-05-29 00:14:46.594 [D] [proxy/proxy.go:231] [00df7d0c96f13bef] [xrdp-***] join connections closed
2025-05-29 00:14:46.594 [D] [proxy/proxy.go:231] [00df7d0c96f13bef] [xssh-***] join connections closed

Visitor

2025-05-29 15:11:47.029 [I] [sub/root.go:149] start frpc service for config file [.\visitor.toml]
2025-05-29 15:11:47.030 [I] [client/service.go:314] try to connect to server...
2025-05-29 15:11:47.660 [I] [client/service.go:306] [ece96c3da62403b2] login to server success, get run id [ece96c3da62403b2]
2025-05-29 15:11:47.660 [I] [visitor/visitor_manager.go:128] [ece96c3da62403b2] start visitor success
2025-05-29 15:11:47.661 [I] [visitor/visitor_manager.go:128] [ece96c3da62403b2] start visitor success
2025-05-29 15:11:47.661 [I] [visitor/visitor_manager.go:128] [ece96c3da62403b2] start visitor success
2025-05-29 15:11:47.662 [I] [visitor/visitor_manager.go:128] [ece96c3da62403b2] start visitor success
2025-05-29 15:11:47.662 [I] [visitor/visitor_manager.go:179] [ece96c3da62403b2] visitor added: [rdp xrdp ssh xssh]
2025-05-29 15:11:48.415 [I] [visitor/xtcp.go:287] [ece96c3da62403b2] [xssh] nathole prepare success, nat type: EasyNAT, behavior: BehaviorNoChange, addresses: [*.*.*.*:10431 *.*.*.*:10431], assistedAddresses: [100.64.0.4:61418 192.168.3.3:61418 192.168.201.2:61418 10.147.18.108:61418]
2025-05-29 15:11:48.425 [I] [visitor/xtcp.go:287] [ece96c3da62403b2] [xrdp] nathole prepare success, nat type: EasyNAT, behavior: BehaviorNoChange, addresses: [*.*.*.*:10430 *.*.*.*:10430], assistedAddresses: [100.64.0.4:61419 192.168.3.3:61419 192.168.201.2:61419 10.147.18.108:61419]
2025-05-29 15:11:49.352 [I] [visitor/xtcp.go:313] [ece96c3da62403b2] [xssh] get natHoleRespMsg, sid [174850270769b8265b22eb6757], protocol [quic], candidate address [*.*.*.*:10447], assisted address [192.168.201.3:63422 100.64.0.19:63422 192.168.3.36:63422], detectBehavior: {Role:receiver Mode:0 TTL:7 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0}
2025-05-29 15:11:50.353 [D] [nathole/nathole.go:292] [ece96c3da62403b2] [xssh] get udp message local 0.0.0.0:61418, from 192.168.3.36:63422
2025-05-29 15:11:50.354 [I] [visitor/xtcp.go:324] [ece96c3da62403b2] [xssh] establishing nat hole connection successful, sid [174850270769b8265b22eb6757], remoteAddr [192.168.3.36:63422]
2025-05-29 15:11:50.776 [I] [visitor/xtcp.go:313] [ece96c3da62403b2] [xrdp] get natHoleRespMsg, sid [1748502707174c647950cd990c], protocol [quic], candidate address [*.*.*.*:10451], assisted address [192.168.201.3:56136 100.64.0.19:56136 192.168.3.36:56136], detectBehavior: {Role:sender Mode:0 TTL:0 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0}
2025-05-29 15:11:50.779 [D] [nathole/nathole.go:292] [ece96c3da62403b2] [xrdp] get udp message local 0.0.0.0:61419, from 192.168.3.36:56136
2025-05-29 15:11:50.780 [I] [visitor/xtcp.go:324] [ece96c3da62403b2] [xrdp] establishing nat hole connection successful, sid [1748502707174c647950cd990c], remoteAddr [192.168.3.36:56136]
2025-05-29 15:11:58.310 [D] [visitor/xtcp.go:171] [ece96c3da62403b2] [xssh] get a new xtcp user connection
2025-05-29 15:11:58.316 [D] [visitor/xtcp.go:213] [ece96c3da62403b2] [xssh] join connections closed
2025-05-29 15:12:11.578 [D] [visitor/xtcp.go:171] [ece96c3da62403b2] [xrdp] get a new xtcp user connection
2025-05-29 15:13:17.662 [D] [visitor/xtcp.go:147] [ece96c3da62403b2] [xssh] keepTunnelOpenWorker try to check tunnel...
2025-05-29 15:13:17.662 [D] [visitor/xtcp.go:154] [ece96c3da62403b2] [xssh] keepTunnelOpenWorker check success
2025-05-29 15:13:17.662 [D] [visitor/xtcp.go:147] [ece96c3da62403b2] [xrdp] keepTunnelOpenWorker try to check tunnel...
2025-05-29 15:13:17.662 [D] [visitor/xtcp.go:154] [ece96c3da62403b2] [xrdp] keepTunnelOpenWorker check success
2025-05-29 15:13:17.665 [D] [visitor/xtcp.go:213] [ece96c3da62403b2] [xrdp] join connections closed
2025-05-29 15:14:47.661 [D] [visitor/xtcp.go:147] [ece96c3da62403b2] [xrdp] keepTunnelOpenWorker try to check tunnel...
2025-05-29 15:14:47.662 [D] [visitor/xtcp.go:154] [ece96c3da62403b2] [xrdp] keepTunnelOpenWorker check success
2025-05-29 15:14:47.662 [D] [visitor/xtcp.go:147] [ece96c3da62403b2] [xssh] keepTunnelOpenWorker try to check tunnel...
2025-05-29 15:14:47.662 [D] [visitor/xtcp.go:154] [ece96c3da62403b2] [xssh] keepTunnelOpenWorker check success
<!-- gh-comment-id:2918559207 --> @tsuk1nose commented on GitHub (May 29, 2025): > 1. Please make sure that the versions of `frpc` and `frps` are the same during testing. > 2. Set the log level to `debug` and check if there are more error logs when the user tries to connect. Thank you very much for your response and support! I've now updated all the related packages to version 0.62.1 and also set the log level to debug. Unfortunately, aligning the versions did not resolve the issue. Please find the new debug logs below: ## Logs ### Server ``` 2025-05-29 15:11:04.626 [I] [frps/root.go:105] frps uses config file: /etc/frps/frps.toml 2025-05-29 15:11:05.098 [I] [server/service.go:187] tcpmux httpconnect multiplexer listen on 0.0.0.0:514, passthough: false 2025-05-29 15:11:05.099 [I] [server/service.go:237] frps tcp listen on 0.0.0.0:114 2025-05-29 15:11:05.100 [I] [frps/root.go:114] frps started successfully 2025-05-29 15:11:05.100 [I] [server/service.go:351] dashboard listen on 0.0.0.0:7500 2025-05-29 15:11:35.600 [I] [server/service.go:582] [00df7d0c96f13bef] client login info: ip [*.*.*.*:10338] version [0.62.1] hostname [] os [windows] arch [amd64] 2025-05-29 15:11:35.788 [D] [server/control.go:243] [00df7d0c96f13bef] new work connection registered 2025-05-29 15:11:35.790 [I] [server/control.go:399] [00df7d0c96f13bef] new proxy [xrdp-***] type [xtcp] success 2025-05-29 15:11:35.790 [I] [proxy/stcp.go:56] [00df7d0c96f13bef] [rdp-***] stcp proxy custom listen success 2025-05-29 15:11:35.791 [I] [server/control.go:399] [00df7d0c96f13bef] new proxy [rdp-***] type [stcp] success 2025-05-29 15:11:35.791 [I] [proxy/stcp.go:56] [00df7d0c96f13bef] [ssh-***] stcp proxy custom listen success 2025-05-29 15:11:35.791 [I] [server/control.go:399] [00df7d0c96f13bef] new proxy [ssh-***] type [stcp] success 2025-05-29 15:11:35.791 [I] [server/control.go:399] [00df7d0c96f13bef] new proxy [xssh-***] type [xtcp] success 2025-05-29 15:11:46.830 [I] [server/service.go:582] [ece96c3da62403b2] client login info: ip [*.*.*.*:10421] version [0.62.1] hostname [] os [windows] arch [amd64] 2025-05-29 15:11:47.026 [D] [server/control.go:243] [ece96c3da62403b2] new work connection registered 2025-05-29 15:11:47.780 [D] [server/control.go:272] [00df7d0c96f13bef] get work connection from pool 2025-05-29 15:11:47.780 [D] [proxy/proxy.go:131] [00df7d0c96f13bef] [xssh-***] get a new work connection: [*.*.*.*:10338] 2025-05-29 15:11:47.964 [D] [server/control.go:243] [00df7d0c96f13bef] new work connection registered 2025-05-29 15:11:47.964 [D] [proxy/proxy.go:131] [00df7d0c96f13bef] [xrdp-***] get a new work connection: [*.*.*.*:10338] 2025-05-29 15:11:47.974 [D] [server/control.go:243] [00df7d0c96f13bef] new work connection registered 2025-05-29 15:11:48.389 [D] [server/control.go:243] [00df7d0c96f13bef] new work connection registered 2025-05-29 15:11:48.528 [D] [nathole/controller.go:362] sid [174850270769b8265b22eb6757] visitor nat: {NatType:EasyNAT Behavior:BehaviorNoChange PortsDifference:0 RegularPortsChange:false PublicNetwork:false}, candidateAddrs: [*.*.*.*:10431 ]; client nat: {NatType:EasyNAT Behavior:BehaviorNoChange PortsDifference:0 RegularPortsChange:false PublicNetwork:false}, candidateAddrs: [*.*.*.*:10447 ], protocol: quic 2025-05-29 15:11:48.529 [D] [nathole/controller.go:364] sid [174850270769b8265b22eb6757] visitor detect behavior: {Role:receiver Mode:0 TTL:7 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0} 2025-05-29 15:11:48.529 [D] [nathole/controller.go:365] sid [174850270769b8265b22eb6757] client detect behavior: {Role:sender Mode:0 TTL:0 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0} 2025-05-29 15:11:48.953 [D] [nathole/controller.go:362] sid [1748502707174c647950cd990c] visitor nat: {NatType:EasyNAT Behavior:BehaviorNoChange PortsDifference:0 RegularPortsChange:false PublicNetwork:false}, candidateAddrs: [*.*.*.*:10430 ]; client nat: {NatType:EasyNAT Behavior:BehaviorNoChange PortsDifference:0 RegularPortsChange:false PublicNetwork:false}, candidateAddrs: [*.*.*.*:10451 ], protocol: quic 2025-05-29 15:11:48.953 [D] [nathole/controller.go:364] sid [1748502707174c647950cd990c] visitor detect behavior: {Role:sender Mode:0 TTL:0 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0} 2025-05-29 15:11:48.953 [D] [nathole/controller.go:365] sid [1748502707174c647950cd990c] client detect behavior: {Role:receiver Mode:0 TTL:7 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0} 2025-05-29 15:11:49.713 [I] [nathole/controller.go:280] sid [174850270769b8265b22eb6757] report make hole success: true, mode 0, index 0 2025-05-29 15:11:50.137 [I] [nathole/controller.go:280] sid [1748502707174c647950cd990c] report make hole success: true, mode 0, index 1 ``` ### Proxy ``` 2025-05-29 00:11:34.763 [I] [sub/root.go:149] start frpc service for config file [./frpc.toml] 2025-05-29 00:11:34.764 [I] [client/service.go:314] try to connect to server... 2025-05-29 00:11:35.364 [I] [client/service.go:306] [00df7d0c96f13bef] login to server success, get run id [00df7d0c96f13bef] 2025-05-29 00:11:35.364 [I] [proxy/proxy_manager.go:177] [00df7d0c96f13bef] proxy added: [rdp-*** xrdp-*** ssh-*** xssh-***] 2025-05-29 00:11:35.548 [I] [client/control.go:172] [00df7d0c96f13bef] [xrdp-***] start proxy success 2025-05-29 00:11:35.548 [I] [client/control.go:172] [00df7d0c96f13bef] [rdp-***] start proxy success 2025-05-29 00:11:35.548 [I] [client/control.go:172] [00df7d0c96f13bef] [ssh-***] start proxy success 2025-05-29 00:11:35.550 [I] [client/control.go:172] [00df7d0c96f13bef] [xssh-***] start proxy success 2025-05-29 00:11:47.541 [D] [proxy/proxy_wrapper.go:265] [00df7d0c96f13bef] [xssh-***] start a new work connection, localAddr: 192.168.3.36:49798 remoteAddr: 198.12.120.218:114 2025-05-29 00:11:47.729 [D] [proxy/proxy_wrapper.go:265] [00df7d0c96f13bef] [xrdp-***] start a new work connection, localAddr: 192.168.3.36:49798 remoteAddr: 198.12.120.218:114 2025-05-29 00:11:48.105 [I] [proxy/xtcp.go:72] [00df7d0c96f13bef] [xssh-***] nathole prepare success, nat type: EasyNAT, behavior: BehaviorNoChange, addresses: [*.*.*.*:10447 *.*.*.*:10447], assistedAddresses: [192.168.201.3:63422 100.64.0.19:63422 192.168.3.36:63422] 2025-05-29 00:11:48.528 [I] [proxy/xtcp.go:72] [00df7d0c96f13bef] [xrdp-***] nathole prepare success, nat type: EasyNAT, behavior: BehaviorNoChange, addresses: [*.*.*.*:10451 *.*.*.*:10451], assistedAddresses: [192.168.201.3:56136 100.64.0.19:56136 192.168.3.36:56136] 2025-05-29 00:11:48.710 [I] [proxy/xtcp.go:93] [00df7d0c96f13bef] [xrdp-***] get natHoleRespMsg, sid [1748502707174c647950cd990c], protocol [quic], candidate address [*.*.*.*:10430], assisted address [100.64.0.4:61419 192.168.3.3:61419 192.168.201.2:61419 10.147.18.108:61419], detectBehavior: {Role:receiver Mode:0 TTL:7 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0} 2025-05-29 00:11:49.287 [I] [proxy/xtcp.go:93] [00df7d0c96f13bef] [xssh-***] get natHoleRespMsg, sid [174850270769b8265b22eb6757], protocol [quic], candidate address [*.*.*.*:10431], assisted address [100.64.0.4:61418 192.168.3.3:61418 192.168.201.2:61418 10.147.18.108:61418], detectBehavior: {Role:sender Mode:0 TTL:0 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0} 2025-05-29 00:11:49.289 [D] [nathole/nathole.go:292] [00df7d0c96f13bef] [xssh-***] get udp message local 0.0.0.0:63422, from 192.168.3.3:61418 2025-05-29 00:11:49.290 [I] [proxy/xtcp.go:109] [00df7d0c96f13bef] [xssh-***] establishing nat hole connection successful, sid [174850270769b8265b22eb6757], remoteAddr [192.168.3.3:61418] 2025-05-29 00:11:49.707 [D] [nathole/nathole.go:292] [00df7d0c96f13bef] [xrdp-***] get udp message local 0.0.0.0:56136, from 192.168.3.3:61419 2025-05-29 00:11:49.707 [I] [proxy/xtcp.go:109] [00df7d0c96f13bef] [xrdp-***] establishing nat hole connection successful, sid [1748502707174c647950cd990c], remoteAddr [192.168.3.3:61419] 2025-05-29 00:11:57.249 [D] [proxy/proxy.go:219] [00df7d0c96f13bef] [xssh-***] join connections, localConn(l[127.0.0.1:49799] r[127.0.0.1:22]) workConn(l[0.0.0.0:63422] r[192.168.3.3:61418]) 2025-05-29 00:11:57.251 [D] [proxy/proxy.go:231] [00df7d0c96f13bef] [xssh-***] join connections closed 2025-05-29 00:12:10.515 [D] [proxy/proxy.go:219] [00df7d0c96f13bef] [xrdp-***] join connections, localConn(l[127.0.0.1:49800] r[127.0.0.1:3389]) workConn(l[0.0.0.0:56136] r[192.168.3.3:61419]) 2025-05-29 00:13:16.596 [D] [proxy/proxy.go:219] [00df7d0c96f13bef] [xssh-***] join connections, localConn(l[127.0.0.1:49802] r[127.0.0.1:22]) workConn(l[0.0.0.0:63422] r[192.168.3.3:61418]) 2025-05-29 00:13:16.597 [D] [proxy/proxy.go:231] [00df7d0c96f13bef] [xssh-***] join connections closed 2025-05-29 00:13:16.597 [D] [proxy/proxy.go:231] [00df7d0c96f13bef] [xrdp-***] join connections closed 2025-05-29 00:13:16.597 [D] [proxy/proxy.go:219] [00df7d0c96f13bef] [xrdp-***] join connections, localConn(l[127.0.0.1:49803] r[127.0.0.1:3389]) workConn(l[0.0.0.0:56136] r[192.168.3.3:61419]) 2025-05-29 00:13:16.598 [D] [proxy/proxy.go:231] [00df7d0c96f13bef] [xrdp-***] join connections closed 2025-05-29 00:14:46.594 [D] [proxy/proxy.go:219] [00df7d0c96f13bef] [xrdp-***] join connections, localConn(l[127.0.0.1:49806] r[127.0.0.1:3389]) workConn(l[0.0.0.0:56136] r[192.168.3.3:61419]) 2025-05-29 00:14:46.594 [D] [proxy/proxy.go:219] [00df7d0c96f13bef] [xssh-***] join connections, localConn(l[127.0.0.1:49807] r[127.0.0.1:22]) workConn(l[0.0.0.0:63422] r[192.168.3.3:61418]) 2025-05-29 00:14:46.594 [D] [proxy/proxy.go:231] [00df7d0c96f13bef] [xrdp-***] join connections closed 2025-05-29 00:14:46.594 [D] [proxy/proxy.go:231] [00df7d0c96f13bef] [xssh-***] join connections closed ``` ### Visitor ``` 2025-05-29 15:11:47.029 [I] [sub/root.go:149] start frpc service for config file [.\visitor.toml] 2025-05-29 15:11:47.030 [I] [client/service.go:314] try to connect to server... 2025-05-29 15:11:47.660 [I] [client/service.go:306] [ece96c3da62403b2] login to server success, get run id [ece96c3da62403b2] 2025-05-29 15:11:47.660 [I] [visitor/visitor_manager.go:128] [ece96c3da62403b2] start visitor success 2025-05-29 15:11:47.661 [I] [visitor/visitor_manager.go:128] [ece96c3da62403b2] start visitor success 2025-05-29 15:11:47.661 [I] [visitor/visitor_manager.go:128] [ece96c3da62403b2] start visitor success 2025-05-29 15:11:47.662 [I] [visitor/visitor_manager.go:128] [ece96c3da62403b2] start visitor success 2025-05-29 15:11:47.662 [I] [visitor/visitor_manager.go:179] [ece96c3da62403b2] visitor added: [rdp xrdp ssh xssh] 2025-05-29 15:11:48.415 [I] [visitor/xtcp.go:287] [ece96c3da62403b2] [xssh] nathole prepare success, nat type: EasyNAT, behavior: BehaviorNoChange, addresses: [*.*.*.*:10431 *.*.*.*:10431], assistedAddresses: [100.64.0.4:61418 192.168.3.3:61418 192.168.201.2:61418 10.147.18.108:61418] 2025-05-29 15:11:48.425 [I] [visitor/xtcp.go:287] [ece96c3da62403b2] [xrdp] nathole prepare success, nat type: EasyNAT, behavior: BehaviorNoChange, addresses: [*.*.*.*:10430 *.*.*.*:10430], assistedAddresses: [100.64.0.4:61419 192.168.3.3:61419 192.168.201.2:61419 10.147.18.108:61419] 2025-05-29 15:11:49.352 [I] [visitor/xtcp.go:313] [ece96c3da62403b2] [xssh] get natHoleRespMsg, sid [174850270769b8265b22eb6757], protocol [quic], candidate address [*.*.*.*:10447], assisted address [192.168.201.3:63422 100.64.0.19:63422 192.168.3.36:63422], detectBehavior: {Role:receiver Mode:0 TTL:7 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0} 2025-05-29 15:11:50.353 [D] [nathole/nathole.go:292] [ece96c3da62403b2] [xssh] get udp message local 0.0.0.0:61418, from 192.168.3.36:63422 2025-05-29 15:11:50.354 [I] [visitor/xtcp.go:324] [ece96c3da62403b2] [xssh] establishing nat hole connection successful, sid [174850270769b8265b22eb6757], remoteAddr [192.168.3.36:63422] 2025-05-29 15:11:50.776 [I] [visitor/xtcp.go:313] [ece96c3da62403b2] [xrdp] get natHoleRespMsg, sid [1748502707174c647950cd990c], protocol [quic], candidate address [*.*.*.*:10451], assisted address [192.168.201.3:56136 100.64.0.19:56136 192.168.3.36:56136], detectBehavior: {Role:sender Mode:0 TTL:0 SendDelayMs:0 ReadTimeoutMs:5000 CandidatePorts:[] SendRandomPorts:0 ListenRandomPorts:0} 2025-05-29 15:11:50.779 [D] [nathole/nathole.go:292] [ece96c3da62403b2] [xrdp] get udp message local 0.0.0.0:61419, from 192.168.3.36:56136 2025-05-29 15:11:50.780 [I] [visitor/xtcp.go:324] [ece96c3da62403b2] [xrdp] establishing nat hole connection successful, sid [1748502707174c647950cd990c], remoteAddr [192.168.3.36:56136] 2025-05-29 15:11:58.310 [D] [visitor/xtcp.go:171] [ece96c3da62403b2] [xssh] get a new xtcp user connection 2025-05-29 15:11:58.316 [D] [visitor/xtcp.go:213] [ece96c3da62403b2] [xssh] join connections closed 2025-05-29 15:12:11.578 [D] [visitor/xtcp.go:171] [ece96c3da62403b2] [xrdp] get a new xtcp user connection 2025-05-29 15:13:17.662 [D] [visitor/xtcp.go:147] [ece96c3da62403b2] [xssh] keepTunnelOpenWorker try to check tunnel... 2025-05-29 15:13:17.662 [D] [visitor/xtcp.go:154] [ece96c3da62403b2] [xssh] keepTunnelOpenWorker check success 2025-05-29 15:13:17.662 [D] [visitor/xtcp.go:147] [ece96c3da62403b2] [xrdp] keepTunnelOpenWorker try to check tunnel... 2025-05-29 15:13:17.662 [D] [visitor/xtcp.go:154] [ece96c3da62403b2] [xrdp] keepTunnelOpenWorker check success 2025-05-29 15:13:17.665 [D] [visitor/xtcp.go:213] [ece96c3da62403b2] [xrdp] join connections closed 2025-05-29 15:14:47.661 [D] [visitor/xtcp.go:147] [ece96c3da62403b2] [xrdp] keepTunnelOpenWorker try to check tunnel... 2025-05-29 15:14:47.662 [D] [visitor/xtcp.go:154] [ece96c3da62403b2] [xrdp] keepTunnelOpenWorker check success 2025-05-29 15:14:47.662 [D] [visitor/xtcp.go:147] [ece96c3da62403b2] [xssh] keepTunnelOpenWorker try to check tunnel... 2025-05-29 15:14:47.662 [D] [visitor/xtcp.go:154] [ece96c3da62403b2] [xssh] keepTunnelOpenWorker check success ```
Author
Owner

@fatedier commented on GitHub (May 29, 2025):

I didn't find anything unusual. You can forward a local nginx HTTP port and use curl to test it, and observe the error message from curl.

<!-- gh-comment-id:2918570395 --> @fatedier commented on GitHub (May 29, 2025): I didn't find anything unusual. You can forward a local nginx HTTP port and use curl to test it, and observe the error message from curl.
Author
Owner

@tsuk1nose commented on GitHub (May 29, 2025):

I didn't find anything unusual. You can forward a local nginx HTTP port and use curl to test it, and observe the error message from curl.

I’ve tested both STCP and XTCP using curl and an Nginx server. STCP works fine, but when using XTCP, I consistently receive the following error:

curl: (52) Empty reply from server

Curl test results

STCP

15:45:09.017637 == Info:   Trying 127.0.0.1:10080...
15:45:09.025716 == Info: Connected to localhost (127.0.0.1) port 10080 (#0)
15:45:09.025832 => Send header, 79 bytes (0x4f)
0000: GET / HTTP/1.1
0010: Host: localhost:10080
0027: User-Agent: curl/7.88.1
0040: Accept: */*
004d:
15:45:09.592101 <= Recv header, 17 bytes (0x11)
0000: HTTP/1.1 200 OK
15:45:09.592269 <= Recv header, 22 bytes (0x16)
0000: Server: nginx/1.28.0
15:45:09.592354 <= Recv header, 37 bytes (0x25)
0000: Date: Thu, 29 May 2025 07:45:08 GMT
15:45:09.592781 <= Recv header, 25 bytes (0x19)
0000: Content-Type: text/html
15:45:09.592890 <= Recv header, 21 bytes (0x15)
0000: Content-Length: 615
15:45:09.592956 <= Recv header, 46 bytes (0x2e)
0000: Last-Modified: Wed, 23 Apr 2025 11:48:54 GMT
15:45:09.593014 <= Recv header, 24 bytes (0x18)
0000: Connection: keep-alive
15:45:09.593067 <= Recv header, 22 bytes (0x16)
0000: ETag: "6808d3a6-267"
15:45:09.593120 <= Recv header, 22 bytes (0x16)
0000: Accept-Ranges: bytes
15:45:09.593173 <= Recv header, 2 bytes (0x2)
0000:
15:45:09.593223 <= Recv data, 615 bytes (0x267)
0000: <!DOCTYPE html>.<html>.<head>.<title>Welcome to nginx!</title>.<
0040: style>.html { color-scheme: light dark; }.body { width: 35em; ma
0080: rgin: 0 auto;.font-family: Tahoma, Verdana, Arial, sans-serif; }
00c0: .</style>.</head>.<body>.<h1>Welcome to nginx!</h1>.<p>If you se
0100: e this page, the nginx web server is successfully installed and.
0140: working. Further configuration is required.</p>..<p>For online d
0180: ocumentation and support please refer to.<a href="http://nginx.o
01c0: rg/">nginx.org</a>.<br/>.Commercial support is available at.<a h
0200: ref="http://nginx.com/">nginx.com</a>.</p>..<p><em>Thank you for
0240:  using nginx.</em></p>.</body>.</html>.
15:45:09.601389 == Info: Connection #0 to host localhost left intact

XTCP

15:45:53.890193 == Info:   Trying 127.0.0.1:20080...
15:45:53.890957 == Info: Connected to localhost (127.0.0.1) port 20080 (#0)
15:45:53.891083 => Send header, 79 bytes (0x4f)
0000: GET / HTTP/1.1
0010: Host: localhost:20080
0027: User-Agent: curl/7.88.1
0040: Accept: */*
004d:
15:45:53.894794 == Info: Empty reply from server
15:45:53.899232 == Info: Closing connection 0
<!-- gh-comment-id:2918626389 --> @tsuk1nose commented on GitHub (May 29, 2025): > I didn't find anything unusual. You can forward a local nginx HTTP port and use curl to test it, and observe the error message from curl. I’ve tested both STCP and XTCP using curl and an Nginx server. STCP works fine, but when using XTCP, I consistently receive the following error: ``` curl: (52) Empty reply from server ``` ## Curl test results ### STCP ``` 15:45:09.017637 == Info: Trying 127.0.0.1:10080... 15:45:09.025716 == Info: Connected to localhost (127.0.0.1) port 10080 (#0) 15:45:09.025832 => Send header, 79 bytes (0x4f) 0000: GET / HTTP/1.1 0010: Host: localhost:10080 0027: User-Agent: curl/7.88.1 0040: Accept: */* 004d: 15:45:09.592101 <= Recv header, 17 bytes (0x11) 0000: HTTP/1.1 200 OK 15:45:09.592269 <= Recv header, 22 bytes (0x16) 0000: Server: nginx/1.28.0 15:45:09.592354 <= Recv header, 37 bytes (0x25) 0000: Date: Thu, 29 May 2025 07:45:08 GMT 15:45:09.592781 <= Recv header, 25 bytes (0x19) 0000: Content-Type: text/html 15:45:09.592890 <= Recv header, 21 bytes (0x15) 0000: Content-Length: 615 15:45:09.592956 <= Recv header, 46 bytes (0x2e) 0000: Last-Modified: Wed, 23 Apr 2025 11:48:54 GMT 15:45:09.593014 <= Recv header, 24 bytes (0x18) 0000: Connection: keep-alive 15:45:09.593067 <= Recv header, 22 bytes (0x16) 0000: ETag: "6808d3a6-267" 15:45:09.593120 <= Recv header, 22 bytes (0x16) 0000: Accept-Ranges: bytes 15:45:09.593173 <= Recv header, 2 bytes (0x2) 0000: 15:45:09.593223 <= Recv data, 615 bytes (0x267) 0000: <!DOCTYPE html>.<html>.<head>.<title>Welcome to nginx!</title>.< 0040: style>.html { color-scheme: light dark; }.body { width: 35em; ma 0080: rgin: 0 auto;.font-family: Tahoma, Verdana, Arial, sans-serif; } 00c0: .</style>.</head>.<body>.<h1>Welcome to nginx!</h1>.<p>If you se 0100: e this page, the nginx web server is successfully installed and. 0140: working. Further configuration is required.</p>..<p>For online d 0180: ocumentation and support please refer to.<a href="http://nginx.o 01c0: rg/">nginx.org</a>.<br/>.Commercial support is available at.<a h 0200: ref="http://nginx.com/">nginx.com</a>.</p>..<p><em>Thank you for 0240: using nginx.</em></p>.</body>.</html>. 15:45:09.601389 == Info: Connection #0 to host localhost left intact ``` ### XTCP ``` 15:45:53.890193 == Info: Trying 127.0.0.1:20080... 15:45:53.890957 == Info: Connected to localhost (127.0.0.1) port 20080 (#0) 15:45:53.891083 => Send header, 79 bytes (0x4f) 0000: GET / HTTP/1.1 0010: Host: localhost:20080 0027: User-Agent: curl/7.88.1 0040: Accept: */* 004d: 15:45:53.894794 == Info: Empty reply from server 15:45:53.899232 == Info: Closing connection 0 ```
Author
Owner

@fatedier commented on GitHub (May 29, 2025):

transport.useEncryption = true
transport.useCompression = true

The useEncryption and useCompression parameters must be the same on both proxies and visitors.
Since QUIC is encrypted by default, you don't need to set them.

<!-- gh-comment-id:2918649371 --> @fatedier commented on GitHub (May 29, 2025): ``` transport.useEncryption = true transport.useCompression = true ``` The useEncryption and useCompression parameters must be the same on both proxies and visitors. Since QUIC is encrypted by default, you don't need to set them.
Author
Owner

@tsuk1nose commented on GitHub (May 29, 2025):

transport.useEncryption = true
transport.useCompression = true

The useEncryption and useCompression parameters must be the same on both proxies and visitors. Since QUIC is encrypted by default, you don't need to set them.

Ah, that was exactly the issue! The problem is now resolved, and the connection can be established successfully. I guess I’ll have to be a bit more careful with copy-pasting configurations next time 😂

It might be helpful to improve the configuration validation a bit—perhaps the program could throw an error when certain settings are misconfigured by the user.

Thank you so much for taking the time to help me with this.
Have a great day!

<!-- gh-comment-id:2918672774 --> @tsuk1nose commented on GitHub (May 29, 2025): > ``` > transport.useEncryption = true > transport.useCompression = true > ``` > > The useEncryption and useCompression parameters must be the same on both proxies and visitors. Since QUIC is encrypted by default, you don't need to set them. Ah, that was exactly the issue! The problem is now resolved, and the connection can be established successfully. I guess I’ll have to be a bit more careful with copy-pasting configurations next time 😂 It might be helpful to improve the configuration validation a bit—perhaps the program could throw an error when certain settings are misconfigured by the user. Thank you so much for taking the time to help me with this. Have a great day!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/frp#3807
No description provided.