我可以在 "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
我在 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