Давным-давно я описывал, как проверить внешний 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;
}




