3回答

0收藏

在群晖docker里如何获取客户端的真实IP地址

售后问答 售后问答 696 人阅读 | 3 人回复 | 2023-08-30

1金钱
群晖docker在采用bridge模式网络的情况下,如何才能在docker里获取客户端的真实IP地址?
目前docker里显示的客户端IP地址都是网关的IP地址。

分享到:
回复

使用道具 举报

回答|共 3 个

synology

发表于 2023-8-30 10:51:41 | 显示全部楼层

Docker的Bridge网络模式,会为每一个容器分配,设置IP,并将容器连接到一个docker0的虚拟网桥,通过docker0网桥以及iptables nat表配置与主机通信。所以是无法获取到客户端真实IP的。

您可能需要把您的Docker容器的网络模式,配置为HOST模式。
在HOST模式下,容器将不会虚拟出自己的网卡,配置自己的IP,而是使用宿主机的IP和端口。

其他相关内容:
群晖默认网络模式是bridge+host
  • Bridge:docker容器内部虚拟网桥,容器内部172.17.0.X网段 无法获取主机网络ip 访问容器需要映射端口 并且不能和主机占用端口冲突 不映射端口无法使用
  • Host:host模式 将容器绑定到主机网卡使用主机的ip 并且不能和主机占用端口冲突 使用哪些端口自动占用
  • bridge-host:通过主机的虚拟网卡来创建虚拟网桥 将容器的网卡绑定到这个直通局域网的虚拟网桥上,优点:容器获取到局域网ip, 容器ip和群晖主机一个网段,端口1-65535全端口使用 不和主机冲突 ip手动指定。可以说bridge-host模式就是把容器都桥接到你群晖所在的局域网。
回复

使用道具 举报

lqsoft

发表于 2023-8-30 13:20:39 | 显示全部楼层

还有其他办法让Bridge模式获取客户端的真实IP吗?因为我用docker搭建了seafile,seafile需要运行3个容器。我不希望把对外服务无关的容器暴露到真实的局域网内。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

13 积分
1 主题