[GH-ISSUE #173] 服务端不支持 Nginx 反向代理吗? #115

Closed
opened 2026-05-05 11:47:19 -06:00 by gitea-mirror · 7 comments
Owner

Originally created by @kuoruan on GitHub (Dec 12, 2016).
Original GitHub issue: https://github.com/fatedier/frp/issues/173

  1. 服务端设置:
bind_addr = 0.0.0.0
bind_port = 7000
vhost_http_port = 8080
vhost_https_port = 4443

服务端 Nginx 添加一个 server: frp.domain.com 带 HTTPS,然后设置反代

proxy_pass http://127.0.0.1:7000;

客户端配置:

server_addr = frp.domain.com
server_port = 443

日志如下:

2016/12/12 17:14:49 [control.go:176] [E] ProxyName [web], format server response error, invalid character 'H' looking for beginning of value
2016/12/12 17:14:49 [control.go:39] [E] ProxyName [web], connect to server failed!
2016/12/12 17:14:49 [main.go:112] [W] All proxy exit!
  1. 服务端配置:
[web]
type = http
auth_token = 123
custom_domains = frp-web.domain.com

客户端配置:

[web]
type = http
local_port = 80
local_host = 127.0.0.1

服务端 Nginx 添加一条反向代理:

server {
    listen 443 ssl http2;
    server_name frp-web.domain.com;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8080;
    }
}

访问 frp-web.domain.com 能正常访问到客户端上的网站,但是我修改 local_host 指向另一个内网服务器,访问到的还是客户端所在服务器上的网站,我应该如何配置才能访问到内网里的其他服务器呢?

Originally created by @kuoruan on GitHub (Dec 12, 2016). Original GitHub issue: https://github.com/fatedier/frp/issues/173 1. 服务端设置: ``` bind_addr = 0.0.0.0 bind_port = 7000 vhost_http_port = 8080 vhost_https_port = 4443 ``` 服务端 Nginx 添加一个 server: frp.domain.com 带 HTTPS,然后设置反代 ``` proxy_pass http://127.0.0.1:7000; ``` 客户端配置: ``` server_addr = frp.domain.com server_port = 443 ``` 日志如下: ``` 2016/12/12 17:14:49 [control.go:176] [E] ProxyName [web], format server response error, invalid character 'H' looking for beginning of value 2016/12/12 17:14:49 [control.go:39] [E] ProxyName [web], connect to server failed! 2016/12/12 17:14:49 [main.go:112] [W] All proxy exit! ``` 2. 服务端配置: ``` [web] type = http auth_token = 123 custom_domains = frp-web.domain.com ``` 客户端配置: ``` [web] type = http local_port = 80 local_host = 127.0.0.1 ``` 服务端 Nginx 添加一条反向代理: ``` server { listen 443 ssl http2; server_name frp-web.domain.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080; } } ``` 访问 frp-web.domain.com 能正常访问到客户端上的网站,但是我修改 local_host 指向另一个内网服务器,访问到的还是客户端所在服务器上的网站,我应该如何配置才能访问到内网里的其他服务器呢?
Author
Owner

@fatedier commented on GitHub (Dec 12, 2016):

客户端的 server_addr 是你服务器的 IP 地址,server_port 是 7000。

<!-- gh-comment-id:266386073 --> @fatedier commented on GitHub (Dec 12, 2016): 客户端的 `server_addr` 是你服务器的 IP 地址,`server_port` 是 7000。
Author
Owner

@kuoruan commented on GitHub (Dec 12, 2016):

@fatedier 我的意思就是不通过 7000 端口访问服务端,统一走 Nginx 反代的 443 端口。

<!-- gh-comment-id:266386573 --> @kuoruan commented on GitHub (Dec 12, 2016): @fatedier 我的意思就是不通过 7000 端口访问服务端,统一走 Nginx 反代的 443 端口。
Author
Owner

@fatedier commented on GitHub (Dec 12, 2016):

frpc 和 frps 的通信不是 HTTP 协议,只能用 tcp 的反向代理。

<!-- gh-comment-id:266388019 --> @fatedier commented on GitHub (Dec 12, 2016): frpc 和 frps 的通信不是 HTTP 协议,只能用 tcp 的反向代理。
Author
Owner

@kuoruan commented on GitHub (Dec 12, 2016):

@fatedier 那第二个问题,服务端 服务器B 有外网 IP,客户端 服务器A 和另一台 服务器C 都属于内网。
我需要在 服务器A 上如何配置才能在外网上访问到 服务器C

<!-- gh-comment-id:266388767 --> @kuoruan commented on GitHub (Dec 12, 2016): @fatedier 那第二个问题,服务端 **服务器B** 有外网 IP,客户端 **服务器A** 和另一台 **服务器C** 都属于内网。 我需要在 **服务器A** 上如何配置才能在外网上访问到 **服务器C** ?
Author
Owner

@fatedier commented on GitHub (Dec 12, 2016):

服务器A 上的客户端配置:

[web]
type = http
local_port = 80
local_ip = {serverC's ip}
<!-- gh-comment-id:266390731 --> @fatedier commented on GitHub (Dec 12, 2016): 服务器A 上的客户端配置: ```ini [web] type = http local_port = 80 local_ip = {serverC's ip} ```
Author
Owner

@kuoruan commented on GitHub (Dec 12, 2016):

@fatedier 我又尝试了一下,应该是可以的,原来我写成了 local_host

<!-- gh-comment-id:266393408 --> @kuoruan commented on GitHub (Dec 12, 2016): @fatedier 我又尝试了一下,应该是可以的,原来我写成了 local_host
Author
Owner

@kuoruan commented on GitHub (Dec 12, 2016):

新找到个 nginx tcp 反向代理的插件,应该可以反代 server 了。
https://github.com/yaoweibin/nginx_tcp_proxy_module

<!-- gh-comment-id:266394220 --> @kuoruan commented on GitHub (Dec 12, 2016): 新找到个 nginx tcp 反向代理的插件,应该可以反代 server 了。 https://github.com/yaoweibin/nginx_tcp_proxy_module
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#115
No description provided.