【内网穿透实战】基于Frp与Docker Compose,打造高可用群晖远程访问方案 1. 为什么需要内网穿透家里有群晖NAS的朋友都知道想要在外网访问家里的NAS资源是个头疼事。运营商不给公网IPQuickConnect速度又慢得像蜗牛这时候就需要内网穿透技术来帮忙了。我最早用花生壳后来试过Ngrok最后发现还是Frp最稳。Frp是个开源的内网穿透工具用Go语言写的性能好还跨平台。最重要的是它能穿透各种协议不管是HTTP、HTTPS还是TCP都能搞定特别适合群晖这种多功能NAS。2. 准备工作2.1 硬件需求首先你得有台云服务器做Frp服务端配置不用太高1核1G就够用。我用的是腾讯云轻量服务器年费才99块钱性价比超高。群晖这边建议用Docker跑Frp客户端这样管理起来方便还能随时调整配置。我用的是DS920系统是DSM 7.2。2.2 软件准备服务器端需要安装Docker和Docker Compose开放7000端口Frp默认通信端口准备个域名可以用免费的二级域名群晖这边需要开启SSH功能控制面板→终端机和SNMP安装Docker套件准备Frpc配置文件3. 服务端配置3.1 Docker Compose部署Frps我习惯用Docker Compose管理服务配置文件清晰又好维护。新建个docker-compose.yml文件version: 3 services: frps: image: snowdreamtech/frps container_name: frps restart: always ports: - 7000:7000 # 客户端连接端口 - 7500:7500 # 控制台端口 volumes: - ./frps.ini:/etc/frp/frps.ini3.2 Frps配置文件同目录下创建frps.ini[common] bind_port 7000 dashboard_port 7500 dashboard_user admin dashboard_pwd your_strong_password token your_secure_token # 启用Prometheus监控 enable_prometheus true # 限制单个IP最大连接数 max_pool_count 50启动服务docker-compose up -d4. 客户端配置4.1 群晖Docker部署Frpc在群晖的Docker里搜索stilleshan/frpc镜像这个镜像专为群晖优化过。或者用SSH登录群晖直接拉取镜像docker pull stilleshan/frpc4.2 Frpc配置文件新建frpc.ini配置文件重点来了[common] server_addr your_server_ip server_port 7000 token your_secure_token # SSH映射 [ssh] type tcp local_ip 192.168.1.100 # 群晖内网IP local_port 22 remote_port 2222 # DSM管理界面 [dsm] type tcp local_ip 192.168.1.100 local_port 5001 remote_port 443 # 文件管理 [dsfile] type tcp local_ip 192.168.1.100 local_port 5001 remote_port 5001 # WebDAV [webdav] type tcp local_ip 192.168.1.100 local_port 5006 remote_port 50074.3 启动Frpc容器在群晖Docker里创建容器时记得把配置文件挂载进去容器路径/frp/frpc.ini本地路径选择你存放frpc.ini的位置建议开启自动重启选项这样NAS重启后Frpc会自动恢复。5. 进阶配置5.1 Nginx反向代理直接用IP端口访问太不优雅了用Nginx做个反向代理server { listen 443 ssl; server_name nas.yourdomain.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://127.0.0.1:5001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }5.2 健康检查在Frpc配置里加上健康检查服务挂了自动重启[dsm] ... health_check_type tcp health_check_timeout_s 3 health_check_max_failed 3 health_check_interval_s 105.3 带宽限制防止被恶意消耗流量[dsm] ... bandwidth_limit 10MB6. 常见问题解决问题1连接超时检查服务器安全组规则确认Frps和Frpc的token一致试试telnet your_server_ip 7000看端口通不通问题2DSM页面加载不全在群晖控制面板→网络→DSM设置里把HTTP连接自动重定向到HTTPS关掉检查Nginx配置是否正确传递了Host头问题3速度慢试试更换服务器的地域选离你近的机房调整Frp的tcp_mux false试试检查是不是被运营商QoS了7. 安全加固建议定期更换token至少每季度换一次限制访问IP在Frps配置里加allow_ports和allow_ips启用TLS在[common]段加tls_enable true监控流量通过Dashboard观察异常连接关闭不需要的服务比如用不到FTP就别映射21端口实测下来这套方案在我家500M宽带下外网访问DSM页面加载速度在2秒内传文件能跑满上传带宽30Mbps左右。最关键的是稳定性好连续运行半年没出过问题。最后提醒下内网穿透毕竟是把家里网络暴露在公网一定要做好安全防护。我就在这上面栽过跟头有次弱密码被爆破吓得我赶紧上了Fail2ban。现在除了强密码定期更换还加了Google Authenticator二次验证这才放心。

相关新闻

最新新闻

遗传算法工程实践:从跑通到调优的六大核心环节

遗传算法工程实践:从跑通到调优的六大核心环节

1. 项目概述:这不是又一篇“遗传算法入门”——而是你真正能跑通、调明白、用得上的第二课 “遗传算法入门”这五个字,我见过太多次了。打开网页,十篇里八篇是照搬生物类比:染色体字符串、基因0/1位、交叉像有性繁殖、变异像DNA出…

2026/7/14 17:08:03
Pythonic函数设计:提升IDE智能提示与团队协作效率的五项核心实践

Pythonic函数设计:提升IDE智能提示与团队协作效率的五项核心实践

1. 项目概述:为什么“写得像 Python”比“写得对”更难?你有没有遇到过这样的场景:一段函数逻辑完全正确,能跑通所有测试用例,但同事 review 时皱着眉头说“这不太 Pythonic”,IDE 的类型提示像雾里看花&am…

2026/7/14 17:08:03
m4s-converter:一键将B站缓存视频转换为MP4格式的终极解决方案

m4s-converter:一键将B站缓存视频转换为MP4格式的终极解决方案

m4s-converter:一键将B站缓存视频转换为MP4格式的终极解决方案 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经遇到过这样…

2026/7/14 17:08:03
C++控制台实现闪烁爱心动画:从心形线公式到图形编程实践

C++控制台实现闪烁爱心动画:从心形线公式到图形编程实践

1. 项目概述:从一行代码到一颗跳动的心“用C画一颗爱心”听起来像是编程新手入门的经典小练习,但当你加上“闪烁”这个动态效果,事情就变得有趣多了。这不再仅仅是关于在控制台输出几个字符,而是涉及到了图形编程、时间控制、甚至…

2026/7/14 17:08:03
【I2C】Linux内核GPIO模拟I2C驱动深度解析与故障注入

【I2C】Linux内核GPIO模拟I2C驱动深度解析与故障注入

1. I2C GPIO模拟驱动基础架构解析 在嵌入式Linux开发中,硬件I2C控制器数量有限是常见问题。当所有硬件I2C总线都被占用时,GPIO模拟I2C(简称i2c-gpio)就成为了救星。这个方案的精妙之处在于,它完全通过软件控制两个GPIO…

2026/7/14 17:08:03
Apple的SpeechAnalyzer API实测:系统级语音识别与Whisper的差距在哪里

Apple的SpeechAnalyzer API实测:系统级语音识别与Whisper的差距在哪里

Apple的SpeechAnalyzer API实测:系统级语音识别与Whisper的差距在哪里移动设备上的语音识别一直是一个"看起来简单,做起来复杂"的事情。用户只需要对着手机说话,文字出现在屏幕上——但这个过程的背后,涉及音频采集、降…

2026/7/14 17:03:03

月新闻