Могу ли я получить реальный ip пользователя с "iptables": false включен?
Я пользователь "iptables": false
опция в конфигурации демона docker:
/etc/docker/daemon.json:
{
"iptables": false
}
Я запускаю сервис с опциями --publish mode=host
, --mode=global
похож на этот подход.
Но когда я получаю X-Real-IP
заголовок в моем приложении его значение 172.18.0.1
но не реальный пользователь ip.
Когда я запускаю Docker без "iptables": false
в /etc/docker/daemon.json
все работает отлично, и я получаю реальный пользовательский IP.
Но мне нужно установить "iptables": false
сохранить изменения iptables с помощью Docker.
Можно ли получить реальный пользовательский IP с "iptables": false
в конфигурации демона Docker?
1 ответ
Смотрите правила, которые 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