Давным-давно я описывал, как проверить внешний IP-адрес, поэтому сегодня я покажу удаленный адрес с помощью веб-сервера Nginx.
⬇ Как проверить внешний IP-адрес с помощью службы DNS
Используйте следующую конфигурацию виртуального хоста, чтобы просто возвращать удаленный адрес в теле ответа.
server { server_name _; location / { default_type text/plain; set $response_body "X-Real-IP: $remote_addr\n"; if ($http_x_forwarded_for) { set $response_body "${response_body}X-Forwarded-For: $http_x_forwarded_for\n"; } if ($http_x_forwarded_proto) { set $response_body "${response_body}X-Forwarded-Proto: $http_x_forwarded_proto\n"; } if ($http_x_forwarded_host) { set $response_body "${response_body}X-Forwarded-Host: $http_x_forwarded_host\n"; } if ($http_x_forwarded_server) { set $response_body "${response_body}X-Forwarded-Server: $http_x_forwarded_server\n"; } return 200 $response_body; } }
Используйте браузер или утилиту curl для прямой проверки IP-адреса.
X-Real-IP: 172.16.0.111
Используйте браузер или утилиту curl для проверки IP-адреса через NAT. Обратите внимание, что удаленный адрес будет указывать на машину NAT.
X-Real-IP: 172.16.0.1
Используйте браузер или утилиту curl для проверки IP-адреса через прокси-сервер.
X-Real-IP: 172.16.0.102 X-Forwarded-For: 172.16.0.1 X-Forwarded-Proto: http X-Forwarded-Host: 172.16.0.102:80 X-Forwarded-Server: 172.16.0.102
Пример конфигурации виртуального хоста, который будет проксировать трафик на адрес http://172.16.0.101.
server { server_name _; location / { proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $host:$server_port; proxy_set_header X-Forwarded-Server $host; proxy_pass http://172.16.0.101; }