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

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

前言

这次国庆节回老家发现家里的路由器居然是我去年带过去的斐讯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 = 7000

subdomainHost = "frp.xxxxxx.xyz"
vhostHTTPPort = 7000
vhostHTTPSPort = 7000

auth.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

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容