Как получить IP пользователя, если сервер за роутером?

Дано:

— Роутер на dd-wrt с полным доступом.

— Сервер с nginx за роутером.

Пробросил порт вебсервера. Смотрю логи nginx — там пишется $remote_addr, а этот параметр равен IP роутера.

Есть ли какой-нибудь способ узнать реальный IP заходящего?
  • Вопрос задан
  • 4452 просмотра
Решения вопроса 1
shadowalone
@shadowalone
По моему, выше отписавшийся товарищ не понял сути.
порт переадресован на рутере с dd-wrt (iptables), то есть Ваш web-сервер не получит реальный адрес по-любому, будь это хоть апачь, хоть эндженкс, хоть еще что.

Так что не заморачивайтесь.
В Вашем случае выход такой — только если есть возможность, поставить на dd-wrt прокси в переадресацией на ваш внутренний web-сервер. Но это если у Вас рутер позволяет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
r0ster
@r0ster
Если стоит nginx+apache2, то включен mod_rpaf?

Debian, включаем mod_rpaf:
# a2enmod rpaf

Если не установлен, устанавливаем:
# aptitude install libapache2-mod-rpaf

Затем в /etc/apache2/httpd.conf добавляем:

RPAFenable On
RPAFsethostname Off
RPAFproxy_ips 127.0.0.1 тут_пишем_свой_ip


Перезапускаем Apache2:
# /etc/init.d/apache2 restart
или
# apache2ctl restart
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы