По моему, выше отписавшийся товарищ не понял сути.
порт переадресован на рутере с dd-wrt (iptables), то есть Ваш web-сервер не получит реальный адрес по-любому, будь это хоть апачь, хоть эндженкс, хоть еще что.
Так что не заморачивайтесь.
В Вашем случае выход такой — только если есть возможность, поставить на dd-wrt прокси в переадресацией на ваш внутренний web-сервер. Но это если у Вас рутер позволяет.
X-Forwarded-for у Вас может появится в том лишь случае, при такой схеме, если клиент, который обращается к Вам, за прокси, который передает этот заголовок. Но для Вас это проблемы не решит.
А что в dd-wrt какой-то специальный поломанный iptables?
Обычный SNAT модифицирует в пакетах только адрес назначения, а адрес источника остается прежним, то есть информация об IP посетителя не теряется.
А Вы не ошибаетесь? :)
к примеру:
iptables -t nat -I POSTROUTING -s 192.168.216.15 -j SNAT --to-source 10.10.10.2
что по Вашему меняется в этой строке? Source NAT — NAT источника.
Если настраивать через web, в dd-wrt, проброс порта идет примерно следующим правилом:
iptables -t nat -I PREROUTING -p tcp -i vlan2 --dport 8080 -j DNAT --to-destination 192.168.10.190:8080
Стоит только nginx. Без установки apache способа получения нет?
Конкретнее, у меня приложение на django. Nginx к нему проксирует запросы. Поэтому и без апача обхожусь легко.