frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
作者是个中国人,所以在 GitHub 上还有中文文档,写的还挺详细的,不过…… 不去看文档是很多人的特点,所以我这边还是记点东西来介绍下简单的安装和操作配置。
一、Frp 的作用
利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个 80 端口。
利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。
二、安装配置
- 服务端
frp 提供了热门平台的程序文件,我的是 Linux 64 位平台的,目前最新版本为 v0.16.0
下载地址——> 传送门
wget https://github.com/fatedier/frp/releases/download/v0.16.0/frp_0.16.0_linux_amd64.tar.gz
tar xzf frp_0.16.0_linux_amd64.tar.gz
mv frp_*/ /root/frp/
修改 frps.ini 文件,这里使用了最简化的配置
vi /root/frp/frps.ini
官方完整版配置介绍——> 传送门
[common]
bind_port = 7000 #服务监听端口
dashboard_port = 7001 #Web的Dashboard端口
dashboard_user = xxxx #访问Dashboard的用户名
dashboard_pwd = xxxxxxxx #访问Dashboard的密码
privilege_token = xxxxx #服务端和客户端的 common 配置中的 privilege_token 参数一致则身份验证通过
从 v0.10.0 版本开始后特权模式是唯一可用的模式(因为方便,不用为了一个配置而既要改服务端又要改客户端)
在修改好服务端配置文件后,我们可以启用 frp 的服务端了
./frps -c ./frps.ini
同时别忘了在防火墙开放对应端口
- 客户端
客户端程序自己在 GitHub 上面下,各个平台的包里面 frps 是服务器,frpc 就是客户端
下载地址——> 传送门
修改 frpc.ini 文件
官方完整版配置介绍——> 传送门
[common]
server_addr = x.x.x.x #frps服务器ip
server_port = 7000 #frps监听端口
privilege_token = xxxxxx #frps的特权ID
[ssh]
type = tcp #类型:tcp udp
privilege_mode = true #启用特权模式
local_ip = 127.0.0.1
local_port = 22 #需要进行穿透的本地端口
remote_port = 81 #进行穿透的远程端口
use_encryption = true #启用加密
在 Linux 等平台下,执行如下命令就行
./frpc -c ./frpc.ini
而在 Windows 下,需要你创建一个 frpc.exe 的快捷方式,然后将参数加到快捷方式属性的目标那一栏的 frpc.exe 后面,也可以自己百度下如果将命令注册为系统服务来实现常驻
成功运行后,使用 frps 服务器 IP,端口 81 既可以访问到 frpc 的 ssh 服务
- 成功运行后,访问服务器的 7001 端口会有一个 WebGUI,如下,显示当前的状态,左侧的 Proxies 里会显示客户端注册的各种转发规则
三、设置 frps 开机启动
新建一个 shell 脚本
vi /root/frp.sh
内容如下
cd /root/frp/
./frps -c ./frps.ini
将此 shell 脚本加入开机启动脚本即可
vi /etc/rc.local
结尾添加
nohup sh /root/frp.sh >/dev/null 2>&1 &
文章来自 DUKE BLOG|www.81pla.cn