frp内网穿透将你的本地服务器映射到外网

​FRP是什么?
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

frp内网穿透将你的本地服务器映射到外网

一、运行FRP的说明

  1. 你需要有一台固定IP的公网服务器,建议使用固定带宽,因为内网穿透(非P2P模式)走的是公网流量,如果用按流量计费的服务器,内网服务器做网盘等应用会非常浪费流量。
  2. 一台本地服务器,可以是windows、linux、macOS。
  3. 公网服务器与本地服务器要打开相应的端口,才能使服务生效。

二、下载FRP

目前可以在 Github 的 Release 页面中下载到最新版本的客户端和服务端二进制文件,所有文件被打包在一个压缩包中。

我们这里公网服务器本地服务器都是CentOS7的环境,所以我们要下载linux的安装文件【frp_0.38.0_linux_amd64.tar.gz

frp内网穿透将你的本地服务器映射到外网

三、FRP服务端配置

3.1 将FRP放到公网服务器中

解压缩下载的压缩包,将 frps 拷贝到具有公网 IP 的机器上,放置在任意目录。

frp内网穿透将你的本地服务器映射到外网

3.2 配置公网服务器的FRP文件

只需要配置一个文件 【frps.ini】

[common]
bind_port = 7000
token = sdfsfsdfsdfsdfsdfsdf
dashboard_port = 7001
dashboard_user = admin
dashboard_pwd = admin

参数说明:

bind_port:用于服务器用户接收客户端连接的端口

token:基于 Token 的身份验证方式比较简单,需要在 frpc 和 frps 的 [common] 段落中配置上相同的 token 参数即可。

dashboard_port:启用 Dashboard 监听的本地端口

dashboard_user:HTTP BasicAuth 用户名 (随意设置)

dashboard_pwd: HTTP BasicAuth 密码(随意设置)

dashboard 是用于监控FRP端口运行状态以及流量,设置好 dashboard 后可以通过 指定IP xx.xx.xx.xx:7001访问FRP的服务端仪表盘来查看运行状况。

frp内网穿透将你的本地服务器映射到外网

3.2 启动frps

配置文件编写好后,进入FRP所在目录通过 ./frps -c ./frps.ini 启动服务端

frp内网穿透将你的本地服务器映射到外网

四、FRP客户端配置

将解压缩的文件中的 frpc 拷贝到内网服务所在的机器上

4.1 将FRP放到本地服务器中

frp内网穿透将你的本地服务器映射到外网

4.2 配置公网服务器的FRP文件

只需要配置一个文件 【frpc.ini】

[common]
server_addr = xx.xx.xx.xx
server_port = 7000
token = sdfsfsdfsdfsdfsdfsdf

admin_addr = 192.168.31.3
admin_port = 7002
admin_user = admin
admin_pwd = admin

[frp-admin]
type = tcp local_ip = 192.168.31.3 local_port = 7002 remote_port = 7002 [btPanel] type = tcp local_ip = 127.0.0.1 local_port = 8892 remote_port = 6002

参数说明:

server_addr:连接服务端的地址

server_port:连接服务端的端口

token:鉴权使用的 token 值,需要和服务端设置一样的值才能鉴权通过

admin_addr:启用 AdminUI 监听的本地地址(本地服务器IP地址)

admin_port:启用 AdminUI 监听的本地端口

admin_user:HTTP BasicAuth 用户名

admin_pwd:HTTP BasicAuth 密码

以上的admin_*是开启本地服务器的管理web界面以及设置用户密码

[frp-admin]:仅在 frpc 中使用,用于配置单个代理的参数。代理名称必须唯一,不能重复(配置本地服务器管理 web界面 )

type = tcp:代理类型

local_ip = 192.168.31.3 :需要被代理的本地服务的 IP 地址,可以为所在 frpc 能访问到的任意 IP 地址

local_port = 7002 :本地服务端口,配合 local_ip

remote_port = 7002 :远程访问端口,用户访问此端口的请求会被转发到 local_ip:local_port

frp内网穿透将你的本地服务器映射到外网

[btPanel]:做一个宝塔面板的远程管理

type = tcp : 代理类型

local_ip = 127.0.0.1 :需要被代理的本地服务的 IP 地址,可以为所在 frpc 能访问到的任意 IP 地址

local_port = 8892 : 本地服务端口,配合 local_ip

remote_port = 6002 : 远程访问端口,用户访问此端口的请求会被转发到 local_ip:local_port

4.3 启动frpc

配置文件编写好后,进入FRP所在目录通过 ./frpc -c ./frpc.ini 启动客户端

frp内网穿透将你的本地服务器映射到外网

五、FRP自动启动配置

如果需要在后台长期运行,建议结合其他工具使用,我们这里用 systemd,让FRP自动启动。

5.1 配置服务端自动启动

5.1.1 配置服务端自动启动文件

新建一个服务端配置文件【frps.service】放在/lib/systemd/system/frps.service

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/frp/frps -c /frp/frps.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

注意:

ExecStart 这一项根据自己的服务器端FRP实际路径填写即可,我们是放在根目录下的frp文件夹的。

5.1.2 启动服务

systemctl start frps

5.1.3 让服务自动启动

systemctl enable frps

5.1.3 重启服务

systemctl restart frps

注意:每次配置新的代理或者修改代理都需要重启FRPS服务

5.2 配置客户端自动启动

5.2.1 配置服务端自动启动文件

新建一个服务端配置文件【frpc.service】放在/lib/systemd/system/frpc.service

[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/frp/frpc -c /frp/frpc.ini
ExecReload=/frp/frpc reload -c /frp/frpc.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

注意:

ExecStart 与 ExecReload 根据自己的服务器端FRP实际路径填写即可,我们是放在根目录下的frp文件夹的。

5.2.2 启动服务

systemctl start frpc

5.2.3 让服务自动启动

systemctl enable frpc

5.2.3 重启服务

systemctl restart frpc

注意:每次配置新的代理或者修改代表都需要重启FRPC服务

5.3 查看FRP服务是否自动启动

重启公网服务器与本地服务器,重启后运行【ps auxw】查看运行情况

服务端进程包含以下内容说明自动启动服务正常运行

frp内网穿透将你的本地服务器映射到外网

客户端进程包含以下内容说明自动启动服务正常运行

frp内网穿透将你的本地服务器映射到外网

到这里,FRP的内网穿透服务就搭建完成了,以上内容是我们自己搭建FRP服务根据实际情况整理的内容,如有错误的地方大家可在到FRP的 中文文档 或者 github 查询官方资料。 ​

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,如若转载,请注明出处。
本文链接:https://jishubiji.cn/post/1006

发表评论

登录后才能评论