Docker搭建一款高性能的FRP内网穿透技术

同步来源:树洞剪藏 源站剪藏 ID:15 原文地址:https://mp.weixin.qq.com/s/akxVsoMrjJy9tPwykTcr7g?poc_token=HF6gNmejHE3CQq5C16OCPfuU6IQNrx9x2papy6Lf
Docker搭建一款高性能的FRP内网穿透技术
Docker搭建一款高性能的FRP内网穿透技术
原创
大中小黄
幼稚猿
2024年10月07日 08:00 广东
系统介绍 — — — — — 内网穿透(NAT穿透)技术使得处于局域网(内网)中的设备或服务可以被外部网络访问。由于局域网设备通常使用私有IP地址,这些地址在互联网上是不可路由的,因此需要内网穿透技术来实现外部访问。FRP(Fast Reverse Proxy)是一个专注于内网穿透的高性能的反向代理应用,可以将内网服务以安全、便捷的方式通过具有公网IP节点的中转暴露到公网。 基本原理 FRP内网穿透的基本原理是在内网客户端(frpc)和外网服务器(frps)之间建立一个连接通道。具体过程如下:
在具有公网IP的节点上部署FRP服务端(frps)。
在内网中运行FRP客户端(frpc),启动时会连接到公网上的FRP服务端,并保持长连接(如果断开了会进行重试)。
当外部用户请求内网服务时,FRP服务端会接收请求,并在本地查看是否有可用的连接。
如果没有可用的连接,FRP服务端会将请求转发到FRP客户端。
FRP客户端处理请求后,将响应转发回FRP服务端。
FRP服务端将响应返回给外部用户。
优缺点
优点:
隐藏内网中的服务器,避免因直接暴露内网服务器导致的安全问题。
支持动态端口映射,方便实现内网的服务器负载均衡。
客户端服务端通信支持多种协议,如TCP、QUIC、KCP以及Websocket等。
提供诸多专业的功能特性,如TCP连接流式复用、代理组间的负载均衡、端口复用等。 缺点:
在多端口映射或连接数多的情况下可能会出现不稳定的现象。
需要一台具有公网IP的服务器作为代理服务器。 应用场景
FRP内网穿透技术广泛应用于各种需要远程访问内网服务的场景,如:
远程访问和管理:允许用户从任何地方通过互联网连接到位于其他局域网内的设备或服务器。
游戏娱乐:如邀请朋友加入联机游戏,需要使用内网穿透技术将设备访问权暴露出去。
共享本地服务:实现文件共享、打印机访问或监控摄像头等资源的远程访问。
测试和开发环境:开发人员可以使用内网穿透将本地开发环境暴露给外部世界,方便进行开发和调试。 如需了解更多信息,可以访问其官方网站或查阅相关的技术文档。
Docker镜像-服务端 https://hub.docker.com/r/snowdreamtech/frps
Docker 镜像-客户端 https://hub.docker.com/r/snowdreamtech/frpc
GitHub地址 https://github.com/fatedier/frp
客户端下载地址 https://github.com/fatedier/frp/releases
安装教程 — — — — — 安装之前需要一台云服务器并且带公网IP,用于搭建 服务端。 Docker 部署操作 步骤: 安装Docker、创建配置文件、编写配置文件、安装服务端、安装客户端。 | 安 装docker
sudo apt update sudo apt install - y docker . io docker - compose | 创建 配置文件
创建frp文件
mkdir - p / home / docker / frp && cd / home / docker / frp
编辑文件
vim frps . ini
| 编写配置文件
[ common ] bind_port = 7000
启用面板
dashboard_port = 7500
面板登录名和密码
dashboard_user = admin dashboard_pwd = 123456
使用http代理并使用8888端口进行穿透
vhost_http_port = 8888
使用https代理并使用9999端口进行穿透
vhost_https_port = 9999
日志路径
log_file = . / frps . log
日志级别
log_level = info
日志最大保存天数
log_max_days = 1
认证超时时间
authentication_timeout = 900
认证token,客户端需要和此对应
token = 12345678
最大连接数
max_pool_count = 15 max_ports_per_client = 0
| 安装服务端
docker run - d
-- restart always
-- network host
-- name frps \
- v / home / docker / frp / frps . ini : / etc / frp / frps . ini
snowdreamtech / frps 上述指令执行后,在浏览器中访问http://ip:7500即可。
| 安装客户端 客户端以Windows为例,在GitHub下载相应版本并解压,然后修改配置文件frpc.ini。
[ common ]
服务端公网ip
server_addr = xxx . xxx . xxx . xxx
对应服务端配置 bind_port
server_port = 7000
对应服务端配置中的 token
token = 12345678
[ mysql ] type = tcp
此处不需要改
local_ip = 127.0.0.1
windows服务器默认的远程端口,如果考虑安全问题,可以修改远程端口,对应再修改此处
local_port = 3306
local_port映射的远程端口,也就是映射的服务端的端口
remote_port = 6000
在解压后的目录创建Windows启动bat文件frp_client.bat,文件代码如下
frpc . exe - c frpc . ini
运行bat文件后,在其他电脑使用数据库连接工具输入服务器公网IP和端口6000即可连接客户端的数据库。 除此之外,客户端还可以使用docker搭建,指令如下:
docker run -- restart = always -- network host - itd \
- v / home / docker / frp / frpc . ini : / etc / frp / frpc . ini
-- name frpc snowdreamtech / frpc
关注公众号,为你推荐更多原创干货! 更多内容也可看笔者出版图书 ! — — — —— —— — —— ——— — —
预览时标签不可点
Docker 175 运维 186 开源 179
Docker · 目录
上一篇 Docker搭建一款开源的个人书籍管理系统 下一篇 Docker搭建一款功能强大的数据库管理工具
关闭
更多
小程序 广告
搜索「undefined」网络结果
当前内容可能存在未经审核的第三方商业营销信息,请确认是否继续访问。
继续访问 取消 微信公众平台广告规范指引
: , 。
视频 小程序 赞 ,轻点两下取消赞 在看 ,轻点两下取消在看 分享 留言 收藏