frp 如何添加多个 80 端口?

2020-12-17 00:04:58 +08:00
 CSGO

我今天学习了 exsi 虚拟机,然后成功在下面安装了 lede,并且现在可以正常上网了。 现在客户端 frpc 是这样配置:

[common] server_addr = wangyifang.com server_port = 7000 token = password

[Raspberry-Pi-SSH] type = tcp local_ip = 192.168.100.102 local_port = 22 remote_port = 7998

[Raspberry-Pi-VNC] type = tcp local_ip = 192.168.100.102 local_port = 5901 remote_port = 7999

[LEDE 软路由 SSH] type = tcp local_ip = 192.168.100.1 local_port = 22 remote_port = 7005

[PC 远程桌面] type = tcp local_ip = 192.168.100.101 local_port = 3389 remote_port = 7006

[LEDE 软路由后台] type = http local_ip = 192.168.100.1 local_port = 80 custom_domains = wangyifang.com

================ 这是原本的配置,但是我想着如果可以把 exsi 也放到公网上就好了,就想着把最后一个改为如:

[LEDE 软路由后台] type = http local_ip = 192.168.100.1 local_port = 80 custom_domains = wangyifang.com remote_port = 7100

[LEDE 软路由后台] type = http local_ip = 192.168.100.100 local_port = 80 custom_domains = wangyifang.com remote_port = 7101

这样发现 wangyifang.com:7100 都已经不能访问 lede 后台了。而我知道 frp 的 Http Port: 7002,所以是不是 frp 只能有一个这样的记录?

4009 次点击
所在节点    宽带症候群
25 条回复
stille
2020-12-17 00:09:56 +08:00
type 为 http/s 时不用 remoteport
CSGO
2020-12-17 00:12:35 +08:00
@stille 也就是说端口都只能是 7002 。那么只能用不同访问域名?
stille
2020-12-17 00:26:27 +08:00
远程 frps 服务端的 http/https 协议会根据请求的 custom_domain 来分别穿透对应的内网 IP 和端口的.
所以说你用 http 协议,就不能 2 个域名相同

主要我不知道你 frps 放在哪,环境如何
CSGO
2020-12-17 00:37:38 +08:00
@stille frps 是放在云服务器上啊。frpc 是在软路由上。
stille
2020-12-17 00:38:30 +08:00
@CSGO 你修改后的 2 条记录用了同一个域名,你可以搞个 esxi.xx.com 二级域名给 100,用不同域名加 7002 就可以访问 esxi 和路由器
stille
2020-12-17 00:41:44 +08:00
CSGO
2020-12-17 00:52:27 +08:00
@stilleesxi.xx.com 域名解析到哪里?
ysc3839
2020-12-17 03:53:18 +08:00
@CSGO 域名都解析到 frps 服务器。
另外建议用 https,而且是在 frpc 这边设置 https 。因为印象中 frp 的 TLS 没有验证对端证书的功能,有被中间人攻击的可能性。
即使 frp 之间的 TLS 连接是可验证的,frps 暴露出去的端口也应该开启 https 。
baozhuo
2020-12-17 08:27:13 +08:00
我是这样搞的,先通配符解析一个二级域名到云服务,frpc 里面每个 http/s 都单独配置一个二级域名,云服务那边再用 nginx 反向代理一下,很贱的就解决了嘛
CSGO
2020-12-17 11:57:14 +08:00
@ysc3839

我添加了:

[EXSI 后台]
type = http
local_ip = 192.168.100.100
local_port = 80
custom_domains = exsi.wangyifang.com

[EXSI-SSH]
type = tcp
local_ip = 192.168.100.100
local_port = 22
remote_port = 7007

测试了,ssh 可以,后台的话还是不行,打开居然直接跳到我网站了。
CSGO
2020-12-17 19:39:46 +08:00
我发现了 exsi 原来是 443 端口。在局域网内访问 192.168.100.100:443 可以访问,访问 192.168.100.100:80 是无法打开网页。

所以我现在是这样配置:

[EXSI-后台]
type = http
local_ip = 192.168.100.100
local_port = 443
custom_domains = exsi.wangyifang.com

但是,访问现在终于似乎有点起色,但是还是无法正确访问,打开出现这样的画面:

The page you requested was not found.
Sorry, the page you are looking for is currently unavailable.
Please try again later.

The server is powered by frp.

Faithfully yours, frp.
qanniu
2020-12-18 09:24:53 +08:00
我也遇到同样的问题,暂时观望解决方案中。
Lunatic1
2020-12-18 09:43:34 +08:00
http 协议不设置远程端口
CSGO
2020-12-18 11:41:32 +08:00
@Lunatic1 看下 11 楼,还是不行
Lunatic1
2020-12-18 13:10:46 +08:00
http 本地端口一般都是 80 吧,不用配置 443 。域名指向 frp 中转服务器就行了,包括二级。你 10L 配置的是正确的
AoEiuV020
2020-12-19 11:45:59 +08:00
第一反应是套 nginx 反向代理,frp 这种不专业的反代肯定是有极限的,哪怕这次的功能费劲配置出来了,下次有其他功能 frp 也未必支持,太折腾,
SgtPepper
2020-12-20 09:40:36 +08:00
frps 中把 https 删掉,frpc type 用 tcp 试试
SgtPepper
2020-12-20 09:45:44 +08:00
@stille 二级域名的话 ssl 证书怎么弄呢,比如我的域名 abc.com ,绑定的证书 www.abc.comabc.com
添加*解析后,frps frpc 添加二级域名,实测用 test.abc.com 去访问地址提示证书错误。
stille
2020-12-20 13:24:27 +08:00
@SgtPepper 申请泛域名证书,我博客里有教程 *.xxx.com 的证书
SgtPepper
2020-12-20 13:52:37 +08:00
@stille 看到了,thx

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/736203

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX