服务器操作系统:Centos 7.3

frp版本:0.13.0

frp简介

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。其官方地址是:https://github.com/fatedier/frp ,相关配置可查阅官方中文文档。

准备

frp需要一台服务器来运行服务端,所以在使用之前需要一台有公网IP的服务器。国内的可以考虑阿里云腾讯云等,国外的可以考虑VultrLinode等,如果只是单纯的用来搭建frp服务端可买国外的VPS,价格较国内云服务器便宜。

下载

先到frp下载页面下载文件包,文件包包含服务端和客户端,目前最新版是v0.13.0,根据个人条件下载相应的文件,由于我用于搭建服务端的服务器是linux,所以我选择的是frp_0.13.0_linux_amd64.tar.gz

命令:

# 下载
wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz

# 解压
tar -zxvf frp_0.13.0_linux_amd64.tar.gz

# 进入解压后的目录
cd frp_0.13.0_linux_amd64

服务端配置

编辑服务端配置文件:

vi frps.ini

frps.ini内容:

[common]
# 绑定端口
bind_port = 7000   
# 特权token
privilege_token = 12345678 

# 配置仪表盘端口
dashboard_port = 7500

# 配置仪表盘访问认证
dashboard_user = admin
dashboard_pwd = admin

保存退出,并启动服务器

保存
Esc -> :wq

# 启动服务
./frps -c ./frps.ini

看到类似以下文本则说明启动服务成功:

2017/09/22 10:28:43 [I] [main.go:112] Start frps success
2017/09/22 10:28:43 [I] [main.go:114] PrivilegeMode is enabled, you should pay more attention to security issues

此时,访问http://{ip}:7500并正确输入用户名及密码登录,登录成功后即可看到Dashboard页面:

frps Dashboard仪表盘页面

设置自启

编辑/usr/lib/systemd/system/frps.service:

vim /usr/lib/systemd/system/frps.service

内容如下:

[Unit]
Description=frps
After=network.target

[Service]
TimeoutStartSec=30
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini  #frp安装目录
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

启动frps并设置开机自启

sudo systemctl enable frps
sudo systemctl start frps

# 查看状态
sudo systemctl status frps

客户端连接

Linux环境

1.修改配置文件frpc.ini

# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
privilege_token = 12345678

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
# 配置远程端口
remote_port = 6000

2.设置自启,修改文件:/usr/lib/systemd/system/frpc.servie,内容参考以上服务端自启配置,改ExecStart即可:

ExecStart=/usr/local/frpc/frpc -c /usr/local/frpc/frpc.ini  # frpc安装目录

执行命令:

# 启用服务
systemctl enable frpc

# 开启
systemctl start frpc

如果不成功,可能就是SELinux导致的,关闭SELinux:

修改/etc/selinux/config,并重启服务器:

SELINUX=disabled

连接测试:

ssh -oPort=6000 test@x.x.x.x

参考

CentOS/Ubuntu系统的FRP开机启动方法

Windows环境

本次我下载的是0.13.0版本,在连接过程一直出现错误,无论怎么修改frpc.ini配置,访问的始终是0.0.0.0,后来使用命令尝试连接才知道是frpc.exe使用的配置文件为frps.ini,而不是frpc.ini,官方Github也提到:frpc 客户端配置文件错误 #405

解决方法:

使用命令进入frpc.exe所在目录,并使用命令启动frpc.exe并指定其配置文件:

frpc.exe -c frpc.ini

设置自启

使用nssmfrp注册为系统服务。

下载nssm.exe,链接:下载-NSSM

解压后用命令进入其目录并使用命令安装:

nssm.exe install frpc

nssm弹窗:

nssm安装服务窗口

Path:选择frpc.exe文件

Arguments:中输入-c frpc.ini

最后单击Install service

打开系统服务管理,并启动frpc服务。

文章目录