1. frp下载与安装
frp 是⼀个开源、简洁易⽤、⾼性能的内⽹穿透和反向代理软件,⽀持 tcp, udp, http, https等协议。
- frp项目官网下载地址
根据自己的设备类型选择适合的软件下载。
2.frp的配置
- 条件:配置frp穿透之前,需要有一台外网的ip,配置即需要配置服务端,又需要配置客户端。
2.1 服务端配置
2.1.1 下载frp文件
下载地址:戳我一下
以文件 frp_0.48.0_darwin_amd64.tar.gz
为例。
将文件上传至服务端的家目录。
2.1.2 修改配置文件
- 将frp的压缩包上传到云服务的家目录之后, 远程登录云服务端
- 解压压缩包
tar -zxvf frp_0.48.0_darwin_amd64.tar.gz
- 进入解压后的目录
cd frp_0.48.0_darwin_amd64
- 打开并修改配置文件
vi frps.ini
- 将frps文件内容修改为如下:
[common]
# frp监听的端口,默认是7000,可以改成其他的
bind_port = 7000
# 授权码,请改成更复杂的
token = gaichengfuzade #该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 = 2
这个是别人修改好之后的,仅供参考
2.1.3 设置frp自启动服务
- 创建systemd/frps.service文件
如果下载的版本里含有systemd/frps.service文件则可以忽略,如果没有的话,需要新建systemd文件夹和frps.service文件。
mkdir systemd
vi frps.service
将下面的配置复制到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
- 接下来开始移动文件到指定的路径下并设置自启动服务。
#创建/etc/frp目录
sudo mkdir -p /etc/frp
#将frps.ini移动到/etc/frp目录下
sudo mv frps.ini /etc/frp
#将frps程序移动到/etc/bin目录下
sudo mv frps /usr/bin
#将frps.service移动到/usr/lib/systemd/system/
sudo mv systemd/frps.service /usr/lib/systemd/system/
#允许开机自启动
sudo systemctl enable frps
sudo systemctl start frps
2.1.4 配置防火墙
- 尝试使用下面命令配置防火墙
#添加监听端口
sudo firewall-cmd --permanent --add-port=7000/tcp
#添加管理后台端口
sudo firewall-cmd --permanent --add-port=7500/tcp
sudo firewall-cmd --reload
- ubuntu或者centos6 ,需要使用ufw/iptables工具配置。
我的云服务为Ubuntu,需要配置ufw。
sudo ufw allow 7000
sudo ufw allow 7500
- 以腾讯云为例,还得需要配置一个地方来添加防火墙。需要在这个地方添加防火墙。
2.1.5 验证服务端是否启动成功
访问:http://服务器IP:后台管理端口 ,输入用户名和密码可以查看链接状态。
至此,frps的服务端配置成功且完毕。
2.2 frp客户端配置
2.2.1 下载frp文件
下载地址:戳我一下
以文件 frp_0.48.0_darwin_amd64.tar.gz
为例。
将文件放到需要配置frp设备的家目录。
2.2.2 修改配置文件
- 解压压缩包
tar -zxvf frp_0.48.0_darwin_amd64.tar.gz
- 进入解压后的目录
cd frp_0.48.0_darwin_amd64
- 打开并修改配置文件
vi frpc.ini
将文件内容修改为如下:
# 客户端配置
[common]
server_addr = xx.xx.xx.xx
# 与frps.ini的bind_port一致
server_port = 7000
# 与frps.ini的token一致
token = 52010
# 配置ssh服务
[ssh]
type = tcp
local_ip = 192.168.xx.xx
local_port = 22
# 这个自定义,之后再ssh连接的时候要用
remote_port = 6000
#配置vnc服务
[vnc]
type = tcp
local_ip = 192.168.xx.xx
local_port = 3389
remote_port = 80
# 配置http服务,可用于小程序开发、远程调试等,如果没有可以不写下面的
#[web]
#type = http
#local_ip = 127.0.0.1
#local_port = 8080
# web域名
#subdomain = test.hijk.pw
# 自定义的远程服务器端口,例如8080
#remote_port = 8080
- 注意:[ssh] 这样的名称必须全局唯一,如果有多个客户端的话,其他的客户端在配置的时候,需要将[ssh]替换为[ssh2]、[ssh3]等,并且remote_port也要保持唯一。
- 记得remote_port也要配置防火墙。
2.2.3 添加自启动
mkdir systemd
cd systemd
vi frpc.service
- 将下面的内容复制到frpc.service里面。
[Unit]
Description=Frp Client
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
- 接下来开始移动文件到指定的路径下并设置自启动服务。
#创建/etc/frp目录
sudo mkdir -p /etc/frp
#将frpc.ini移动到/etc/frp目录下
sudo mv frpc.ini /etc/frp
#将frpc程序移动到/etc/bin目录下
sudo mv frpc /usr/bin
#将frpc.service移动到/usr/lib/systemd/system/
sudo mv systemd/frpc.service /usr/lib/systemd/system/
#允许开机自启动
sudo systemctl enable frpc
2.2.4 添加防火墙
sudo firewall-cmd --permanent --add-port=6000/tcp
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload
2.2.5 启动frp客户端
sudo systemctl start frpc
然后就可以登录frp远程控制客户端的机器了。
ssh -p 6000 客户端用户@云主机的IP
- 其中6000是本地frpc.ini里面remote_port配置的值,且每个客户端唯一。
3.frp 一键安装(未尝试过)
安装frps
- 阿里云下载脚本
wget https://code.aliyun.com/MvsCode/frps-onekey/raw/master/install-frps.sh -O ./install-frps.sh
chmod 700 ./install-frps.sh
./install-frps.sh install
- github下载脚本
wget https://raw.githubusercontent.com/MvsCode/frps-onekey/master/install-frps.sh -O ./install-frps.sh
chmod 700 ./install-frps.sh
./install-frps.sh install
卸载frps
./install-frps.sh uninstall
更新frps
执行更新之前,必须得先安装之后,才可以更新。
./install-frps.sh update
Frps 相关命令
以下为frps使用过程中可能会用到的命令。
服务启动: /etc/init.d/frps start
服务停止:/etc/init.d/frps stop
服务重启:/etc/init.d/frps restart
服务状态:/etc/init.d/frps status
服务配置文件:/etc/init.d/frps config
服务版本号:/etc/init.d/frps version