frp介绍

frp是一个用于内网穿透的高性能反向代理应用,支持tcp、udp以及http、https提供额外的能力,还尝试性支持点对点穿透。

服务器端搭建

步骤

在github上面获取已发布的软件版本。

根据你的服务器系统来选择不同的发布版本,首先确认系统是linux、windows还是其它的,再确认是32位还是64位。

我的系统是Ubuntu 18.04 64位,因此选择:

  1. 下载解压
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文件示例
  1. 服务器端配置(frps.ini)
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = xx
dashboard_pwd = xx

bind_port:frp服务器端的监听端口
如果需要使用frp的仪表盘,那就需要配置dashboard相关,比如端口、用户名以及密码。

防火墙需要放开7000、7500的限制,这个根据不同的服务器厂商以及不同的系统有不同的设置。

  1. 启动服务
    ./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功能(远程桌面)为例说明客户端的配置及使用方法。

  1. 解压至纯英文路径,文件夹重命名为frpc
D:\software\frpc
  1. 修改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/) ;如果有域名可以绑定域名
  1. 启动客户端
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了。

最后修改:2020 年 12 月 12 日 10 : 22 PM