🛡 iptables скрывает серверную часть, но теряет адрес клиента iptables может перенаправить трафик на серверную часть через DNAT в PREROUTING, а обратный путь организовать с помощью SNAT в POSTROUTING. После SNAT сервер видит адрес прокси. Исходный IP потерян. В статье на Хабре разбирают перенаправление HTTPS на 443/tcp, произвольного TCP-порта 9000 и UDP-порта 27015. Для транзита нужны разрешающие правила в FORWARD и включённый net.ipv4.ip_forward. Но эти настройки не передают приложению IP клиента. Для HTTP нужен другой путь: завершать клиентское соединение на прокси уровня L7, пока тот ещё видит исходный адрес. Например, в Nginx задают proxy_set_header X-Real-IP $remote_addr; и proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;. Серверная часть должна доверять этим заголовкам только от прокси, иначе клиент сможет подделать X-Forwarded-For. Для TCP можно использовать PROXY protocol v2, но только если его поддерживают оба конца; произвольный UDP он не решает. Я бы разделял HTTP и обычный TCP/UDP, а не пытался выжать из iptables возможности L7. Скрыть адрес серверной части — ещё не значит сохранить полезные данные о сети. #iptables #Nginx #NAT #проксирование