frp 内网穿透开启了 HTTPS,但不是很明白其中的原理

11 天前
 jukanntenn

这是我的方案:

NAS 上运行 frpc ,云服务器运行 frps ,假设我要暴露 alist 服务(运行在 NAS 上,端口 5244 ),frpc 的配置就是:

[[proxies]]
name = "alist"
type = "tcp"
localIP = "127.0.0.1"
localPort = 5244
remotePort = 5245
transport.useCompression = true

域名 alist.myhome.com 解析到云服务器上,云服务上运行一个 caddy ,将 https://alist.myhome.com 的访问转给云服务器上的 127.0.0.1:5245 。

NAS 上我在配置 Nginx 的反向代理,源为 https://alist.myhome.com 目的为 localhost:5244 ,这样 HTTPS 就启用成功了。

我不明白的地方是 frp server 将请求发给 frp client 后,为什么会经过 Nginx ?

1200 次点击
所在节点    问与答
7 条回复
imdong
11 天前
有哪些可能,你这步 Nginx 是多余的呢🐶
yulgang
11 天前
nas 上配置 nginx 那步应该是为了让内外网访问方式一致,又不用去外面绕一圈吧,估计还有个内网 dns 服务,内网解析域名时返回的是 nas 主机的 IP ,互联网上解析你的域名就是云服务器的 IP
jukanntenn
11 天前
@yulgang
@imdong
啊,确实,当时没太搞明白就只知道照着教程做了。现在明白了,确实是外网访问不需要 nginx ,内网通过 dns 将域名重写成 nas 的 ip ,nginx 就派上用场了。
huaxianyan
11 天前
Nginx 这步不需要啊,你用 Frp 转发就相当于把 NAS 上的东西变成云服务器上的一个本地服务,要做一个使用 Web Server 反代本地服务的这么一个操作,直接反代开启 HTTPS 就完事了
coolfan
11 天前
frpc 的配置文件看,从公网访问的时候没有经过 nas 上的 Nginx 呀,直接就是 alist 的端口👀
wanwusangzhi
11 天前
你是先请求 nginx nginx 请求 frps 然 frps 请求 frpc
make115
11 天前
frpc 的 subdomain="immich" 呢,nas 上的 nginx 根本不需要

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

https://tanronggui.xyz/t/1106908

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

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

© 2021 V2EX