1panel搭建frp服务端并使用openresty反向代理实现https访问

news/2024/10/10 0:54:51

前言

这次国庆节回老家发现家里的路由器居然是我去年带过去的斐讯K2p,已经刷了openwrt,于是想着有没有更多玩法?因为家里的宽带是移动宽带,没有公网IP,所以来折腾一下frp内网穿透。

我想实现的目标是:通过不同的三级域名,来访问不同的服务。例如,访问https://op.frp.xxxxxx.xyz,即可访问内网的openwrt服务。

一、1panel搭建服务端

首先需要一台安装了1panel的公网服务器,最好是有80和443端口的,记得开放相应端口的防火墙。

在1panel的应用商店中,已经有了frp服务端,安装也很简单,设置好服务端口和管理面板的端口、用户名以及密码,密钥自己设置一个,后面在openwrt客户端用得上。

image

如果有安装ufw防火墙,记得开放7000和7500防火墙。

在1panel的文件管理中打开/opt/1panel/apps/frps/frps/data/frps.toml,添加一行subdomainHost = "frp.xxxxxx.xyz",用来设置子域名。另外,还需要设置vhostHTTPPort,我直接设置成和bindPort一样的7000,如果设置成其他的记得开放相应的防火墙。vhostHTTPSPort可以不用设置,因为我想通过openresty来反向代理frp并设置https。

bindAddr = "0.0.0.0"
bindPort = 7000subdomainHost = "frp.xxxxxx.xyz"
vhostHTTPPort = 7000
vhostHTTPSPort = 7000auth.method = "token"
auth.token = "xxxxxxxxxx"webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "xxxxxxx"
webServer.password = "xxxxxxxxxx"# tls
#transport.tls.force = true
#transport.tls.certFile = "/etc/frp/ssl/server.crt"
#transport.tls.keyFile = "/etc/frp/ssl/server.key"
#transport.tls.trustedCaFile = "/etc/frp/ssl/ca.crt"

在容器界面重启frps容器,这样服务端就搭建好了。

二、openwrt安装frpc客户端

首先替换openwrt的软件源,打开opkg configuration,

将其中说有 http://downloads.openwrt.org 都替换为https://mirrors.tuna.tsinghua.edu.cn/openwrt

image

然后更新软件列表,再搜索luci-app-frpc,直接安装即可。刷新网页,在服务页面即可看到frp 客户端。常规设置中,填服务器地址服务器端口,以及之前设置的秘钥。其他的保持默认即可。

点击添加新代理,名称随意但是要唯一,类型填http,本地ip 127.0.0.1,端口 80 , 如果想代理内网的其他设备,填该设备的ip和端口即可。

image

在http设置里,自定义域名可不填,默认就是之前设置的subdomainHost = "frp.xxxxxx.xyz",子域名填自己想要的,如 op ,保存即可。

image

此时通过服务端ip:7500端口打开管理面板,即可看到刚刚设置的frp客户端已经连接上了。

image

此时,通过http://op.frp.xxxxxx.xyz:7500即可访问内网了,但是这还不够完美,既然已经有公网服务器了,直接通过https://op.frp.xxxxxx.xyz来访问岂不妙哉?

三、使用openresty设置反向代理,开启https

有个小插曲,我购买的vps系统有毛病,ping 127.0.0.1,localhost和本地ip都不通,所有的配置也是正确的。

检查下是否禁止了ping,nano /etc/sysctl.conf ,看net.ipv4.icmp_echo_ignore_all内容为 1 则禁止ping ,内容为0 则开启ping。

或者 使用 sysctl -w net.ipv4.icmp_echo_ignore_all=1 。重启vps后恢复正常。

首先把frp.xxxxxx.xyz*.frp.xxxxxx.xyz解析到公网服务器上,再在1panel里申请其证书。

在1panel的网站里面添加一个主域名为:frp.xxxxxx.xyz,其他域名填 *.frp.xxxxxx.xyz,地址填127.0.0.1:7000,再选择对应的证书,其他的不用修改,就能通过默认https端口访问内网服务了。不同的内网服务对应不同的三级域名。

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/69642.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

004、v3admin学习,使用ci4搭建后端服务器

1、按照php环境和composer,输入cmd的composer命令,版本是2.7.9 2、在工作目录,输入命令行composer create-project codeigniter4/appstarter ci4 ,会全自动创建工程 3、把composer下来的文件,拷贝到外面工程中。 4、用phpstorm打开工程,更新一下依赖包 5、用小皮桌面开启p…

UNRAID下安装Virtual DSM

本文基于【完结】Virtual DSM 逆向笔记 (基于libvirt的安装及升级) (jxcn.org) 感谢chk-jxcn的分享! 一、安装镜像的准备 链接:https://pan.baidu.com/s/16I89NHPTW6TDx7ACh67yiA 提取码:7hkq 下载下来的镜像是原作者chk-jxcn(jxcn.org)从 DSM 中提取出的 VDSM 7.0 的安装镜…

house_of_muney [2023CISCN]

house_of_muney 首先介绍一下house of muney 这个利用原理: 在了解过_dl_runtime_resolve的前提下,当程序保护开了延迟绑定的时候,程序第一次调用相关函数的时候会执行下面的命令 push n push ModuleID jmp _dl_runtime_resolve 这里的n对应的是这个符号在rel.plt重定位表中…

C#|.net core 基础 - 删除字符串最后一个字符的七大类N种实现方式

分享删除字符串最后一个字符的多种实现方法,包括字符串、StringBuilder、Array、Linq等方式,并进行性能测试。结果显示字符串方式性能最优,但了解多种方法有助于选择最合适的方法。今天想通过和大家分享如何删除字符串最后一个字符的N种实现方法,来回顾一些基础知识点。 01…

NET Core 基础 - 删除字符串最后一个字符的七大类N种实现方式

分享删除字符串最后一个字符的多种实现方法,包括字符串、StringBuilder、Array、Linq等方式,并进行性能测试。结果显示字符串方式性能最优,但了解多种方法有助于选择最合适的方法。今天想通过和大家分享如何删除字符串最后一个字符的N种实现方法,来回顾一些基础知识点。 01…

003、v3admin学习,修改全局配置如去掉水印等

1、v3admin打开之后的界面如下 2、修改一下全局通用设置 3、界面如下 4、把app.vue中的这一段注释掉 5、浏览器也就没有弹窗显示了。

在VMware中安装CentOS7(保姆级教程)

centos7下载地址:https://mirrors.aliyun.com/centos/7/isos/x86_64/1、打开“VMware Workstation“软件,选择”创建新的虚拟机 ![ 2、选择“典型”选项,然后下一步。3、选择“稍后安装操作系统”,点击下一步。4、客户机操作选择“Linux”,版本选择“CentOS 7 64位”,点击…

002、v3admin学习,设置npm的端口和ip

1、使用命令行npm run dev启动v3admin的时候,会有多个ip地址以及端口 2、在vite.config.ts中,修改host为false和port为1314 3、ctrl+c结束端口,并运行npm run dev来启动。可以看到只有一个 http://localhost:1314/ 端口启动了。 4、浏览器打开,可以正常显示。5、效果如下:…