[GH-ISSUE #4077] 按示例配置后无法访问内网web端口 #3219

Closed
opened 2026-05-05 14:04:48 -06:00 by gitea-mirror · 3 comments
Owner

Originally created by @catxu on GitHub (Mar 17, 2024).
Original GitHub issue: https://github.com/fatedier/frp/issues/4077

Bug Description

公网使用阿里云esc,端口策略已打开,frps已配置并启动ok,访问dashbord正常,客户端使用docker启动,启动命令:
docker run --restart=always --network host -d -v /etc/frp/frpc.toml:/etc/frp/frpc.toml --name frpc snowdreamtech/frpc ,其中frpc.toml配置如下:

serverAddr = "x.x.x.x"
serverPort = 7000

[[proxies]]
name = "web"
type = "http"
localPort = 8009
customDomains = ["x.x.x.x"]

其中x.x.x.x为公网IP,已确认8009端口通过telnet可以连通:

telnet x.x.x.x 8009
Trying x.x.x.x...
Connected to x.x.x.x.
Escape character is '^]'.

通过浏览器访问公网地址+8009端口报错如下:
[E] [proxy/proxy.go:204] [ba21d2f089bb6106] [web] connect to local service [127.0.0.1:8009] error: dial tcp 127.0.0.1:8009: connect: connection refused. 浏览器直接访问 127.0.0.1:8009 可以正常显示页面内容。

frpc Version

0.55.1

frps Version

0.55.1

System Architecture

linux/x86_64

Configurations

frps.toml:

bindPort = 7000
vhostHTTPPort = 8009

webServer.addr = "0.0.0.0"
webServer.port = 7110
webServer.user = "xxxx"
webServer.password = "xxxx"

frpc.toml:

serverAddr = "x.x.x.x"
serverPort = 7000

[[proxies]]
name = "web"
type = "http"
localPort = 8009
customDomains = ["x.x.x.x"]

Logs

[I] [client/control.go:170] [ba21d2f089bb6106] [web] start proxy success
[I] [client/service.go:287] [ba21d2f089bb6106] try to connect to server...
[I] [client/service.go:279] [ba21d2f089bb6106] login to server success, get run id [ba21d2f089bb6106]
[I] [proxy/proxy_manager.go:173] [ba21d2f089bb6106] proxy added: [web]
[I] [client/control.go:170] [ba21d2f089bb6106] [web] start proxy success
[E] [proxy/proxy.go:204] [ba21d2f089bb6106] [web] connect to local service [127.0.0.1:8009] error: dial tcp 127.0.0.1:8009: connect: connection refused

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 @catxu on GitHub (Mar 17, 2024). Original GitHub issue: https://github.com/fatedier/frp/issues/4077 ### Bug Description 公网使用阿里云esc,端口策略已打开,frps已配置并启动ok,访问dashbord正常,客户端使用docker启动,启动命令: `docker run --restart=always --network host -d -v /etc/frp/frpc.toml:/etc/frp/frpc.toml --name frpc snowdreamtech/frpc `,其中frpc.toml配置如下: ``` serverAddr = "x.x.x.x" serverPort = 7000 [[proxies]] name = "web" type = "http" localPort = 8009 customDomains = ["x.x.x.x"] ``` 其中x.x.x.x为公网IP,已确认8009端口通过telnet可以连通: > telnet x.x.x.x 8009 Trying x.x.x.x... Connected to x.x.x.x. Escape character is '^]'. 通过浏览器访问公网地址+8009端口报错如下: [E] [proxy/proxy.go:204] [ba21d2f089bb6106] [web] connect to local service [127.0.0.1:8009] error: dial tcp 127.0.0.1:8009: connect: connection refused. 浏览器直接访问 127.0.0.1:8009 可以正常显示页面内容。 ### frpc Version 0.55.1 ### frps Version 0.55.1 ### System Architecture linux/x86_64 ### Configurations frps.toml: ``` bindPort = 7000 vhostHTTPPort = 8009 webServer.addr = "0.0.0.0" webServer.port = 7110 webServer.user = "xxxx" webServer.password = "xxxx" ``` frpc.toml: ``` serverAddr = "x.x.x.x" serverPort = 7000 [[proxies]] name = "web" type = "http" localPort = 8009 customDomains = ["x.x.x.x"] ``` ### Logs > [I] [client/control.go:170] [ba21d2f089bb6106] [web] start proxy success [I] [client/service.go:287] [ba21d2f089bb6106] try to connect to server... [I] [client/service.go:279] [ba21d2f089bb6106] login to server success, get run id [ba21d2f089bb6106] [I] [proxy/proxy_manager.go:173] [ba21d2f089bb6106] proxy added: [web] [I] [client/control.go:170] [ba21d2f089bb6106] [web] start proxy success [E] [proxy/proxy.go:204] [ba21d2f089bb6106] [web] connect to local service [127.0.0.1:8009] error: dial tcp 127.0.0.1:8009: connect: connection refused ### Steps to reproduce 1. 2. 3. ... ### Affected area - [ ] Docs - [ ] Installation - [ ] Performance and Scalability - [ ] Security - [X] User Experience - [ ] Test and Release - [ ] Developer Infrastructure - [ ] Client Plugin - [ ] Server Plugin - [ ] Extensions - [ ] Others
Author
Owner

@liangyulai commented on GitHub (Mar 21, 2024):

你的frpc是用docker部署的,那么frpc.toml里localPort = 8009指向的是docker实例的8009端口
浏览器直接访问 127.0.0.1:8009,访问的是host的8009端口
所以你会看到frpc有错误日志:
[E] [proxy/proxy.go:204] [ba21d2f089bb6106] [web] connect to local service [127.0.0.1:8009] error: dial tcp 127.0.0.1:8009: connect: connection refused

你可以把docker网络设为host模式,或者把本地8009端口的服务与frpc部署在同一个docker实例,或者frpc不用docker

<!-- gh-comment-id:2011142699 --> @liangyulai commented on GitHub (Mar 21, 2024): 你的frpc是用docker部署的,那么frpc.toml里localPort = 8009指向的是docker实例的8009端口 浏览器直接访问 127.0.0.1:8009,访问的是host的8009端口 所以你会看到frpc有错误日志: [E] [proxy/proxy.go:204] [ba21d2f089bb6106] [web] connect to local service [127.0.0.1:8009] error: dial tcp 127.0.0.1:8009: connect: connection refused 你可以把docker网络设为host模式,或者把本地8009端口的服务与frpc部署在同一个docker实例,或者frpc不用docker
Author
Owner

@catxu commented on GitHub (Mar 26, 2024):

你的frpc是用docker部署的,那么frpc.toml里localPort = 8009指向的是docker实例的8009端口 浏览器直接访问 127.0.0.1:8009,访问的是host的8009端口 所以你会看到frpc有错误日志: [E] [proxy/proxy.go:204] [ba21d2f089bb6106] [web] connect to local service [127.0.0.1:8009] error: dial tcp 127.0.0.1:8009: connect: connection refused

你可以把docker网络设为host模式,或者把本地8009端口的服务与frpc部署在同一个docker实例,或者frpc不用docker

感谢回复,我前面有提到,docker启动的是host模式,不过我尝试了不用docker起frpc就能访问正常,应该是镜像问题,issue不该提到这里,我关了。

<!-- gh-comment-id:2020396387 --> @catxu commented on GitHub (Mar 26, 2024): > 你的frpc是用docker部署的,那么frpc.toml里localPort = 8009指向的是docker实例的8009端口 浏览器直接访问 127.0.0.1:8009,访问的是host的8009端口 所以你会看到frpc有错误日志: [E] [proxy/proxy.go:204] [ba21d2f089bb6106] [web] connect to local service [127.0.0.1:8009] error: dial tcp 127.0.0.1:8009: connect: connection refused > > 你可以把docker网络设为host模式,或者把本地8009端口的服务与frpc部署在同一个docker实例,或者frpc不用docker 感谢回复,我前面有提到,docker启动的是host模式,不过我尝试了不用docker起frpc就能访问正常,应该是镜像问题,issue不该提到这里,我关了。
Author
Owner

@bling-yshs commented on GitHub (Apr 3, 2024):

你的frpc是用docker部署的,那么frpc.toml里localPort = 8009指向的是docker实例的8009端口 浏览器直接访问 127.0.0.1:8009,访问的是host的8009端口 所以你会看到frpc有错误日志: [E] [proxy/proxy.go:204] [ba21d2f089bb6106] [web] connect to local service [127.0.0.1:8009] error: dial tcp 127.0.0.1:8009: connect: connection refused
你可以把docker网络设为host模式,或者把本地8009端口的服务与frpc部署在同一个docker实例,或者frpc不用docker

感谢回复,我前面有提到,docker启动的是host模式,不过我尝试了不用docker起frpc就能访问正常,应该是镜像问题,issue不该提到这里,我关了。

我也遇到同样的问题了,解决方法是容器指定host模式,然后配置里IP填host.docker.internal
全配置:

serverAddr = "47.xxx.xx.119"
serverPort = 7000
auth.method = "token"
auth.token = "xxxx"

[[proxies]]
name = "web"
type = "http"
localIP = "host.docker.internal"
localPort = 8080
customDomains = ["xxx.xxx.xxx"]

<!-- gh-comment-id:2033571669 --> @bling-yshs commented on GitHub (Apr 3, 2024): > > 你的frpc是用docker部署的,那么frpc.toml里localPort = 8009指向的是docker实例的8009端口 浏览器直接访问 127.0.0.1:8009,访问的是host的8009端口 所以你会看到frpc有错误日志: [E] [proxy/proxy.go:204] [ba21d2f089bb6106] [web] connect to local service [127.0.0.1:8009] error: dial tcp 127.0.0.1:8009: connect: connection refused > > 你可以把docker网络设为host模式,或者把本地8009端口的服务与frpc部署在同一个docker实例,或者frpc不用docker > > 感谢回复,我前面有提到,docker启动的是host模式,不过我尝试了不用docker起frpc就能访问正常,应该是镜像问题,issue不该提到这里,我关了。 我也遇到同样的问题了,解决方法是容器指定host模式,然后配置里IP填`host.docker.internal` 全配置: ```toml serverAddr = "47.xxx.xx.119" serverPort = 7000 auth.method = "token" auth.token = "xxxx" [[proxies]] name = "web" type = "http" localIP = "host.docker.internal" localPort = 8080 customDomains = ["xxx.xxx.xxx"] ```
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#3219
No description provided.