HenryQW / Awesome-TTRSS

🐋 Awesome TTRSS, a powerful Dockerised all-in-one RSS solution.
http://ttrss.henry.wang
MIT License
2.38k stars 497 forks source link

[BUG] ttrss 禁止非80和443端口feed更新,导致不能订阅自建huginn、rsshub的问题 #184

Closed November-raining closed 3 years ago

November-raining commented 3 years ago

Bug 描述 Docker的ttrss+自建rsshub 之前版本使用正常,docker自动更新的 今天仅更新了ttrss组件后,自建的rsshub链接 http://192.168.10.1:1200/* 等全部无法更新,feed debug提示: Feed Debugger: 2: 199it Force refetch Force rehash [03:13:40/24] start [03:13:40/24] running HOOK_FETCH_FEED handlers... [03:13:40/24] feed data has not been modified by a plugin. [03:13:40/24] local cache will not be used for this feed [03:13:40/24] last unconditional update request: 2020-09-17 09:57:23 [03:13:40/24] stored last modified for conditional request: Thu, 17 Sep 2020 09:34:59 GMT [03:13:40/24] fetching [http://192.168.10.1:1200/199it] (force_refetch: 1)... [03:13:40/24] fetch done. [03:13:40/24] source last modified: [03:13:40/24] unable to fetch: [-1]

同时rsshub的欢迎页面没有从ttrss的ip来的此条请求的记录, 另外网页可以正常打开http://192.168.10.1:1200/199it 源,

且其他使用非rsshub的http://以及https://源都正常

你谷歌/百度了吗? 暂无类似问题报告

部署方法

HenryQW commented 3 years ago

192.168.10.1会被docker解析为容器内局域网本地地址,当然没有办法使用。

参考docker network,以及参考定义并使用service name或者外网域名访问。

100001000 commented 3 years ago

一模一样的问题,从17号开始出现这个问题,而且我的ttrss与rsshub都做了外网域名没有走内网地址。现在只能退回dev版本先用着

ymone commented 3 years ago

也是同样的问题,我的内网子网和docker network的子网是不同的,并且用 ttrss 的 console ping 内网地址是可以ping通的。 后来也试了外网地址和service name地址也都不行。 同时,查看RSSHub的访问记录也为没有找到ttrss请求的记录。结合出问题时错误是立刻弹出的,与之前正常时前端有加载过程不同。所以猜测应该是ttrss没有对rsshub进行访问。 切换 ttrss 的 Tag 为 dev 后这个情况就消失了

HenryQW commented 3 years ago

ttrss 禁止了非80和443端口。

https://git.tt-rss.org/fox/tt-rss/commit/4efc3d7b3f6465a23d5e1c1415ec74e80cc7562d

100001000 commented 3 years ago

ttrss 禁止了非80和443端口。

https://git.tt-rss.org/fox/tt-rss/commit/4efc3d7b3f6465a23d5e1c1415ec74e80cc7562d

擦...这可如何是好 家宽基本上都ban掉了80和443吧

ghost commented 3 years ago

一样的问题,我的RSShub是用Caddy2反代后使用https协议走443端口,但是还是无法更新

