docker frps 内网穿透容器化服务
1.windwos terminal 主题美化 包括WSL和其他终端命令行2.win11+cuda11.2+cudnn+Tensorflow-GPU 环境配置3.win11+wls2+ubuntu2004配置cuda+cudnn+pytorch4.xshell7 无法打开 提示"要继续使用此程序,您必须应用最新的更新或使用新版本" 解决方案5.wls2 ubuntu22 kind k8s 配置记录6.wsl2安装与配置7.PVE UPS NUT配置 自动关机8.centos-stream-9 centos9 配置国内源 阿里云源9.群晖gitlab备份迁移10.国内网站recaptcha无法使用的解决办法11.[每日小技巧] vscode配置vue项目基础12.Windows11 AirPods /AirPods Pro 声音小解决方案13.windows端口占用快速查询解决方法14.解决github无法连接错误 OpenSSL SSL_connect: Connection was reset in connection to github.com:44315.[ABP教程]第七章 作者:数据库集成16.[ABP教程]第六章 作者:领域层17.[ABP教程]第五章 授权18.[ABP教程]第四章 集成测试19.[ABP教程]第三章 创建、更新和删除图书20.[ABP教程]第二章 图书列表页面21.[ABP教程]第一章 创建服务端22.[Skill] git下载助手23.[Abp]Abp 新手入门随记24.[Skill] 记一次vue项目热更新失败案例25.[Skill]加速npm与yarn还原26.解决黑群晖"抱歉,您所指定的页面不存在"-记一次黑群晖修复案例27.如何下载youtube的视频?28.[新手教程]申请https泛域名解析
29.docker frps 内网穿透容器化服务
30.docker nginx 自定义配置容器31.asp.net core 学习笔记32.gitlab git仓库地址修改后更新方法33.树莓派(4B)新手入门教程34.Docker-MsSqlServer和安装版本异同35.Win Task 任务管理器 批量杀进程方法36.Win Docker 安装C盘清理方法之一37.中移动ipv6-老毛子固件获取ipv6设置38.win7-win10 禁用IPV6临时地址39.辅助调用函数【call,apply,bind】40.Unraid修改docker镜像地址&默认启动41.docker基本入门知识-小白向42.[不止于代码]Unraid基本使用速记43.Dockerfile文件说明44.Git之pull,fetch差别45.ES6+Webpack+Babel基本环境搭建46.抽象类和接口的异同及实例解析47.KVM与OpenVZ架构的区别48.关闭win10 defender的方法集锦49.ChromeDriver与Chrome版本对应表50.Hexo-Next-多地同步丢失解决(WARN No layout: index.html)51.修改vs模板添加版权注释信息52.Easyui中form表单验证事件不通过处理方法53.最简化版本-Centos7 配置.Net Core 及Jexus服务器54.常用开发中使用到的作图工具(开发向)55.Git 常用指令备注56.记一次 未能加载文件或程序集“”或它的某一个依赖项。试图加载格式不正确的程序 错误解决方案57.截图工具小结58.更优雅的处理数据-linqjs59.解决未安装Sql Server 配置数据库别名60.windows添加右键菜单-此处运行CMD61.记一次微信开发安卓访问阿里云服务器慢处理方案62.Hexo发布到Github丢失readme和CNAME解决方案63.Git之别名配置64.Github博客多地同步文章65.Github博客 自定义域名66.Github 搭建个人博客67.(转载)开源许可证教程68.小米路由mini刷 改华硕[N14U N54U]5G 2G的7620老毛子Padavan固件(私人云储存 aria2 QOS)69.小米路由mini刷不死breed70.小米路由mini开启ssh71.比特币是什么?72.IIS发布网站出现拒绝访问的错误分析73.公众平台服务号、订阅号、企业微信、小程序的相关说明准备#
- 域名解析 将frp.xx.com解析到服务器ip,将泛域名 *.frp.xx.com解析到frp.xx.com即可
- https证书申请 泛域名证书现在可以用acme.sh申请Let's Encrypt证书,坑挖好了 ,看这里 [新手教程]申请https泛域名解析
- GitHub下载最新编译文件 GitHub frp releases
- 复制frps和frps.ini文件到frps目录下
frps
--frps
--frps.ini
--Dockerfile
- 修改frps.ini配置文件
只需要按需修改
name | value | rmk |
---|---|---|
vhost_http_port | 8888 | http端口 |
vhost_https_port | 445 | https端口 |
dashboard_user | username | web管理端管理员账户 |
dashboard_pwd | password | web管理端管理员密码 |
subdomain_host | frp.xx.com | 子域名配置 |
# [common] is integral section
[common]
# A literal address or host name for IPv6 must be enclosed
# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
bind_addr = 0.0.0.0
bind_port = 7000
# udp port to help make udp hole to penetrate nat
bind_udp_port = 7001
# udp port used for kcp protocol, it can be same with 'bind_port'
# if not set, kcp is disabled in frps
kcp_bind_port = 7000
# specify which address proxy will listen for, default value is same with bind_addr
# proxy_bind_addr = 127.0.0.1
# if you want to support virtual host, you must set the http port for listening (optional)
# Note: http port and https port can be same with bind_port
vhost_http_port = 8888
vhost_https_port = 445
# response header timeout(seconds) for vhost http server, default is 60s
# vhost_http_timeout = 60
# set dashboard_addr and dashboard_port to view dashboard of frps
# dashboard_addr's default value is same with bind_addr
# dashboard is available only if dashboard_port is set
dashboard_addr = 0.0.0.0
dashboard_port = 7500
# dashboard user and passwd for basic auth protect, if not set, both default value is admin
dashboard_user = user
dashboard_pwd = 124356aabb
# dashboard assets directory(only for debug mode)
# assets_dir = ./static
# console or real logFile path like ./frps.log
log_file = /frps/frps.log
# trace, debug, info, warn, error
log_level = info
log_max_days = 3
# disable log colors when log_file is console, default is false
disable_log_color = false
# auth token
token = tokenwords
# heartbeat configure, it's not recommended to modify the default value
# the default value of heartbeat_timeout is 90
# heartbeat_timeout = 90
# only allow frpc to bind ports you list, if you set nothing, there won't be any limit
allow_ports = 2000-3000,3001,3003,4000-50000
# pool_count in each proxy will change to max_pool_count if they exceed the maximum value
max_pool_count = 5
# max ports can be used for each client, default value is 0 means no limit
max_ports_per_client = 0
# if subdomain_host is not empty, you can set subdomain when type is http or https in frpc's configure file
# when subdomain is test, the host used by routing is test.frps.com
subdomain_host = frp.xx.com
# if tcp stream multiplexing is used, default is true
tcp_mux = true
# custom 404 page for HTTP requests
# custom_404_page = /path/to/404.html
- 修改Dockerfile文件
FROM centos
WORKDIR /frp
COPY . .
RUN chmod -R 777 /frp
CMD ["/frp/frps","-c","/frp/frps.ini"]
- 创建镜像
frps目录下执行
docker build -t frps .
- 创建并启动容器
docker run -d --restart=always -v /etc/frp/frps.ini:/frp/frps.ini -p 7000:7000 -p 7500:7500 -p 8888:8888 -p 445:445 --name frps_server frps
注意#
445端口在win下为保留端口,请换到1000以上端口,具体参考msdn的文档说明#
测试#
访问IP:8888查看是否正常,若有异常可用 docker log 容器id 进行查看错误日志后处理
扩展#
看的比较仔细的小伙伴已经看到了,我们端口设置的是8888,并不是80.访问的时候需要带上端口,使用上并不方便,下面我们将配置nginx转发,实现域名访问.
点这里继续 docker nginx 自定义配置容器
作者: LandWind
出处:https://www.cnblogs.com/LandWind/p/docker-frps-first.html
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下