1.概述:

frp可以通过有公网IP的的服务器将内网的主机暴露给互联网,从而实现通过外网能直接访问到内网主机;frp有服务端和客户端,服务端需要装在有公网ip的服务器上,客户端装在内网主机上。

2.简单的图解:

frp解压

3.frp的作用

  1. 比如数据库是内网数据,离开了公司就无法连接数据库,就可以使用内网穿透。
  2. 你需要访问的是内网的网页你只能登录特定的服务器或者电脑才可以访问,这样你也可以内网穿透。

4.准备工作:

  1. 一个域名(www.sky1.top)
  2. 一台有公网IP的服务器(阿里云、腾讯云等都行)
  3. 一台内网主机
  4. 下载frp,选择适合的版本下载

5.服务端搭建:

解压如下:

frp解压

我这里服务器端和客户端都放在了/usr/java/frp/目录下,并解压frp

tar -zxvf frp_0.60.0_linux_amd64.tar.gz -C /opt

进入解压后的文件,修改服务端配置文件 frps.toml

# 服务
bindAddr = "0.0.0.0"
vhostHTTPPort = 7002 # http页面穿透出去的端口
subDomainHost = "ran.sky1.top"   # 三级域名
bindPort = 7000   # 内网穿透端口
# 用户认证
auth.method = "token"  # {可选}身份验证方式 
auth.token = "abcdefg"   # token设置密码,用于通过身份验证创建连接

# 后台管理
webServer.addr = "0.0.0.0" 
webServer.port = 7500  # frps管理后台端口
webServer.user = "admin"   # 登录名
webServer.password = "admin123" # 登录密码

# 日志保存设定,保存位置、保存时长
log.to = "./frps.log"
log.maxDays = 3

我这里的域名是三级域名,需要自己登录购买域名的地址进行解析。

启动命令(如果启动失败,需要先设置防火墙开放端口(服务器的防火墙、以及阿里云的防火墙),因为我这台是阿里云的服务器):

```bash
./frps -c frps.toml
````启动成功可以去浏览器验证一下仪表盘页面。

仪表盘访问地址:公网IP:[刚才配置的仪表盘端口]

至此服务器的安装配置和启动就完成。

---

### 6.内网Linux服务器(客户端)安装和配置

登录服务器,选择一个目录将当时下载的 frp 再上传一遍并解压,到内网服务器(客户端)。

安装步骤与服务端基本相同,除最后一步修改文件的不同,这里需要修改客户端的配置。

- 服务端修改的是 `frps.toml`
- 客户端修改的是 `frpc.toml`

此配置文件的意思是将服务端的 3306 端口代理到本地虚拟机的 40005 端口,也就是可以通过服务端的 3306 端口 SSH 连接到本地虚拟机。

启动客户端:

```bash
./frpc -c ./frpc.toml