环境:
- 具有公网IP的服务器
- Centos7
- 需要内网穿透的客户端
文档
https://github.com/fatedier/frp/blob/master/README_zh.md
-
将 frps、frps.ini 及 frps.service 放到具有公网 IP 的机器上。
-
将 frpc 、frpc.ini 及 frpc.service 放到处于内网环境的机器上。
文件位置:
公网机器:
frps
/usr/bin/frpsfrps.ini
/etc/frp/frps.inifrps.service
/lib/systemd/system/frps.service
内网机器
frpc
/usr/bin/frpcfrpc.ini
/etc/frp/frpc.inifrpc.service
/lib/systemd/system/frpc.service
1. 服务端
关闭防火墙
systemctl disable firewalld
chkconfig iptables off
下载
https://github.com/fatedier/frp/releases
解压
tar -zxvf frp_0.28.2_linux_amd64.tar.gz
进入目录
cd frp_0.28.2_linux_amd64
移动位置
mv frps /usr/bin/frps
修改配置
- frps.ini
[common]
bind_addr = 0.0.0.0
bind_port = 9800
# 将8080端口作为内网访问端口
vhost_http_port = 8080
移动位置
mkdir -p /etc/frp && mv frps.ini /etc/frp/frps.ini
- systemd/frps.service
主要修改
ExecStart
,也就是脚本位置, 如果你是按照我的步骤走,可不用改此文件
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini
[Install]
WantedBy=multi-user.target
移动位置
mv systemd/frps.service /lib/systemd/system/frps.service
启动
# 注册系统服务
systemctl enable frps.service
# 开启
systemctl start frps.service
# 查看状态
systemctl status frps.service
# 关闭
systemctl stop frps.service
2. 客户端
下载
https://github.com/fatedier/frp/releases
解压
tar -zxvf frp_0.28.2_linux_amd64.tar.gz
进入目录
cd frp_0.28.2_linux_amd64
移动文件
mv frpc /usr/bin/frpc
修改配置文件
- frpc.ini
[common]
server_addr = 139.189.64.253 # 公网服务器地址
server_port = 9800 # frps.ini 中定义的 bind_port
# ssh连接
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
# 内网web服务暴露于
[web]
type = http
local_port = 80
custom_domains = blog.pibigstar.com
将 blog.pibigstar.com的域名 A 记录解析到 我们公网IP地址: x.x.x.x
通过浏览器访问 http://blog.pibigstar.com:8080 即可访问到处于内网机器上的 web 服务。
ssh连接
ssh -oPort=6000 root@139.189.65.203
移动位置
mkdir -p /etc/frp && mv frpc.ini /etc/frp/frpc.ini
- systemd/frpc.service
主要修改
ExecStart
,也就是脚本位置, 如果你是按照我的步骤走,可不用改此文件
[Unit]
Description=Frp Client Service
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frpc -c /etc/frp/frpc.ini
ExecReload=/usr/bin/frpc reload -c /etc/frp/frpc.ini
[Install]
WantedBy=multi-user.target
移动位置
mv systemd/frpc.service /lib/systemd/system/frpc.service
启动
# 注册系统服务
systemctl enable frpc.service
# 开启
systemctl start frpc.service
# 查看状态
systemctl status frpc.service
# 关闭
systemctl stop frpc.service