frp 使用心得 亲测
涉及一共三种设备:
- 中转服务器 运行frps
- 受控服务器 运行frpc
- 操作终端 运行ssh
原理及步骤
1. 中转服务器 运行frps
开启运行frps服务后,开放frps监听端口(7000),接收frps的连接
2. 受控服务器 运行frpc
开启运行frpc服务后,连接frps的ip(x.x.x.x):监听端口(6000);
开放frpc监听端口,接收中转服务器连接
3. 中转服务器 成功接收frpc的连接
在中转服务器中,新开放与受控服务器相同的端口(6000),接收操作终端的连接
√ 此时FRP服务正式启动完毕;
4. 操作终端 运行ssh
通过ssh连接 1.中转服务器的ip(x.x.x.x) : 受控服务器端口(6000)
因此,中转服务器的路由器/防火墙,需要转发/开放7000,6000端口(还有7500的frp页面管理端口)
下载@中转服务器
目前最新,居然不带.service文件...
wget https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_linux_amd64.tar.gz
tar xvf frp_0.45.0_linux_amd64.tar.gz
cd frp_0.45.0_linux_amd64
cp frps /usr/bin
mkdir -p /etc/frp/
cat << EOF > /etc/frp/frps.ini
[common]
# frp监听的端口,默认是7000,可以改成其他的
bind_port = 7000
# 授权码,请改成更复杂的
token = <yourpasswd>
# 这个token之后在客户端会用到
# frp管理后台端口,请按自己需求更改
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true
# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3
EOF
chmod 666 /var/log/frps.log
#否则会报权限错误
frps.service
@
/etc/systemd/system/
cat << EOF > /etc/systemd/system/frps.service
[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
EOF
下载@受控服务器
目前最新,居然不带.service文件...
wget https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_linux_amd64.tar.gz
tar xvf frp_0.45.0_linux_amd64.tar.gz
cd frp_0.45.0_linux_amd64
cp frpc /usr/bin
cat << EOF > frpc.ini
# 客户端配置
[common]
server_addr = x.x.x.x
server_port = 7000
# 与frps.ini的bind_port一致
token = <yourpasswd>
# 与frps.ini的token一致
# 配置ssh服务
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
# 这个自定义,之后再ssh连接的时候要用
EOF
mkdir -p /etc/frp/
cp frpc.ini /etc/frp/frpc.ini
cat << EOF > /etc/systemd/system/frpc.service
[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
[Install]
WantedBy=multi-user.target
EOF
操作终端
ssh 用户@x.x.x.x -p 6000 (frpc监听端口)