一、Frp介绍
frp是一个专注于内网穿透的高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种协议。可以将内网服务以安全、便捷的方式通过具有公网IP结点的中转暴露到公网。
通过在具有公网IP的节点上部署frp服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,包括:
- 客户端服务端通信支持TCP、KCP以及WebSocket等多种协议
- 采用TCP连接流式复用,在单个连接间承载更多请求,节省连接建立时间
- 代理组间的复杂均衡
- 端口复用,多个服务通过同一个服务端端口暴露
- 多个原生支持的客户端插件(静态文件查看,HTTP、SCOK5代理等),便于独立使用frp客户端完成某些工作
- 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展
- 服务端和客户端UI页面
二、Server端
配置 Frps.ini 文件
[common]
bind_addr = 0.0.0.0 # 服务器监听IP地址,默认为127.0.0.1(可省略)
bind_port = 7000 # 服务器监听端口,默认为7000(必填,自定义)
token = access_key # 安全验证指令(可省略)
开启 Frps 服务
#!/usr/bin/env bash
nohup ./frps -c ./frps.ini &
三、Client端
配置 Frpc.ini 文件
[common]
server_addr = xxx.xxx.xxx.xxx # 公网服务器IP地址
server_port = 7000 # 公网服务器监听端口,务必与Server端配置一致
token = access_key # 安全验证指令(可省略)
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22 # frpc映射的本地端口
remote_port = 10000 # frpc映射的公网端口
开启 Frpc 服务
#!/usr/bin/env bash
nohup ./frpc -c ./frpc.ini &
四、开机自启
4.1 相关配置
进入存放开机自启文件的路径
cd /etc/systemd/system
新建名为frpc.service
的文件,并编辑相关内容
sudo touch frpc.service
sudo vim frpc.service
将以下内容粘贴进入(先按i
键进入编辑模式,然后进行复制粘贴)
[Unit]
Description=My Frp Client Service - %i
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
Restart=on-failure
RestartSec=5s
ExecStart=/bin/bash -c '/frp/frpc -c /frp/frpc.ini'
[Install]
WantedBy=multi-user.target
注意:这里的/frp/frpc和/frp/frpc.ini分别是frpc程序和配置文件的路径
4.2 设置开机自启
sudo systemctl enable frpc
4.3 其他命令
sudo systemctl start frpc # 启动frpc服务
sudo systemctl status frpc # 查看frpc状态