什么是frp内网穿透
frp 是一个开源项目, 采用 C/S 模式,将服务端部署在具有公网 IP 的机器上,客户端部署在内网或防火墙内的机器上,通过访问暴露在服务器上的端口,反向代理到处于内网的服务。 在此基础上,frp 支持 TCP, UDP, HTTP, HTTPS 等多种协议,提供了加密、压缩,身份认证,代理限速,负载均衡等众多能力。
为什么使用frp
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
代理组间的负载均衡。
端口复用,多个服务通过同一个服务端端口暴露。
多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
服务端和客户端 UI 页面。
下载
下载地址:Github,由于使用环境是VPS,所以只需要找到x86的版本即可。下载完成后进行解压,会得到frps和frpc文件夹,分别对应的服务端和客户端。
服务端搭建和使用
搭建配置
将刚才解压出来的fprs文件夹上传到服务器中,找到服务端的配置文件frps.ini
文件,对它进行配置。
[common]
bind_port = 7000
dashboard_port = 7500
token = 12345678
dashboard_user = admin
dashboard_pwd = admin
bind_port :用于客户端和服务端连接的端口
dashboard_port :启用 Dashboard 监听的本地端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为VPS的IP)查看frp服务运行信息。
token :用于客户端和服务端连接的口令,请自行设置并记录
dashboard_user :打开仪表板页面登录的用户名
dashboard_pwd :打开仪表板页面登录的密码
启动程序
./frps -c ./frps.ini
客户端搭建和使用
搭建配置
将解压的frpc文件夹上传到内网机器中,对frpc.ini
进行编辑
[common]
server_addr = x.x.x.x
server_port = 7000
token = 12345678
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
server_addr :为服务端(VPS)的公网IP
server_port :需与服务端配置一致
token :用于连接服务端的口令,需与服务端配置一致
type :表示连接类型,这里举例为tcp
local_ip :暴露到公网的服务地址,127.0.0.1表示本机
local_port :暴露到公网的服务端口
remote_port :表示在 frp 服务端监听的端口,访问此端口的流量将会被转发到本地服务对应的端口。
启动程序
./frpc -c ./frpc.ini
配置开机自启
Systemd 是 Linux 系统的一种初始化系统实现,它管理的各种服务叫做 Unit,每个服务对应一个 Unit 配置文件
此操作会把 frps 会被注册为一个服务,我们让
Systemd
来自动管理 frps,借此实现开机自启和后台运行**客户端frpc同理
- 使用文本编译器,创建并编辑
frps.service
文件
$ vim /etc/systemd/system/frps.service
- 写入内容
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frps -c /path/to/frps.ini
[Install]
WantedBy = multi-user.target
- 使用
systemd
命令,管理 frps
# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps
# 配置 frps 开机自启
systemctl enable frps
文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/4097