• 首页
  • 博客
  • 日常
  • 留言墙
  • 友链
  • 项目介绍
  • 项目特征
  • 安装指南
  • 使用教程
  • 总结
0%
没有公网 IP 怎么在外面看家里的 Emby?一个项目帮你安全穿透内网:Pangolin
2026/10/22Docker

没有公网 IP 怎么在外面看家里的 Emby?一个项目帮你安全穿透内网:Pangolin

没有公网 IP,也能用 Pangolin 安全地从外网访问家里的 Emby 等自部署服务。

0次点击6分钟阅读

在公司午休想刷两集剧,打开手机才想起来:家里宽带没有公网 IP,NAS 上的 Emby、Jellyfin 只能在家里看。frp 要自己写配置、自己管证书;Cloudflare Tunnel 方便,但流量要过别人家的服务器,国内访问速度也看运气;直接把端口映射出去,又担心哪天被扫到弱口令。

有没有一个东西:家里的 NAS 主动连出去,外网用自己的域名 + HTTPS 访问,打开之前还要先登录一次?今天介绍的 Pangolin 就是干这个的。

项目介绍

Pangolin 是一个开源、可自托管的“隧道式反向代理”,可以理解为能装在自己 VPS 上的 Cloudflare Tunnel。它由三部分组成:VPS 上跑的 Pangolin 面板 + Gerbil(WireGuard 隧道)+ Traefik(反代和证书),家里 NAS 上跑一个站点连接器(Newt / Pangolin CLI)。NAS 主动把隧道连到 VPS,所以家里不需要公网 IP,也不用在路由器上开任何端口。

  • GitHub:https://github.com/fosrl/pangolin
  • 官方文档:https://docs.pangolin.net

注意:Pangolin 需要一台有公网 IP 的 VPS 和一个自己的域名(把 *.你的域名 解析到 VPS),VPS 要放行 TCP 80/443 和 UDP 51820/21820。这篇演示统一用 example.com 代替真实域名。

项目特征

  • 不用公网 IP:NAS 主动出站建 WireGuard 隧道,路由器一个端口都不用开
  • 自动 HTTPS:每个服务一个子域名,Traefik 自动申请 Let's Encrypt 证书
  • 访问前先登录:自带单点登录,还能加 PIN 码、密码、邮箱白名单,Emby 不再直接暴露在公网
  • 访问规则:按 IP、IP 段、路径放行或拦截,比如家里网段直接放行、陌生 IP 必须登录
  • 多站点管理:老家 NAS、公司小主机都可以作为站点接进来,一个面板统一管理
  • 全中文界面:面板自带简体中文,在线状态、流量一目了然
  • 可视化操作:创建站点、添加服务都在网页上点,不用手写 frp 那种配置文件

安装指南

整个部署分两头:VPS 上装 Pangolin 服务端,NAS 上装站点连接器。

一、VPS:部署 Pangolin 服务端

先在域名商那里加两条解析:pangolin.example.com 和 *.example.com 都指向 VPS 的公网 IP。然后在 VPS 上建目录:

新建 docker-compose.yml:

再新建 config/config.yml,把域名换成你自己的,secret 用 openssl rand -hex 32 生成:

Traefik 还需要 config/traefik/traefik_config.yml 和 dynamic_config.yml 两个文件,内容比较长,直接照官方文档 Manual Install → Docker Compose 一节复制,把里面的 pangolin.example.com 和邮箱换掉即可。嫌麻烦的话,官方也提供一键安装脚本,会帮你生成这些文件。

启动并查看首次登录用的令牌:

二、初始化面板

浏览器打开 https://pangolin.example.com/auth/initial-setup,填入刚才日志里的令牌,创建管理员账号:

填入设置令牌,创建管理员账号

登录后会让你先建一个“组织”,名字随便起,ID 用英文:

新建组织

三、NAS:添加站点并运行连接器

接下来创建站点,类型选“新节点(推荐)”,名字写 NAS-Home:

创建站点,类型选新节点

往下拉会看到这个站点的身份 ID 和密钥,操作系统选 Docker、方法选 Docker Compose,面板会直接生成好配置:

