FRP 0.61.1 全新入坑指南-HTTPS访问内网
在拥有公网服务器的情况下,利用frp,我们可以便捷地将内网设备实现公网访问。本位为大家带来最新版frp部署指南,和常见的上手姿势。
准备
公网服务器(建议使用轻量服务器)
本地Linux或者Windows主机。

示意图
如上图,用户想要外网访问内网的设备。需要通过公网服务器作为跳板。
部署服务端
首先,从github下载项目到本地。 项目地址: https://github.com/fatedier/frp 这里,我们以最新版的为例。根据自己的系统类型下载合适的包。
下载完成后,我们首先配置frps.toml(服务端配置文件) 配置示例如下:
必配参数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
bindPort = 7000auth.token = "youpassword"
bindPort: 服务端端口,安全组和防火墙都要开启。不然内网设备无法连接。
auth.token:用于安全配置,防止别人连接自己的服务器。
可选配置
配置仪表盘,frp支持仪表板。通过仪表盘可以方便地查看当前设备的连接状态。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
webServer.addr = "0.0.0.0" #监听所有IP 包括ipv6webServer.port = 7500 #仪表盘端口
webServer.user = "admin" #仪表盘账号
webServer.password = "admin@ql==" #仪表盘密码
<br/>
<br/>
<br/>

仪表盘效果
仪表盘效果
其他
如,我们想要配置通过域名访问,我们还可以添加相关域名配置。
<br/>
<br/>
<br/>
代码语言:javascript
代码运行次数:0
<br/>
运行
<br/>
AI代码解释
<br/>
vhostHTTPSPort = 443 #指明https端口
vhostHTTPPort = 80 #指明http端口
<br/>
完整示例
<br/>
<br/>
<br/>
代码语言:javascript
代码运行次数:0
<br/>
运行
<br/>
AI代码解释
<br/>
bindPort = 7000auth.token = "youpassword"vhostHTTPSPort = 443 #指明https端口
vhostHTTPPort = 80 #指明http端口
webServer.addr = "0.0.0.0" #监听所有IP 包括ipv6
webServer.port = 7500 #仪表盘端口
webServer.user = "admin" #仪表盘账号
webServer.password = "admin@ql==" #仪表盘密码
<br/>
至此,服务端配置完成。接下来,我们通过下面命令启动服务器端
<br/>
<br/>
<br/>
代码语言:javascript
代码运行次数:0
<br/>
运行
<br/>
AI代码解释
<br/>
./frps -c frps.toml
<br/>
到此,服务端配置和启动完成,接下来我们配置客户端。
客户端
同样,我们只需配置客户端文件frpc.toml
必配参数
<br/>
<br/>
<br/>
代码语言:javascript
代码运行次数:0
<br/>
运行
<br/>
AI代码解释
<br/>
serverAddr = "192.168.6.66" #你的公网服务器IPserverPort = 7000 #公网端口,一定要一致。
auth.token = "admin@ql==" #token 一定要一致。
<br/>
添加一个或多个节点
如,我想通过公网访问内网(192.168.50.88)主机的22 3306端口。添加下面配置。
<br/>
<br/>
<br/>
代码语言:javascript
代码运行次数:0
<br/>
运行
<br/>
AI代码解释
<br/>
[[proxies]]name = "mysql" #命令,随意即可
type = "tcp" #类型为tcp或udp看心情。
localIP = "192.168.50.88" #内网IPlocalPort = 3306 #内网端口,可自定义
remotePort = 3306 #外网端口,可自定义[[proxies]]name = "ssh"type = "tcp"localIP = "192.168.50.88"localPort = 22remotePort = 2222 #不要和公网的冲突
<br/>
以此类推,如果想添加多个,增加[[proxies]]即可。
配置https
跟住时代步伐走,http不说了。 如,在内网中,我在80端口部署了一个web网页。通过内网IP访问。如何通过域名访问呢?
https://nb.cn==192.168.50.88
准备条件
已备案域名
下载对应域名的ssl证书
配置文件
<br/>
<br/>
<br/>
代码语言:javascript
代码运行次数:0
<br/>
运行
<br/>
AI代码解释
<br/>
[[proxies]]name = "https2http"type = "https"customDomains = "nb.cn"type = "https2http"localAddr = "192.168.50.88:80"crtPath = "/data/xichui/ssl/nb.cn.crt"keyPath = "/data/xichui/ssl/nb.cn.key"hostHeaderRewrite = "nb.cn"
<br/>
参数说明:/data/xichui/ssl/nb.cn.crt 便是你下载的ssl证书存放的位置,可根据自己的实际情况修改。
<br/>
<br/>

访问效果
访问效果
<br/>