树洞剪藏#剪藏#树洞剪藏

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

2024 年 11 月 15 日1 分钟
分享Twitter / XTelegram微博

同步来源:树洞剪藏 源站剪藏 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」网络结果

当前内容可能存在未经审核的第三方商业营销信息,请确认是否继续访问。

继续访问 取消 微信公众平台广告规范指引

: , 。

视频 小程序 赞 ,轻点两下取消赞 在看 ,轻点两下取消在看 分享 留言 收藏

相关文章