基于 Docker 本地部署 RSSHub 并通过内网穿透远程访问
介绍如何在 Linux 环境下使用 Docker 部署 RSSHub 服务,并通过内网穿透工具实现公网远程访问。内容包括 Docker 安装配置、Rsshub 容器运行、隧道创建及固定域名设置,解决无公网 IP 下的远程访问需求。

介绍如何在 Linux 环境下使用 Docker 部署 RSSHub 服务,并通过内网穿透工具实现公网远程访问。内容包括 Docker 安装配置、Rsshub 容器运行、隧道创建及固定域名设置,解决无公网 IP 下的远程访问需求。


微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online
本文介绍如何在本地快速简单部署 RSSHub 工具,并结合内网穿透工具使用公网地址远程访问 RSS 订阅源。
RSSHub 是一个开源、简单易用、易于扩展的 RSS 生成器,它可以为各种内容生成 RSS 订阅源。借助于开源社区的力量快速发展,目前已适配数百家网站的上千项内容。要使用 RSS,首先需要生成 RSS 订阅源。这可以通过 RSSHub 等工具来完成。一旦生成了 RSS 订阅源,就可以搭配 RSS 阅读器来浏览自己感兴趣的网页内容。
Docker 部署前,设备需提前安装好 Docker。以下以 Linux CentOS 为例,实现 Docker 的安装。
分别执行下面命令,设置 Docker 的存储库,以便从官方源安装最新版本的 Docker:
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装 Docker:
sudo yum install docker-ce docker-ce-cli containerd.io
启动 Docker:
sudo systemctl start docker
简单两步,即可成功运行 RSSHub 服务。首先拉取镜像:
sudo docker pull diygod/rsshub
注:如果拉取不到镜像,可以在终端执行
nano /etc/docker/daemon.json,输入以下内容并保存退出,然后执行sudo systemctl restart docker:{ "registry-mirrors": [ "https://do.nark.eu.org", "https://dc.j8.work", "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn" ] }
运行 RSSHub 容器,其中访问的端口为 1200 端口:
sudo docker run -d --name rsshub -p 1200:1200 diygod/rsshub
运行容器后,执行 docker ps 命令,即可看到运行的 rsshub,状态为 UP 表示正常。
上面成功运行后,在浏览器访问 Linux 1200 端口,即可看到 RSSHub 欢迎界面,表示成功部署完成了。
同时,通过访问其中某个订阅源 /005tv/zx/latest,可以看到也是正常访问成功。由于是本地部署,限制只能在本地访问,下面我们安装内网穿透工具,实现远程也可以访问,不受本地限制。
上面在本地 Docker 中成功部署了 RSSHub 服务,并局域网访问成功。下面我们在 Linux 安装内网穿透工具,通过转发本地端口映射的 HTTP 公网地址,我们可以很容易实现远程访问,而无需自己注册域名购买云服务器。
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
# 加入系统服务设置开机启动
sudo systemctl enable cpolar
# 启动 cpolar 服务
sudo systemctl start cpolar
# 重启 cpolar 服务
sudo systemctl restart cpolar
# 查看 cpolar 服务状态
sudo systemctl status cpolar
# 停止 cpolar 服务
sudo systemctl stop cpolar
内网穿透工具安装和成功启动服务后,内部或外部浏览器上通过局域网 IP 加 9200 端口即:http://192.168.xxx.xxx:9200 访问管理界面,使用账号登录,登录后即可看到 Web 配置界面,接下来在 Web 界面配置即可。
点击左侧仪表盘的隧道管理——创建隧道,创建一个 RSSHub 的公网 HTTP 地址隧道!
点击 创建。
隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是 http 和 https。
使用上面的公网地址,在任意设备的浏览器进行访问,即可成功看到我们本地部署的 RSSHub 界面。
再次访问某个订阅源,可以看到也是可以访问成功,不受本地网络限制。这样一个公网地址且可以远程访问就创建好了,使用了内网穿透工具的公网域名,无需自己购买云服务器,即可发布到公网进行远程访问。
小结
为了更好地演示,我们在前述过程中使用了内网穿透工具生成的隧道,其公网地址是随机生成的。
这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址由随机字符生成,不太容易记忆(例如:3ad5da5.r10.cpolar.top)。另外,这个地址在 24 小时内会发生随机变化,更适合于临时使用。
我一般会使用固定二级子域名,原因是希望将网址发送给同事或客户时,它是一个固定、易记的公网地址(例如:rsshub.cpolar.cn),这样更显正式,便于流交协作。
由于以上使用的隧道使用的是随机公网地址,24 小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。
注意:需要将套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。
登录管理后台,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留。保留成功后复制保留的二级子域名名称。
返回登录 Web UI 管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑。
修改隧道信息,将保留成功的二级子域名配置到隧道中:
点击 更新(注意,点击一次更新即可,不需要重复提交)。
更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址二级名称变成了我们自己设置的二级子域名名称。
最后,我们使用固定的公网 HTTP 地址访问,可以看到同样访问成功。这样一个固定且永久不变的公网地址就设置好了,随时随地都可以远程访问本地 RSS 工具,无需公网 IP,无需云服务器。