我可以在 "iptables": false 启用时获取真实用户 ip 吗?

Can I obtain real user ip with "iptables": false enabled?

我在 docker 守护程序配置中使用 "iptables": false 选项:

/etc/docker/daemon.json:
{
  "iptables": false
}

我 运行 服务选项 --publish mode=host--mode=global 类似于 this approach

但是当我在我的应用程序中得到 X-Real-IP header 时,它的值是 172.18.0.1 但不是真实用户 ip.

当我在 /etc/docker/daemon.json 中启动没有 "iptables": false 的 Docker 守护程序时,一切正常,我得到了真实的用户 ip。

但我需要设置 "iptables": false 以保留 Docker 的 iptables 更改。

是否可以在 Docker 守护程序配置中使用 "iptables": false 获取真实用户 ip?

查看 Docker 在没有 "iptables": true 的情况下创建的规则,并使用 "iptables": false(默认设置)复制它们。

伪装 IP 尤其需要这些规则:

iptables -t nat -A POSTROUTING -m addrtype --src-type LOCAL -o docker0 -j MASQUERADE

iptables -t nat -s 172.18.0.0/16 ! -o docker0 -j MASQUERADE