https://gofrp.org/docs/overview/
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
frp 主要由 客户端 (frpc) 和 服务端 (frps) 组成,服务端通常部署在具有公网 IP 的机器上,客户端通常部署在需要穿透的内网服务所在的机器上。
内网服务由于没有公网 IP,不能被非局域网内的其他用户访问。
用户通过访问服务端的 frps,由 frp 负责根据请求的端口或其他信息将请求路由到对应的内网机器,从而实现通信。
一台服务器
服务器的配置看个人需求,建议购买国外 VPS ,可以减少备案和带宽限制的麻烦
参考内容(非必须)
Vultr注册购买:https://www.vultr.com/
SSH 连接工具(可选)
可选,现在很多服务器厂商都支持 WEB 端访问,不过建议安装必要的工具,因为这样操作比较方便(不针对小白)
参考内容(非必须)
FinalShell下载:http://www.hostbuf.com/t/988.html
域名(可选)
建议准备好一个域名,它满足市面上 99% 搭建场景,放在哪里都是合适的
参考内容(非必须)
域名购买地址:https://www.namesilo.com
NPM 反向代理工具(可选)
全称 Nginx Proxy Manager,用于通过简单而强大的界面管理 Nginx 代理主机
官方文档:https://nginxproxymanager.com/
uname -a
或
arch
GitHub:https://github.com/fatedier/frp/releases
修改或更新 frps.ini
启动服务
./frpc -c ./frpc.ini
注意:不同的系统,命令方式可能存在差异,所以一定要找对对应的系统
下面以 CentOS 系统为例
/opt/docker/frps
为例mkdir -p /opt/docker/frps && cd /opt/docker/frps
mkdir -p ./{conf,data,logs}
注意:后续操作中,产生的所有数据都会保存在这个目录,请妥善保存
conf
目录下创建 frps.ini
touch conf/frps.ini
# frps.ini
[common]
# frp 监听端口,与客户端绑定端口
bind_port= 5443
kcp_bind_port = 5443
# dashboard 用户名和密码
dashboard_user= username
dashboard_pwd= password
# dashboard 端口,启动成功后可通过浏览器访问如http://ip:9527
dashboard_port= 9527
# 设置客户端 token,对应客户端有页需要配置一定要记住,如果客户端不填写你连不上服务端
token = 8ad3d1x429a2d
docker-compose.yml
version: '3.3'
services:
frps:
restart: always
network_mode: host
volumes:
- './conf/frps.ini:/etc/frp/frps.ini'
container_name: frps
image: snowdreamtech/frps
docker-compose up -d
一般客户端会安装在 window、macOS、nas等一些在局域网中使用的设备
下面是使用命令行方式,仅作为参考示例
/opt/docker/frpc
为例mkdir -p /opt/docker/frpc && cd /opt/docker/frpc
mkdir -p ./{conf,data,logs}
conf
目录下创建 frps.ini
# frpc.ini
[common]
# 服务端IP
server_addr = 108.166.202.212
server_port = 5443
token = 8ad3d1x429a2d
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 222
# 这个自定义,之后再ssh连接的时候要用
remote_port = 6000
[web]
type = tcp
local_ip = 127.0.0.1
local_port = 8092
remote_port = 6001
[NAS]
type = tcp
local_ip = 127.0.0.1
local_port = 5000
remote_port = 6003
[RDP]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 7001
[vnc]
type = tcp
local_ip = 127.0.0.1
local_port = 5900
remote_port = 5900
use_encryption = true
use_compression = true
docker-compose.yml
version: '3.3'
services:
frpc:
restart: always
network_mode: host
volumes:
- './conf/frpc.ini:/etc/frp/frpc.ini'
container_name: frpc
image: snowdreamtech/frpc
docker-com pose up -d
GitHub 地址: https://github.com/fatedier/frp
官方文档: https://gofrp.org/docs/concepts/
镜像地址:https://hub.docker.com/r/snowdreamtech/frpc