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



@abler98

Имеется 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 сервера? Теоретически ведь роутер может сам решить этот вопрос?


Решения вопроса 2



@Jump

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

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

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

Используйте файл HOSTS вашего роутера, или компьютера.
Добавьте туда запись вида vash_domain.com 192.168.1.200 и ходите по имени.

Комментировать

Ответы на вопрос 2



@dtmse

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



@ky0

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

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

В целом — для проброса IP-адреса за НАТ используют специальные заголовки а-ля X-Real-IP.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *