一、简介

        frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。通俗来讲,就是说通过在具有公网 IP 的节点上部署 frp 服务端,您可以轻松地将内网服务穿透到公网。
Github地址
说明文档

二、安装服务端

在具有公网IP的服务器上执行如下操作:

1、下载

FRP下载地址
使用和服务端相同的安装包即可
在这里插入图片描述

2、安装FRP

安装 systemd

yum install systemd
或
apt install systemd

创建 frps.service 文件

vim /etc/systemd/system/frps.service

写入内容

[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /wz_software/frp_0.61.1_linux_amd64/frps -c /wz_software/frp_0.61.1_linux_amd64/frps.toml

[Install]
WantedBy = multi-user.target

frps.toml文件内容如下

bindPort = 7000
# 接收http请求
vhostHTTPPort = 7001
# 客户端需要配置对应的token才允许映射,这里自己修改
auth.token = "**********"

#仅允许服务器上的指定端口/端口范围 避免滥用端口
allowPorts = [
  # 范围指定
  { start = 5000, end = 5500},
  # 单独指定
  # { single = 5501},
]

# 仪表盘配置
# 默认值为127.0.0.1。当您想从公共网络访问它时,将其更改为0.0.0.0
webServer.addr = "0.0.0.0"
webServer.port = 7002
# 仪表板的用户名和密码
webServer.user = "admin"
webServer.password = "**********"

3、使用 systemd 命令管理 frps 服务

# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps

4、设置 frps 开机自启动

sudo systemctl enable frps

三、安装客户端

在局域网服务器中执行如下操作
客户端与服务端的安装基本类似,这里也是使用systemd进行配置。

1、下载

FRP下载地址
这里我下载的v0.61.1版本
在这里插入图片描述

2、安装FRP

安装 systemd

yum install systemd
或
apt install systemd

创建 frpc.service 文件

vim /etc/systemd/system/frpc.service

写入内容,注意和服务端的执行文件和配置文件不同

[Unit]
# 服务名称,可自定义
Description = frp client
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /wz_software/frp_0.61.1_linux_amd64/frpc -c /wz_software/frp_0.61.1_linux_amd64/frpc.toml

[Install]
WantedBy = multi-user.target

frpc.toml文件内容如下

# 公网服务IP
serverAddr = "***********"
serverPort = 7000
# 需要与服务端保持一致
auth.token = "*******"

[[proxies]]
name = "ssh端口"
type = "tcp"
localIP = "0.0.0.0"
#本机需要映射的端口
localPort = 22
#映射到云服务器的哪个端口
remotePort = 5000

[[proxies]]
name = "测试服务端口"
type = "tcp"
localIP = "0.0.0.0"
#本机需要映射的端口
localPort = 8080
#映射到云服务器的哪个端口
remotePort = 5001

注意:systemd 默认在非常“干净”的环境中运行,有些情况下它无法解析或信任非标准挂载点。
你可以尝试临时复制到标准目录试试:

cp /wz_software/frp_0.61.1_linux_amd64/frpc /usr/local/bin/frpc
cp /wz_software/frp_0.61.1_linux_amd64/frpc.toml /etc/frpc.toml
systemctl daemon-reexec
systemctl daemon-reload
systemctl restart frpc

3、使用 systemd 命令管理 frpc 服务

# 启动frp
sudo systemctl start frpc
# 停止frp
sudo systemctl stop frpc
# 重启frp
sudo systemctl restart frpc
# 查看frp状态
sudo systemctl status frpc

4、设置 frpc 开机自启动

sudo systemctl enable frpc

四、访问仪表盘

http://公网ip:7002
在这里插入图片描述
到这里就可以通过自己的公网ip访问对应的内网服务了。

更多推荐