[06:33:51/28] fetching [https://***/bilibili/user/video/1] (force_refetch: 1)...
[06:33:51/28] fetch done.
[06:33:51/28] source last modified: 
[06:33:51/28] unable to fetch:  [-1]

我的Caddyfile

(rsshub) {
  reverse_proxy rsshub:1200
}
haiyangzhijia commented 3 years ago

可以试试我这种方法,我RSSHub和TTRSS都是建造在Docker上,RSSHub容器上80:1200,TTRSS添加订阅源时候用替代192.168.50.x:80这样就可以了

gennan commented 3 years ago

ttrss 禁止了非80和443端口。

https://git.tt-rss.org/fox/tt-rss/commit/4efc3d7b3f6465a23d5e1c1415ec74e80cc7562d

能问下禁止其他端口的原因吗?感觉禁掉之后有点不方便,没找到什么比较完美的解决措施。

HenryQW commented 3 years ago

ttrss 禁止了非80和443端口。 https://git.tt-rss.org/fox/tt-rss/commit/4efc3d7b3f6465a23d5e1c1415ec74e80cc7562d

能问下禁止其他端口的原因吗?感觉禁掉之后有点不方便,没找到什么比较完美的解决措施。

不是这个repo的原因,是ttrss官方基于安全考量的决(xia)定(gao),我也无能为力。

HenryQW commented 3 years ago

这个事情的起因经过结果大致如下:

  1. 某安全公司发布针对 ttrss 的白帽测试报告,ttrss 有多个严重安全 bug。
  2. ttrss 作者根据报告一一修复了这些 bug,其中包括禁止非80和443端口feed的更新。
  3. 该改动为上游 ttrss 官方改动,这个 repo 无法修改。
  4. 不介意安全性的,可以使用 wangqiru/ttrss:dev镜像,该镜像为旧版 ttrss,仍然支持非80和443端口feed的更新。
  5. 该镜像不会获得未来任何功能的更新,如有 bug 也不会被修复,也不接受相关 issue。
ghost commented 3 years ago

这个事情的起因经过结果大致如下:

  1. 某安全公司发布针对 ttrss 的白帽测试报告,ttrss 有多个严重安全 bug。
  2. ttrss 作者根据报告一一修复了这些 bug,其中包括禁止非80和443端口feed的更新。
  3. 该改动为上游 ttrss 官方改动,这个 repo 无法修改。
  4. 不介意安全性的,可以使用 wangqiru/ttrss:dev镜像,该镜像为旧版 ttrss,仍然支持非80和443端口feed的更新。
  5. 该镜像不会获得未来任何功能的更新,如有 bug 也不会被修复,也不接受相关 issue。

你的dev镜像有问题,配合postgresql 13全新安装会有"sh: can't open '/wait-for.sh': No such file or directory"的问题,latest镜像就没有这个问题

HenryQW commented 3 years ago

这个事情的起因经过结果大致如下:

  1. 某安全公司发布针对 ttrss 的白帽测试报告,ttrss 有多个严重安全 bug。
  2. ttrss 作者根据报告一一修复了这些 bug,其中包括禁止非80和443端口feed的更新。
  3. 该改动为上游 ttrss 官方改动,这个 repo 无法修改。
  4. 不介意安全性的,可以使用 wangqiru/ttrss:dev镜像,该镜像为旧版 ttrss,仍然支持非80和443端口feed的更新。
  5. 该镜像不会获得未来任何功能的更新,如有 bug 也不会被修复,也不接受相关 issue。

你的dev镜像有问题,配合postgresql 13全新安装会有"sh: can't open '/wait-for.sh': No such file or directory"的问题,latest镜像就没有这个问题

image

没问题。 注意阅读第五条。

HenryQW commented 3 years ago

207 绕过了这个限制。需要移除compose中的command以及设置新变量ALLOW_PORTS

feiyihx commented 3 years ago

这不是什么安全问题,这就是要命的bug啊。又不是ttrss自身开放端口导致的问题,是需要读取对方的指定端口啊。要是有问题也是对方的问题啊。话说rsshub也是奇怪,竟然无法更改1200端口。

EliteOtaku commented 1 year ago

呃,看了一圈,但搞不懂具体如何操作,我是在群晖docker下部署的,请问具体如何操作?因为之前用的是官方网站提供的yml https://github.com/HenryQW/Awesome-TTRSS/blob/main/docker-compose.yml 但是不能订阅本地rsshub,出现443,看了下,这个yml还没更新过,能否麻烦作者更新一个可用的?多谢了。

207 绕过了这个限制。需要移除compose中的command以及设置新变量ALLOW_PORTS

yonggithub commented 1 year ago

如果ttrss和huginn部署在同一个局域网就没必要这么麻烦, 直接在路由器为huginn增加网关映射为80端口就可以了。说是说电信不给80和443,但那是外网呀,内网用80不影响的。 由于手机端 reeder 链接的是ttrss, 所以更新订阅信息不影响的。 这个方法算是曲线救国吧 😄 image image

lovewhowho17 commented 1 year ago

可以试试我这种方法,我RSSHub和TTRSS都是建造在Docker上,RSSHub容器上80:1200,TTRSS添加订阅源时候用替代192.168.50.x:80这样就可以了

谢谢你,我都在LAN环境使用,这么设置可以了。

chinagaofeng commented 1 year ago

可以试试我这种方法,我RSSHub和TTRSS都是建造在Docker上,RSSHub容器上80:1200,TTRSS添加订阅源时候用替代192.168.50.x:80这样就可以了

我用如下步骤在群晖上试了这种方法,可行:

  1. 先解除群晖nginx对80/443端口的默认占用
  2. 让rsshub容器80(本地):1200(容器)
  3. 添加订阅源时手工修改一下域名为http://xxx.xxx.xxx.xxx:80
fucao commented 3 months ago

可以试试我这种方法,我 RSSHub 和 TTRSS 都是建造在 Docker 上,RSSHub 容器上 80:1200,TTRSS 添加订阅源时候用替代 192.168.50.x:80 这样就可以了

我用如下步骤在群晖上试了这种方法,可行:

  1. 先解除群晖 nginx 对 80/443 端口的默认占用
  2. 让 rsshub 容器 80 (本地):1200 (容器)
  3. 添加订阅源时手工修改一下域名为 http://xxx.xxx.xxx.xxx:80

我照着这片文章,解除80/443端口占用,但rsshub修改为80:1200仍然提示冲突。 https://blog.csdn.net/qq_19013047/article/details/122719485