[GH-ISSUE #1129] xtcp失败 #884

Closed
opened 2026-05-05 12:33:42 -06:00 by gitea-mirror · 12 comments
Owner

Originally created by @duhd1993 on GitHub (Mar 12, 2019).
Original GitHub issue: https://github.com/fatedier/frp/issues/1129

Issue is only used for submiting bug report and documents typo. If there are same issues or answers can be found in documents, we will close it directly.
(为了节约时间,提高处理问题的效率,不按照格式填写的 issue 将会直接关闭。)

Use the commands below to provide key information from your environment:
You do NOT have to include this information if this is a FEATURE REQUEST

What version of frp are you using (./frpc -v or ./frps -v)?
v0.25.0

What operating system and processor architecture are you using (go env)?
server centos 7 x64
client win10 x64

Configures you used:
[common]
server_addr = xxx.xxx.xxx.xxx
server_port = 7000
token = 123456

[p2p_rdp_visitor]
type = xtcp
role = visitor
server_name = p2p_rdp
sk = abcdefg
bind_addr = 127.0.0.1
bind_port = 6000

Steps to reproduce the issue:
1.NA
2.NA
3.NA

Describe the results you received:
尝试rdp链接时
2019/03/12 06:52:26 [W] [visitor.go:276] [p2p_rdp_visitor] get sid from client error: read udp 192.168.1.102:60463->xx.xx.xx.xx:63448: i/o timeout
之前版本没有问题
被链接的client是公网IP,但是端口被防火墙屏蔽。
Report一下,退回之前版本继续使用。

Describe the results you expected:

Additional information you deem important (e.g. issue happens only occasionally):

Can you point out what caused this issue (optional)

Originally created by @duhd1993 on GitHub (Mar 12, 2019). Original GitHub issue: https://github.com/fatedier/frp/issues/1129 Issue is only used for submiting bug report and documents typo. If there are same issues or answers can be found in documents, we will close it directly. (为了节约时间,提高处理问题的效率,不按照格式填写的 issue 将会直接关闭。) Use the commands below to provide key information from your environment: You do NOT have to include this information if this is a FEATURE REQUEST **What version of frp are you using (./frpc -v or ./frps -v)?** v0.25.0 **What operating system and processor architecture are you using (`go env`)?** server centos 7 x64 client win10 x64 **Configures you used:** [common] server_addr = xxx.xxx.xxx.xxx server_port = 7000 token = 123456 [p2p_rdp_visitor] type = xtcp role = visitor server_name = p2p_rdp sk = abcdefg bind_addr = 127.0.0.1 bind_port = 6000 **Steps to reproduce the issue:** 1.NA 2.NA 3.NA **Describe the results you received:** 尝试rdp链接时 2019/03/12 06:52:26 [W] [visitor.go:276] [p2p_rdp_visitor] get sid from client error: read udp 192.168.1.102:60463->xx.xx.xx.xx:63448: i/o timeout **之前版本没有问题** 被链接的client是公网IP,但是端口被防火墙屏蔽。 Report一下,退回之前版本继续使用。 **Describe the results you expected:** **Additional information you deem important (e.g. issue happens only occasionally):** **Can you point out what caused this issue (optional)**
gitea-mirror 2026-05-05 12:33:42 -06:00
Author
Owner

@fatedier commented on GitHub (Mar 12, 2019):

你试一下两边 server 和 visitor 对换一下看能否穿透?

<!-- gh-comment-id:471981958 --> @fatedier commented on GitHub (Mar 12, 2019): 你试一下两边 server 和 visitor 对换一下看能否穿透?
Author
Owner

@duhd1993 commented on GitHub (Mar 20, 2019):

你好,反向是可以穿透的。0.25.1我也测试了,结果一样。
A-路由器nat-公网ip
B(公网IP)-防火墙屏蔽部分连入端口
B连A可以,A连B不行。0.25之前双向都行。

<!-- gh-comment-id:474636028 --> @duhd1993 commented on GitHub (Mar 20, 2019): 你好,反向是可以穿透的。0.25.1我也测试了,结果一样。 A-路由器nat-公网ip B(公网IP)-防火墙屏蔽部分连入端口 B连A可以,A连B不行。0.25之前双向都行。
Author
Owner

@zjy2931 commented on GitHub (Jun 3, 2019):

这个问题明确原因吗 会在什么时候修复鸭,期待。。。

<!-- gh-comment-id:498095960 --> @zjy2931 commented on GitHub (Jun 3, 2019): 这个问题明确原因吗 会在什么时候修复鸭,期待。。。
Author
Owner

@sunnysab commented on GitHub (Jul 22, 2019):

类似问题。visitor这边我有公网ip,但是rdp同样问题。

<!-- gh-comment-id:513612802 --> @sunnysab commented on GitHub (Jul 22, 2019): 类似问题。visitor这边我有公网ip,但是rdp同样问题。
Author
Owner

@lcl-101 commented on GitHub (Aug 2, 2019):

get sid from client error: read udp xx.xx.xx.xx:52624: i/o timeout
我这边也是有同样的问题, ssh -oPort=8900 lichenglong@127.0.0.1 在连接时候就会这样

<!-- gh-comment-id:517520322 --> @lcl-101 commented on GitHub (Aug 2, 2019): get sid from client error: read udp xx.xx.xx.xx:52624: i/o timeout 我这边也是有同样的问题, ssh -oPort=8900 lichenglong@127.0.0.1 在连接时候就会这样
Author
Owner

@mrnyg commented on GitHub (Aug 2, 2019):

版本 0.27.0 frps: ubuntu18.04 amd64, frpc: win7 64, visitor: ubuntu18.0 amd64
开始连接后一段时间,连接失败;
visitor报错:[visitor.go:233][p2pXXX] get natHoleRespMsg error: read udp xx.xx.xx.xx:xxx->xx.xx.xx.xx:xxx :i/o timeout
frpc无响应 frps无响应

<!-- gh-comment-id:517535490 --> @mrnyg commented on GitHub (Aug 2, 2019): 版本 0.27.0 frps: ubuntu18.04 amd64, frpc: win7 64, visitor: ubuntu18.0 amd64 开始连接后一段时间,连接失败; visitor报错:[visitor.go:233][p2pXXX] get natHoleRespMsg error: read udp xx.xx.xx.xx:xxx->xx.xx.xx.xx:xxx :i/o timeout frpc无响应 frps无响应
Author
Owner

@lcl-101 commented on GitHub (Aug 2, 2019):

版本 0.27.0 frps CentOS 7.2 64位, frpc: ubuntu16.04 386, visitor: frpc macOs 10.12.6
[W] [visitor.go:276] [p2p_ssh_visitor] get sid from client error: read udp 192.168.103.185:52705->223.72.51.64:19412: i/o timeout

<!-- gh-comment-id:517602605 --> @lcl-101 commented on GitHub (Aug 2, 2019): 版本 0.27.0 frps CentOS 7.2 64位, frpc: ubuntu16.04 386, visitor: frpc macOs 10.12.6 [W] [visitor.go:276] [p2p_ssh_visitor] get sid from client error: read udp 192.168.103.185:52705->223.72.51.64:19412: i/o timeout
Author
Owner

@haoyunph commented on GitHub (Sep 18, 2019):

1.frps.ini
[common]

bind_addr = 0.0.0.0

bind_port = 7000

bind_udp_port = 7001

privilege_token = 123
2.客户端frpc.ini
[common]

server_addr = 45.104.185.157
server_port = 7000

privilege_token = 123

[rtsp]

type = xtcp

sk = aaa
local_ip = 192.168.1.250

local_port = 554
use_encryption = false

use_compression = false
3.访问客户端frpc.ini
[common]

server_addr = 45.104.185.157

server_port = 7000

privilege_token = 123

[p2p_ssh_visitor]

type = xtcp

role = visitor

server_name = rtsp

sk = aaa
bind_addr = 127.0.0.1

bind_port = 7002

use_encryption = false

use_compression = false
配置如上,我的APP(frpc-1)需要访问局域网内的RTSP/onvif协议的IPC(frpc-2),云平台为阿里云(frps),为了减轻云服务的流量负载(现在高清视频流非常耗流量),所以我参照了您的这3个配置方法,用stcp可以实现视频流实时流畅播放,但通过报文流量监测发现其经过阿里云中继(这肯定不是我想要的,多路视频流会将阿里云流量冲死)了,这也不是P2P实现,只将stcp改成xtcp后,直接播放失败,提示“ [p2p_ssh_visitor] get natHoleRespMsg error: read udp 192.168.1.80:57238->45.104.185.157:7001: i/o timeout”。我试了很多次,都是这样!请大神指教!谢谢!

<!-- gh-comment-id:532597729 --> @haoyunph commented on GitHub (Sep 18, 2019): 1.frps.ini [common] bind_addr = 0.0.0.0 bind_port = 7000 bind_udp_port = 7001 privilege_token = 123 2.客户端frpc.ini [common] server_addr = 45.104.185.157 server_port = 7000 privilege_token = 123 [rtsp] type = xtcp sk = aaa local_ip = 192.168.1.250 local_port = 554 use_encryption = false use_compression = false 3.访问客户端frpc.ini [common] server_addr = 45.104.185.157 server_port = 7000 privilege_token = 123 [p2p_ssh_visitor] type = xtcp role = visitor server_name = rtsp sk = aaa bind_addr = 127.0.0.1 bind_port = 7002 use_encryption = false use_compression = false 配置如上,我的APP(frpc-1)需要访问局域网内的RTSP/onvif协议的IPC(frpc-2),云平台为阿里云(frps),为了减轻云服务的流量负载(现在高清视频流非常耗流量),所以我参照了您的这3个配置方法,用stcp可以实现视频流实时流畅播放,但通过报文流量监测发现其经过阿里云中继(这肯定不是我想要的,多路视频流会将阿里云流量冲死)了,这也不是P2P实现,只将stcp改成xtcp后,直接播放失败,提示“ [p2p_ssh_visitor] get natHoleRespMsg error: read udp 192.168.1.80:57238->45.104.185.157:7001: i/o timeout”。我试了很多次,都是这样!请大神指教!谢谢!
Author
Owner

@quickhot commented on GitHub (Dec 25, 2019):

我也出现了这个问题,不过现在解决了。
frp version:0.27.0

frps:

frps在阿里云,由于阿里云主机只有私网地址,所以,我这里绑定的是私网IP

[common]
bind_addr = 172.16.XXX.XXX
bind_port = 6027
bind_udp_port = 6028

frpc1:

角色vistor,阿里云的另外一台机器,之前连接服务器用的私网地址,后改成公网成功!

[common]
server_addr = 47.111.XXX.XXX #这里原来是的是172.16.XXX.XXX
server_port = 6027

[p2p_cu250_ssh_visitor]
type = xtcp
role = visitor
server_name = p2p_cu250_ssh
sk = testcu
bind_addr = 127.0.0.1
bind_port = 5028

frpc2:

角色是被访问者,在家里的内网中,联通宽带,配置贴出啦配置看看

[common]
server_addr = 47.111.XXX.XXX
server_port = 6027

[p2p_cu250_ssh]
type = xtcp
sk = testcu
local_ip = 127.0.0.1
local_port = 22
use_compression = true
<!-- gh-comment-id:568910561 --> @quickhot commented on GitHub (Dec 25, 2019): 我也出现了这个问题,不过现在解决了。 **frp version:0.27.0** frps: frps在阿里云,由于阿里云主机只有私网地址,所以,我这里绑定的是私网IP ``` [common] bind_addr = 172.16.XXX.XXX bind_port = 6027 bind_udp_port = 6028 ``` frpc1: 角色vistor,阿里云的另外一台机器,之前连接服务器用的私网地址,后改成公网成功! ``` [common] server_addr = 47.111.XXX.XXX #这里原来是的是172.16.XXX.XXX server_port = 6027 [p2p_cu250_ssh_visitor] type = xtcp role = visitor server_name = p2p_cu250_ssh sk = testcu bind_addr = 127.0.0.1 bind_port = 5028 ``` frpc2: 角色是被访问者,在家里的内网中,联通宽带,配置贴出啦配置看看 ``` [common] server_addr = 47.111.XXX.XXX server_port = 6027 [p2p_cu250_ssh] type = xtcp sk = testcu local_ip = 127.0.0.1 local_port = 22 use_compression = true ```
Author
Owner

@quickhot commented on GitHub (Dec 25, 2019):

补充一句,如果使用了use_compression = true也会连接失败。

<!-- gh-comment-id:568911113 --> @quickhot commented on GitHub (Dec 25, 2019): 补充一句,如果使用了use_compression = true也会连接失败。
Author
Owner

@sunlad1 commented on GitHub (Feb 2, 2020):

我把visitor部署到一台有公网IP的服务器上,发现访问内网的client的是可以点对点的。但是如果我把visitor部署到内网,访问同一个client的,点对点是无法访问的,报get sid from client error: read udp 192.168.0.157:54421: i/o timeout。其中192.168.0.157是该visitor所在内网IP。是不是read的IP错了,应该是读我这个内网连接到公网的IP吧。用的版本是0.24.1,0.31.1试过也是xtcp失败

<!-- gh-comment-id:581142688 --> @sunlad1 commented on GitHub (Feb 2, 2020): 我把visitor部署到一台有公网IP的服务器上,发现访问内网的client的是可以点对点的。但是如果我把visitor部署到内网,访问同一个client的,点对点是无法访问的,报get sid from client error: read udp 192.168.0.157:54421: i/o timeout。其中192.168.0.157是该visitor所在内网IP。是不是read的IP错了,应该是读我这个内网连接到公网的IP吧。用的版本是0.24.1,0.31.1试过也是xtcp失败
Author
Owner

@fatedier commented on GitHub (Mar 29, 2020):

@sunlad1 vistior 部署在公网还是内网还是有区别的,内网环境在 NAT 设备后面,成功率会低一些。

<!-- gh-comment-id:605638365 --> @fatedier commented on GitHub (Mar 29, 2020): @sunlad1 vistior 部署在公网还是内网还是有区别的,内网环境在 NAT 设备后面,成功率会低一些。
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#884
No description provided.