FRP通过公网IP实现内网穿透
FRP通过公网IP实现内网穿透
- 一、简介
- 二、安装服务端
- 1、下载
- 2、安装FRP
- 3、使用 systemd 命令管理 frps 服务
- 4、设置 frps 开机自启动
- 三、安装客户端
- 1、下载
- 2、安装FRP
- 3、使用 systemd 命令管理 frpc 服务
- 4、设置 frpc 开机自启动
- 四、访问仪表盘
一、简介
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
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访问对应的内网服务了。