前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用frp内网穿透https网站

用frp内网穿透https网站

作者头像
羽翰尘
修改2019-11-26 16:13:01
8.7K0
修改2019-11-26 16:13:01
举报
文章被收录于专栏:技术向技术向

本文由腾讯云+社区自动同步,原文地址 https://stackoverflow.club/article/frps_https_network/

frp是一个非常好用的内网穿透工具,实际使用发现其比ngrok稳定,比p2p V**如zerotier,n2n可用性高。所谓可用性高,在使用上的体现是指ssh连接时不会突然卡住。如果ssh都会不顺畅,更别提网站与vnc了。

平时用frp都只用http反向代理和端口暴露两个功能,可由于打算将所有网站放到本地,通过frp暴露到公网上。这就要求我研究一下如何用frp穿透https网站。

其实替代方案也很直接,就是用frp穿透一个端口或者http,公网服务器用nginx再反向代理一下就行。但是考虑到frp本身就支持https,可以尝试下。

方式1:使用https2http

首先要注意https2http插件是最近支持的,在v0.26.0增加了https2http插件。我的理解是该插件类似于一个nginx功能,访问本地服务器时用http,对外暴露https。

以我自己的nextcloud为例,客户端的配置如下:

代码语言:javascript
复制
[nextcloud_https]
type = https
subdomain = icloud
use_encryption = true
use_compression = true
plugin = https2http
plugin_local_addr = 127.0.0.1:80
plugin_crt_path = /home/wenfeng/conf/woniu/all_stackoverflow.club.fullchain.cer
plugin_key_path = /home/wenfeng/conf/woniu/all_stackoverflow.club.key
plugin_host_header_rewrite = icloud.stackoverflow.club
[nextcloud_http]
type = http
local_port = 80
subdomain = icloud
use_encryption = true
use_compression = true

目前存在的问题:

  • ERR_ABORTED 400 (Bad Request)导致部分资源无法加载(我的网站是nextcloud)
  • 不支持从http跳转到https

方式2:直接使用https

几经波折后,在issue中看到了较为原始的https实现方案,就是frp本身不做任何请求改写工作,只是解析域名,然后转发。

服务端不需要修改配置,客户端的配置如下:

代码语言:javascript
复制
[nextcloud_https]
type = https
local_port = 443
subdomain = icloud
# custom_domains = icloud.stackoverflow.club
use_encryption = true
use_compression = true
[nextcloud_http]
type = http
local_port = 80
subdomain = icloud
# custom_domains = icloud.stackoverflow.club
use_encryption = true
use_compression = true

可以看到穿透的方式与http完全相同,只是改了type和本地端口,https的实际实现由本地服务器的nginx完成。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方式1:使用https2http
  • 方式2:直接使用https
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档