用内网穿透把家里的服务暴露到公网(我用了5年的经验)
我用内网穿透把家里的 NAS、博客、影音库都暴露到公网,在外网也能访问。这篇是我整理的完整教程,新手也能学会。
一、能暴露什么服务?
你可以把家里的这些服务暴露到公网:
- NAS:在外网也能访问家里的 NAS、云盘
- 博客/网站:不用买 VPS,用家里的电脑跑
- 影音库:在外网也能看家里的 Jellyfin、Emby
- 远程桌面:在外网也能控制家里的电脑
- 下载工具:在外网也能控制家里的 qBittorrent、Aria2
二、两种方案
方案一:有公网 IP(最好,推荐)
如果你家有公网 IP,直接做端口映射,比内网穿透更快更稳定。
怎么看有没有公网 IP?
- 看路由器 WAN 口的 IP 地址
- 跟你在百度上搜「IP」出来的地址对比
- 如果一样,就是有公网 IP;不一样,就是没有
方案二:没有公网 IP(用内网穿透)
如果你家没有公网 IP,用内网穿透,把服务暴露到公网。
三、推荐方案:Tailscale(最简单,新手首选)
如果你只是自己用,不用给别人访问,Tailscale 是最简单的。
什么是 Tailscale?
Tailscale 是一个虚拟内网工具,把你的手机、电脑、NAS 都连到一个虚拟内网里,就像在同一个局域网里一样。
怎么用?
- 在 NAS 上装 Tailscale(Docker 一键装)
- 在手机上装 Tailscale APP
- 在电脑上装 Tailscale 客户端
- 都用同一个账号登录
- 就能互相访问了
优点
- 最简单:不用配置,装上就能用
- 免费:个人用免费
- 安全:端到端加密,安全
- 不用公网 IP:没有公网 IP 也能用
缺点
- 只能自己用:只能你自己的设备访问,不能给别人访问
- 速度看 P2P:如果打洞成功,速度快;打洞不成功,走中继,速度慢
适合谁?
- 只是自己用,不给别人访问
- 新手,不想折腾
- 远程访问家里的 NAS、电脑
四、进阶方案:frp(长期用,稳定)
如果你要给别人访问,或者要跑网站,推荐用 frp。
前提:你要有一台 VPS
frp 需要一台 VPS 作为服务端,把家里的服务通过 VPS 暴露到公网。
怎么搭?
第一步:在 VPS 上装 frps(服务端)
第二步:在家里的 NAS/电脑上装 frpc(客户端)
第三步:访问
打开浏览器,输入
http://你的VPS IP:5244,就能访问家里的 Alist 了。五、绑定域名 + HTTPS
如果你有域名,可以绑定到 VPS,这样不用输 IP,还能用 HTTPS。
怎么弄?
- 把域名解析到你的 VPS IP
- 在 VPS 上装 Nginx
- 配置 Nginx 反向代理,把域名的请求转发到 frp 的端口
- 用 Let's Encrypt 申请免费 SSL 证书
- 开启 HTTPS
这样就能用
https://alist.你的域名.com 访问家里的 Alist 了。六、安全注意事项(最重要!)
把家里的服务暴露到公网,安全是第一位的:
- 一定要设密码:所有暴露的服务,一定要设强密码,不然会被黑
- 不要暴露敏感服务:比如 SSH、NAS 后台管理、数据库,不要暴露到公网
- 用 HTTPS:一定要用 HTTPS,加密传输,不然密码会被偷
- 限制访问 IP:如果可以,限制只有特定 IP 能访问
- 定期更新:服务要定期更新,打安全补丁
七、我的配置
我现在的配置:
- VPS:RackNerd,1 年 $10
- frp:在 VPS 上跑 frps,在家里的 NAS 上跑 frpc
- 暴露的服务:Alist(网盘)、Jellyfin(影音库)、Memos(笔记)
- 域名:用了自己的域名,绑定到 VPS
- HTTPS:全部用 HTTPS,安全
在外网用手机也能访问家里的 NAS、看电影,非常方便。
八、踩坑提醒
- 上传带宽:家里的上传带宽决定了外网访问的速度,上传带宽小的话,速度会慢
- 稳定性:家里的网络可能会断,断了就访问不了了
- 安全:一定要注意安全,不要随便暴露服务
- 流量:很多 VPS 是限流量的,注意流量不要超了
- 不要跑违法的东西:暴露到公网的服务,不要跑违法的东西,不然会被查
你有没有把家里的服务暴露到公网?用的是什么方案?欢迎在评论区分享~
- 作者:墨殇个人博客
- 链接:https://moshang.eu.org/article/3fcdeb47-39da-81db-81e0-d06c4cf278fe
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
