Могу ли я получить реальный 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

Другие вопросы по тегам