专栏首页技术向用frp内网穿透https网站

用frp内网穿透https网站

本文由腾讯云+社区自动同步,原文地址 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为例,客户端的配置如下:

[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本身不做任何请求改写工作,只是解析域名,然后转发。

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

[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完成。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 更换pip的源

    羽翰尘
  • python高阶教程-修饰符与面向切面编程

    本文由腾讯云+社区自动同步,原文地址 http://blogtest.stackoverflow.club/book/senior_python/decorat...

    羽翰尘
  • 如何在docker中删除images

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

    羽翰尘
  • 读书笔记-《了不起的node.js》-3

    PHP中当遇到sleep时程序会阻塞住,在阻塞设定时间之前,不会有任何操作,也就是说是同步的;

    用户3258338
  • MYSQL优化有理有据全分析(面试必备)

    在MySQL中可以使用EXPLAIN查看SQL执行计划,用法:EXPLAIN SELECT * FROM tb_item

    java进阶架构师
  • 利用Github免费制作app介绍主页

    这几天在准备spyfari的相关上线准备,有所收获,今天更新个技能—— [利用Github免费制作app介绍主页] 作为独立开发者,每一次的投入都是自己的精力或...

    mixlab
  • Spring Data MongoDB

    以下节选自《Netkiller Java 手札》 11.6.2. Spring Data MongoDB 11.6.2.1. pom.xml 注意Spring4...

    netkiller old
  • 无法打开谷歌网上应用商店 --> 设置(齿轮) --> 我的扩展程序和应用 这个选项?该如何解决呢?

    无法打开 谷歌网上应用商店 --> 设置(齿轮) --> 我的扩展程序和应用 这个选项卡?该如何解决呢?操作如下图所示:

    黑泽君
  • Navicat Premium 12连接服务器上的SQL Server

    华创信息技术

扫码关注云+社区

领取腾讯云代金券