求问 docker compose 生成的服务容器指定的端口被霸占的问题

2023-10-17 09:12:45 +08:00
 kuanos
Qnap ,我在这台 nas 上的 container station 上用 docker compose 创建了一个服务,包含 5 个容器以及对应的端口分别为:

radarr ( 19xx1 )、sonarr ( 19xx2 )、jackett ( 19xx3 )、overseerr ( 19xx4 )、flaresolverr ( 19xx5 ),

但当我访问 jackett 、overseerr 、flaresolverr 这几个服务时,要求我输入用户名和密码,而我并没有给这几个容器设置用户名和密码。

当我试着输入了 sonarr 的用户名和密码时,会进入 sonarr 的页面,但端口却是 19xx3 、19xx4 、19xx5 ,

我看了下 sonarr 的 log ,的确有登录记录:

[Info] Auth: Auth-Unauthorized ip xxx.xxx.xxx.xx url 'http://xxxx:19xx3'
[Info] Auth: Auth-Unauthorized ip xxx.xxx.xxx.xx url 'http://xxxx:19xx5'
[Info] Auth: Auth-Unauthorized ip xxx.xxx.xxx.xx url 'http://xxxx:19xx5'
[Info] Auth: Auth-Unauthorized ip xxx.xxx.xxx.xx url 'http://xxxx:19xx5'
[Info] Auth: Auth-Unauthorized ip xxx.xxx.xxx.xx url 'http://xxxx:19xx5'
[Info] Auth: Auth-Unauthorized ip xxx.xxx.xxx.xx url 'http://xxxx:19xx4'
[Info] Auth: Auth-Unauthorized ip xxx.xxx.xxx.xx url 'http://xxxx:19xx4'
[Info] Auth: Auth-Unauthorized ip xxx.xxx.xxx.xx url 'http://xxxx:19xx4'
[Info] Auth: Auth-Unauthorized ip xxx.xxx.xxx.xx url 'http://xxxx:19xx5'
[Info] RssSyncService: Starting RSS Sync
[Warn] FetchAndParseRssService: No available indexers. check your configuration.
[Info] DownloadDecisionMaker: No results found
[Info] RssSyncService: RSS Sync Completed. Reports found: 0, Reports grabbed: 0
[Info] Auth: Auth-Unauthorized ip xxx.xxx.xxx.xx url 'http://xxxx:19xx3'
[Info] Auth: Auth-Unauthorized ip xxx.xxx.xxx.xx url 'http://xxxx:19xx3'
[Info] Auth: Auth-Unauthorized ip xxx.xxx.xxx.xx url 'http://xxxx:19xx3'
[Warn] Auth: Auth-Failure ip xxx.xxx.xxx.xx username 'jackett'
[Info] Auth: Auth-Unauthorized ip xxx.xxx.xxx.xx url 'http://xxxx:19xx3'
[Warn] Auth: Auth-Failure ip xxx.xxx.xxx.xx username 'admin'
[Info] Auth: Auth-Unauthorized ip xxx.xxx.xxx.xx url 'http://xxxx:19xx3'
[Info] RssSyncService: Starting RSS Sync
[Warn] FetchAndParseRssService: No available indexers. check your configuration.
[Info] DownloadDecisionMaker: No results found
[Info] RssSyncService: RSS Sync Completed. Reports found: 0, Reports grabbed: 0
[Info] Auth: Auth-Unauthorized ip xxx.xxx.xxx.xx url 'http://xxxx:19xx5'

我的访问环境:
远程用域名访问,软路由做旁路由配置 ddns 指向 nas ,nas 端口转发到 docker ,类似于 19xx1>9117 ( radarr );

为什么为这样呢?
1173 次点击
所在节点    Docker
8 条回复
dier
2023-10-17 10:14:29 +08:00
你把 docker compose 部署的 yaml 内容贴出来看看
wu00
2023-10-17 11:02:36 +08:00
看起来像是 nas 将所有端口都转发到了 19xx1
跳过转发这一层,直接在宿主机内分别请求 19xx1/2/3/4/5 这几个服务试试
kuanos
2023-10-17 14:01:40 +08:00
@dier 已经把配置贴在附言;

@wu00 19xx1 服务的 radarr 正常,从 19xx2 开始,都转到 sonarr 的服务了,我删掉了所有的容器和服务重新弄了一次还是这样。你说的从宿主机直接请求我没太明白怎么弄呢?
wu00
2023-10-17 14:38:47 +08:00
你的容器服务都绑定了宿主机端口
wu00
2023-10-17 14:41:31 +08:00
- 19xx2:8989
- 19xx3:9117
- 19xx5:8191
你直接在机器上访问这几个服务试试呗,比如:curl 127.0.0.1:8191 ,正常的话应该是你转发出了问题
比如你把所有访问 yourdomain.com:80 的请求都转发到 xxx.xx..:19xx2 了
dier
2023-10-17 14:55:04 +08:00
从 yaml 配置来看,这几个服务之前没有任何关联,除非你在配置中有配置互相访问的设置。你有试过不经过 ddns 在同一局域网下用浏览器分别访问 IP:19xx1 IP:19xx2 IP:19xx3 IP:19xx4 IP:19xx5 这几个地址,看能正常访问这些服务吗?另外,你说的通过域名远程访问,你是否映射了所有的服务端口呢?你的域名解析只是解析外网 IP 还是有根据不同的子域名,例如 radarr.domain.com 反向代理到 radarr 端口 ,sonarr.domain.com 反向代理到了 sonarr 服务端口
Terry166
2023-10-17 15:47:18 +08:00
可能是你把访问转发到了其他 network
docker network ls
docker inspect <network_name>
检查下是不是 container 放到了其他的 network ,如果 yaml 里面没有指定 network ,container 会放到默认的 bridge 下
kuanos
2023-10-17 20:03:58 +08:00
@Terry166
@wu00
@dier
我排除了一下,单独安装 docker 无法通过端口转发访问,发现是 tplink 路由上设置端口转发的问题,因为 tplink 虚拟服务器能设置的数量有限,我就把端口打包映射了:

外部端口:19xx0-19xx9
内部端口:19xx0-19xx9
服务器 ip:192.xxx.xxx.xxx

用上面这个设置就无法访问,用单独一个接口转发就没问题。
按说不应该啊。。都是指向同一个主机,为啥到了 nas 上会无法访问呢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/982630

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX