Featured image of post Docker搭建Frp内网穿透服务

Docker搭建Frp内网穿透服务

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。 可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

开源地址:FRP github网址

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

  1. 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
  2. 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间
  3. 代理组间的负载均衡
  4. 端口复用,多个服务通过同一个服务端端口暴露
  5. 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作

一、服务端部署

1.debian、ubuntu、Centos系统一键安装docker

1
2
3
curl -fsSL get.docker.com -o get-docker.sh
curl -sSL https://get.daocloud.io/docker | sh
sudo sh get-docker.sh --mirror Aliyun

2.创建frp.ini文件并创建目录

1
2
mkdir /frp
vim /frp/frps.ini

3.编辑frps.ini配置文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[common]
bind_port = 7000
# 启用面板
dashboard_port = 7500
# 面板登录名和密码
dashboard_user = admin
dashboard_pwd = xxxxxx
# 使用http代理并使用80端口进行穿透
vhost_http_port = 80
# 使用https代理并使用443端口进行穿透
vhost_https_port = 443
# 日志路径
log_file = ./frps.log
# 日志级别
log_level = info
# 日志最大保存天数
log_max_days = 2
# 认证超时时间
authentication_timeout = 900
# 认证token,客户端需要和此对应
token=123123123
# 最大连接数
max_pool_count = 5
max_ports_per_client = 0

4.拉取镜像

1
docker pull snowdreamtech/frps:latest

docker安装frp

5.启动docker容器

1
docker run --restart=always --network host -d -v /frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps

运行容器

6.直接访问dashboard,输入账号密码

img

dashboard界面

可以直接访问,说明部署成功

二、Windows客户端部署

内网穿透工具:配置生成

Windows客户端下载

压缩包里包含以下文件

frp客户端

配置客户端文件,找到压缩包里的frpc.ini。

配置客户端

打开frp客户端,运行 打开frpc.bat 即可打开

img

三、Android客户端部署

首先下载Frpc客户端

GitHub开源项目:https://github.com/mainfunx/frpc_android

下载仓库最新的(虽说frps须与frpc版本一致,但frps不配置token还是可以跨版本使用的): https://github.com/mainfunx/frpc_android/releases/download/0.39.1.1/frpc_adnroid-v0.39.1.1.apk 下载安装好就是这个样子

photo_2023-02-22_17-31-14

photo_2023-02-22_17-31-17

配置文件如下:(根据个人需求进行修改,切勿照搬)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
[common]
server_addr = 54.180.101.36
server_port = 55185

[web]
type = tcp
local_ip = 127.0.0.1
local_port = 9978
remote_port = 7080

[web02]
type = tcp
local_ip = 127.0.0.1
local_port = 5245
remote_port = 7081

点保存名字随便取

photo_2023-02-22_17-31-20

四、Magisk-FRPC部署

用于在 Android 设备上运行 FRPC 的 Magisk 模块。

如果您的终端设备使用WEB服务或者其他需要远程访问的服务,那么该模块将是您不错的选择。

Magisk-FRPC:https://github.com/Yang2635/Magisk-FRPC/releases

  • 模块支持armarm64amd64x86架构。安装时自动判断设备指令架构并应用。
  • 使用模块携带的 Busybox 程序中 crond 命令建立定时任务检测状态。
  • FRPC 配置文件修改后会自动检测并重载配置文件。
  • Magisk 模块页面自动显示模块状态信息。
  • 检验文件完整性,防止模块被破坏。(感谢 Riru 模块提供的灵感)。
  • 可在 Magisk 模块中开启或关闭来控制 FRPC 程序启动与结束。
  • 设备电量低于 20% 且未在充电自动终止 FRPC 程序,请保持设备电量充足!
  • 在模块目录创建 screen 文件则表示息屏检测,反之不检测。

模块安装完成后,请到 Android/frpc 目录下浏览并编辑 frpc.ini 配置文件文件。然后重启设备,设备运行后,会在你的设备上运行 FRPC 守护程序。

模块仅在设备 Android/frpc 目录释放额外工作需要的文件(不含 frpc 日志自定义其它路径设置),若模块卸载时未执行 uninstall.sh 脚本,请手动清除 Android/frpc 目录内文件。

comments powered by Disqus
本博客已稳定运行
发表了77篇文章 · 总计103.35k字