FRP内网服务配置https
一、实际需求
自己拥有了一台极空间Z4的NAS后,在上面部署了一些服务来满足自身的生活需求:
- Vaultwarden:可自托管的个人密码安全管理使用平台,支持多端同步使用,出于安全考虑,客户端需要通过 https 协议与服务端通信;
- Gotify:自托管的开源消多端消息接发平台,自己发布的一些服务可通过gotify-server端来向移动端实时发送通知;
- Joplin:自托管的开源多端同步的笔记平台;
- Gitea:自托管的开源多端同步的代码仓库平台;
- Reader:自托管的开源阅读平台
- … …
因受限于背景移动宽带的可恶嘴脸,每月19元的IPV4,还得各种打电话改桥接,最终还要被限制80和443端口的使用,虽然可以曲线救国,通过IPV6+DDNS的方式来实现将内网服务转发到外网使用,但IPV6也不是免费的啊!
不想付费买IP,只能采用更加曲线的形式,来达到我的目的了。
它那就是vps+frp组合技:
VPS:国外服务器
平时有使用谷歌的需求,就在搬瓦工上淘了性价比比较高的服务器来FxxxGW,配置虽低,但跑个代理+FRP的服务端足够了!
FRP:开源内网穿透神器
域名:国内或国外域名商购买即可
二、服务配置
1. 域名托管到cloudfare
注册账号
添加域名
域名服务商处配置cloufare的Nameserver
域名的DNS添加A记录,域名与VPS域名绑定,不用代理

2. 安装 FRPS
下载FRP安装包到
/usr/local目录1
2cd /usr/local
wget https://github.com/fatedier/frp/releases/download/v0.60.0/frp_0.60.0_linux_amd64.tar.gz解压
1
2
3
4# 解压
tar -zxf frp_0.60.0_linux_amd64.tar.gz
# 改名
mv frp_0.60.0_linux_amd64 frp修改 frps.toml
1
2
3
4
5
6
7
8
9
10
11
12bindPort = 7000
# 443端口不要变,要不域名后面还要跟端口号,多恶心呐
vhostHTTPSPort = 443
auth.token="xxxxxx"
webServer.addr="0.0.0.0"
webServer.port=7777
webServer.user="xxx"
webServer.password="xxxxxx"
subdomainHost = "cgio.asia"创建FRPS开机自启文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15vim /etc/systemd/system/frps.service
# 配置内容:
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
ExecStart = /usr/local/frp/frps -c /usr/local/frp/frps.toml
[Install]
WantedBy = multi-user.target开启服务及自启动
1
2
3
4
5
6
7
8# 开机自启
systemctl enable frps
# 开启FRPS服务
systemctl start frps
# 查看FRPS状态
systemctl status frps
3. 泛域名证书申请
3.1 VPS通过二进制形式安装Lucky,启动服务
安装运行&升级备份 | Lucky (lucky666.cn)
3.2 域名证书自动申请设置
【安全管理】→ 【添加证书】
按下图的记录添加自己的域名,填写完后,很快就能申请成功!成功后把证书下载下来备用。

3.3 其它
可在【Web服务】处,配置反向代理,这里如果使用了443端口,那么frps将无法启动(端口冲突)。如果对服务的安全性要求不高的话,可直接通过这个功能将穿透到当前服务器的内网服务,以反向代理的形式对外发布。
这个服务需要frpc.toml处配置的服务对应的remotePort!
4. 安装 FRPC
极空间通过Docker下载FRPC镜像备用,并准备一个文件夹存放配置文件及泛域名证书。
4.1 网络模式使用hosts

4.2 挂载 frpc.toml,以及上一步中下载的泛域名证书

4.2 配置 frpc.toml
1 | |
4.3 启动容器

搞定!
接下来,浏览器地址栏输入:
即可访问内网服务了!
FRP内网服务配置https
https://wyd2015.github.io/FRP内网服务配置https.html