Как сохранить IP адрес клиента в локальной сети при запросе через внешний интерфейс?
======================================================================================

 Имеется HTTP сервер в локальной сети с адресом 192.168.1.100, на него настроено перенаправление из-вне по 443-му порту.   

  

Клиент с адресом 192.168.1.200, находясь в одной локальной сети с этим сервером, делает запрос через внешний интерфейс (по домену, привязанному ко внешнему IP), HTTP сервер принимает этот запрос, но вместо IP клиента получает IP шлюза (192.168.1.1), что в общем логично, но хотелось бы в итоге на HTTP сервере получить адрес 192.168.1.200.  

  

Как я понимаю, сделать это можно, только если отправлять запрос на HTTP сервер, минуя внешний интерфейс.  

  

Вопрос: как это сделать без внутреннего DNS сервера? Теоретически ведь роутер может сам решить этот вопрос? 

> Как я понимаю, сделать это можно, только если отправлять запрос на HTTP сервер, минуя внешний интерфейс.

Правильно понимаете.  

  

> как это сделать без внутреннего DNS сервера?

Используйте файл HOSTS вашего роутера, или компьютера.  

Добавьте туда запись вида vash\_domain.com 192.168.1.200 и ходите по имени. 

 В документации по Cisco RV042G есть упоминание про DNS Local Database, что позволит решить твою проблему через DNS. 

 Разнесите сервер и клиент по разным внутренним подсетям. В этом случае подменять внутренний адрес клиента внешним адресом роутера необходимости не будет (т.к. не возникнет ситуации, когда трафик от клиента к серверу и обратно ходит по разным маршрутам). 

> Клиент с адресом 192.168.1.200, находясь в одной локальной сети с этим сервером, делает запрос через внешний интерфейс

  

Это кривота - клиенты из локальной сети не должны ходить к локальным ресурсам по внешнему адресу.  

  

В целом - для проброса IP-адреса за НАТ используют специальные заголовки а-ля [X-Real-IP](https://nginx.org/en/docs/http/ngx_http_realip_module.html).