mirror of
https://github.com/fatedier/frp.git
synced 2026-05-15 08:05:49 -06:00
[GH-ISSUE #3064] 二级域名或自定义域名总是访问同一个客户端端口 #2452
Labels
No labels
In Progress
WIP
WaitingForInfo
bug
doc
duplicate
easy
enhancement
future
help wanted
invalid
lifecycle/stale
need-issue-template
need-usage-help
no plan
proposal
pull-request
question
todo
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/frp#2452
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @ricky0829 on GitHub (Aug 18, 2022).
Original GitHub issue: https://github.com/fatedier/frp/issues/3064
Bug Description
客户端主机内网配置了两个服务,分别占用内网的 10001、20001 端口,服务端配置了 subdomain_host 为 XXX,客户端配置了两个连接,分别指向 local_port 10001 和 20001,二级域名分别为 A、B,启动后也能在服务端看到日志:
但是浏览器访问时,先访问了谁,两个二级域名就都指向了谁,比如先访问 A.XXX,是 A 服务,再访问 B.XXX 也是 A 服务;重启 fprc 后(或另起一个浏览器,或无痕访问,或清除缓存等等),先访问 B.XXX,再访问 A.XXX 就都是 B 服务。
太奇怪了吧......一开始我还没摸清这个规律,就老是 A.XXX 和 B.XXX 指向同一个服务,试了无数次发现好像是这个规律......
frpc Version
0.44.0
frps Version
0.44.0
System Architecture
linux/amd64
Configurations
服务器配置:
客户端配置:
域名解析配置:
*.XXX -> server_addr
Logs
没有任何 error 日志,我试着在客户端排查了端口占用情况(lsof -i tcp:xxx),都是正常的,没有端口冲突。也试了直接在客户端 curl http://127.0.0.1:xxx 也都是对应的服务,没有出现同一个服务的现象。
Steps to reproduce
...
Affected area
@ricky0829 commented on GitHub (Aug 18, 2022):
给我的感觉就是 frps 服务端接收到请求后(开发者工具里可以看到标头的远程地址的确是 frps 服务端的 IP + frps.ini 里设置的 vhost_https_port),转发到 frpc 时出了问题,不知道是没有带上域名标头,导致 frpc 没有根据不同域名转发到不同端口,还是 frpc 已经接收到了不同域名的请求,却没有根据规则转发到对应端口。

我也怀疑是浏览器缓存或别的什么问题,换了手机尝试也是一样的,就排除掉了。就好像不管访问哪个二级域名,只要访问者的第一个连接建立了,以后所有域名都走第一个连接对应的端口。
另外补充一个信息,在 frpc 端通过 lsof -i tcp:xxx 可以看出,第一次访问的端口会有 frpc 的连接建立,其他端口都没有,即便我通过浏览器去访问了其他端口对应的二级域名。
有没有什么办法能看到浏览器访问域名之后的具体操作?比如,抓包?或者 frpc 这边的具体操作。太奇怪了,我对着文档一个字一个字核对,绝对没写错啊......
@fatedier commented on GitHub (Aug 18, 2022):
https://github.com/fatedier/frp/issues/628
@ricky0829 commented on GitHub (Aug 18, 2022):
谢谢,我这边的确是通配符证书,而且我也怀疑过证书问题,因为我访问端有卡巴斯基,这个域名之前没搞证书的时候卡巴斯基帮我装了一个,必须退出卡巴斯基,开新浏览器才能避免使用卡巴斯基的证书。不过我还没搞清楚对应关系,所以就没提。
抱歉我之前真的好好搜了 issue,没搜到......我等会换下证书试试看,解决了就关 issue。