frp介绍
frp是一个用于内网穿透的高性能反向代理应用,支持tcp、udp以及http、https提供额外的能力,还尝试性支持点对点穿透。
服务器端搭建
步骤
在github上面获取已发布的软件版本。
根据你的服务器系统来选择不同的发布版本,首先确认系统是linux、windows还是其它的,再确认是32位还是64位。
我的系统是Ubuntu 18.04 64位,因此选择:
- 下载解压
wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz
tar -zxvf frp_0.34.3_linux_amd64.tar.gz
为了方便使用,可以将目录名称修改为frps。
mv frp_0.34.3_linux_amd64 frps
解压出来以下文件:
- frpc: frp客户端可执行文件
- frpc_full.ini: frp客户端支持的所有配置参数
- frpc.ini:frp客户端使用配置文件
- frps:frp服务器端可执行文件
- frps_full.ini: frp服务器端支持的所有配置参数
- frps.ini: frp服务器端使用配置文件
- LICENSE:许可证
- systemd:service文件示例
- 服务器端配置(frps.ini)
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = xx
dashboard_pwd = xx
bind_port:frp服务器端的监听端口
如果需要使用frp的仪表盘,那就需要配置dashboard相关,比如端口、用户名以及密码。
防火墙需要放开7000、7500的限制,这个根据不同的服务器厂商以及不同的系统有不同的设置。
- 启动服务
./frps -c frps.ini
开机自启动
将systemd
目录下的文件frps.service
拷贝到系统systemd目录下去。
cp systemd/frps.service /lib/systemd/system/ -af
然后编辑
vi /lib/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
默认用户为nobody
,配置你自己想要的用户,如果为root,则修改为root。如果为当前用户,可以通过whoami
来查看当前用户名。
通用,frps以及frps.ini的路径也需要重新修改。
通过pwd
获取当前路径,比如我的
/root/service/frps
修改之后的service文件
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
User=root
Group=root
Restart=on-failure
RestartSec=5s
ExecStart=/root/service/frps/frps -c /root/service/frps/frps.ini
[Install]
WantedBy=multi-user.target
Group=root,这个可加可不加,如果需要指定一个用户组可以用该参数指定。
开启自启动
systemctl enable frps
启动
systemctl start frps
重启
systemctl restart frps
终止
systemctl stop frps
客户端搭建
步骤
同样按照你的客户端所在的系统来确定下载什么发布版本,比如我的windows 10 64位操作系统,需要下载:
由于客户端一般都会指定需要内网穿透的协议端口之类的,因此本文以RDP功能(远程桌面)为例说明客户端的配置及使用方法。
- 解压至纯英文路径,文件夹重命名为frpc
D:\software\frpc
- 修改frpc.ini,将本地远程端口3389映射到外网7101端口。
common]
server_addr = xxx
server_port = 7100
[RDP] ;这个是反向代理的名称,可以随意设置
type = tcp ;RDP是TCP协议
local_ip = 127.0.0.1 ;本机IP
local_port = 3389 ;远程桌面的默认端口
remote_port = 7101 ;外网访问的端口
custom_domains = [www.yourdomain.com](http://www.yourdomain.com/) ;如果有域名可以绑定域名
- 启动客户端
frpc.exe –c frpc.ini
开机自启动
新建一个启动的bat文件frpc.bat
。
@echo off
:home
frpc.exe -c frpc.ini
goto home
将frpc.bat
文件放置于frp根目录,即bat文件与frpc.exe在同一目录。
通过windows任务计划程序设置开机启动frpc。
在搜索框找到任务计划程序
。
点击右侧创建任务
创建任务 - 常规设置
- 名称可以按照你自己定的随便填写。
- 选择
不管用户是否登录都要运行
可以让你的电脑在断电自动启动后自动运行 frp,而不用等待用户登录之后再启动。 使用最高权限运行
也是可选的,根据个人需要可以选上。隐藏
,如果勾选则不会在启动时弹出命令行窗口。
创建任务 - 触发器
新建触发任务,设置为启动时
。
创建任务 - 操作
程序或脚本
, 选择新建的bat
文件。起始于
,设置位bat文件所在的文件夹路径,而非文件路径。
在返回常规
页,点击确定,会提示你输入你的PC密码。
以后开机就可以自动启动frpc了。