前言
这次国庆节回老家发现家里的路由器居然是我去年带过去的斐讯K2p,已经刷了openwrt,于是想着有没有更多玩法?因为家里的宽带是移动宽带,没有公网IP,所以来折腾一下frp内网穿透。
我想实现的目标是:通过不同的三级域名,来访问不同的服务。例如,访问https://op.frp.xxxxxx.xyz
,即可访问内网的openwrt服务。
一、1panel搭建服务端
首先需要一台安装了1panel的公网服务器,最好是有80和443端口的,记得开放相应端口的防火墙。
在1panel的应用商店中,已经有了frp服务端,安装也很简单,设置好服务端口和管理面板的端口、用户名以及密码,密钥自己设置一个,后面在openwrt客户端用得上。
如果有安装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
。
然后更新软件列表,再搜索luci-app-frpc,直接安装即可。刷新网页,在服务页面即可看到frp 客户端。常规设置中,填服务器地址,服务器端口,以及之前设置的秘钥。其他的保持默认即可。
点击添加新代理,名称随意但是要唯一,类型填http,本地ip 127.0.0.1,端口 80 , 如果想代理内网的其他设备,填该设备的ip和端口即可。
在http设置里,自定义域名可不填,默认就是之前设置的subdomainHost = "frp.xxxxxx.xyz"
,子域名填自己想要的,如 op ,保存即可。
此时通过服务端ip:7500端口打开管理面板,即可看到刚刚设置的frp客户端已经连接上了。
此时,通过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端口访问内网服务了。不同的内网服务对应不同的三级域名。
暂无评论内容