Я установил небольшой веб-сервер на настольном компьютере для внутреннего и внешнего использования в моей компании. Сеть компании состоит из маршрутизатора D-Link DSL-6740U, подключенного к коммутатору TP-Link TL-SG1016, и все машины в офисе подключены к коммутатору. IP-адрес маршрутизатора - 10.0.0.138
и все рабочие столы находятся в диапазоне 10.0.0.0 - 10.0.0.20 range
. Сервер, случается, 10.0.0.10
. Кроме того, я перенаправил порт 80 на маршрутизаторе с внешних запросов на компьютер, на котором размещен сервер. Наш внешний IP-адрес 1.2.3.4
для целей обсуждения.
Я заметил, что все запросы, исходящие из локальной сети с целевым сервером с нашим внешним IP-адресом (1.2.3.4
), отображаются на сервере как с IP-адреса 10.0.0.138
(маршрутизатор), а не с внутреннего IP-адреса рабочий стол, делающий запрос. Если рабочий стол сделал запрос через адрес 10.0.0.10
(адрес локальной сети сервера), мы видим его адрес локальной сети (то есть 10.0.0.6
).
Почему все запросы к внешнему адресу отображаются как от 10.0.0.138
(маршрутизатор), а не от адреса локальной сети (т. 10.0.0.6
или даже нашего внешнего адреса 1.2.3.4
)? Это функция роутера? Предполагая, что я не могу изменить конфигурацию маршрутизатора (на самом деле, я могу), есть ли что-то, что я мог бы сделать (на сервере или на клиенте), чтобы IP-адрес отображался как исходный адрес в локальной сети?
ПРИМЕЧАНИЕ. В исходной версии этого вопроса я неправильно указал, что даже вызовы на адрес локальной сети сервера будут отображаться в журналах как начиная с 10.0.0.138
. С тех пор я научился трижды проверять, что мои пользователи сообщают мне о том, как они получают доступ к серверу!