面板自动生成 Docker Compose 配置

注意:密钥只在这个页面显示一次,先复制下来再点“创建站点”。

在 NAS(飞牛、群晖都行)上新建一个 docker-compose.yml,把面板给的内容粘进去:

docker compose up -d 跑起来后,日志里出现 Tunnel connection to server established successfully! 就说明隧道通了,回到面板,站点状态会变成“在线”:

站点在线,代理显示 Pangolin CLI

新版面板生成的连接器镜像是 fosrl/pangolin-cli,老教程里写的 fosrl/newt 也能用,两者都是站点连接器。

使用教程

把 Emby / Jellyfin 发布出去

进入“公共资源 → 添加资源”,类型 HTTP(S),子域名写 jellyfin,目标选刚才的站点 NAS-Home,地址填 Jellyfin 在内网的 IP 和端口 8096(Emby 一样是 8096):

创建公共资源,目标指向 NAS 上的 8096

我这次演示时连接器和 Jellyfin 在同一台机器上,所以地址填的是 127.0.0.1。你在 NAS 上部署时填 NAS 的内网 IP,比如 192.168.1.10。

创建好后,资源列表里会显示访问地址,认证状态是“受到保护”:

资源列表

访问之前先登录

资源默认开启“平台单点登录 SSO”,也就是说,别人打开 jellyfin.example.com 时,看到的不是 Emby,而是 Pangolin 的登录页。你也可以改成 PIN 码、共享密码或者邮箱白名单:

认证设置:SSO、PIN 码、密码、邮箱白名单

外面的人打开链接,会先看到这个页面:

访问 jellyfin.example.com 先要登录

登录后才会进入 Jellyfin,后面就是熟悉的媒体库了:

通过隧道打开的 Jellyfin

家里网络直接放行

每次在家看片还要登录一次有点烦,可以在“访问规则”里加一条:IP 范围 192.168.1.0/24 旁路认证。规则从上往下匹配,家里网段直接进,外面的 IP 照样要先登录:

访问规则:家里网段旁路认证

注意:Emby / Jellyfin 的手机 App 和电视 App 不支持网页登录这一步,开了 SSO 以后 App 会连不上。要用 App 的话,可以把这个资源的 SSO 关掉,靠 Emby 自己的账号密码把关;或者只给家人的 IP 加放行规则。

家人怎么用

把家人拉进组织之后,他们登录面板首页会看到“资源启动器”,所有你开放给他们的服务都在这里,点一下就能打开:

资源启动器

总结

Pangolin 适合“家里没有公网 IP,但手上有一台 VPS”的玩家:比 frp 多了图形界面、自动证书和登录保护,比 Cloudflare Tunnel 多了一份数据自主。缺点也要说清楚:VPS 的带宽决定了你在外面看片的画质,小水管的机器看 4K 原盘会比较吃力;另外 App 和网页 SSO 的兼容需要自己按上面的方法调一下。

如果这篇对你有帮助,欢迎点赞、在看、关注「HuanHQ技术栈」,更多 NAS 和自部署玩法也会同步在博客 www.huanhq.com。

← 上一篇(更早)家人天天问“那部片有没有”?一个项目帮你把点播交给他们自己:Seerr

相关文章

家人天天问“那部片有没有”?一个项目帮你把点播交给他们自己:Seerr

2026/10/21Docker03分钟阅读

QQ 空间旧动态还能找回来?一个项目帮你找回那些年的回忆:QzoneArchive

2026/08/31Docker05分钟阅读

有声书太多不好管理?一个项目搭建私人听书平台:Audiobookshelf

2026/08/20Docker05分钟阅读

动态更新

喜欢我的内容的话不妨订阅支持一下。每月一封,随时可以取消订阅。
加入其他 0 位订阅者,

如何联系我

服务 / 合作方向

如果以后想联系我

私有媒体库、Docker 部署、博客搭建、自动化脚本,或者一些好玩的产品想法,都可以聊。

去留言墙

© 2026 HuanHQ.

首页博客日常热爱留言墙友链
最近访客来自 Seoul, KR🇰🇷
全站访问 1.7万