Итак, сейчас 2019 год, я использую Win 10 в своем VirtualBox. И я хочу перенаправить localhost на 10.0.2.2 (это IP хост-машины)
10.0.2.2 localhost
Похоже, это не работает, некоторые люди сообщают, что Windows 10 намеренно отключает поиск localhost. Не уверен, зачем они это делают.
Но я пытаюсь найти обходной путь, который решит эту проблему, чтобы я мог получить доступ к URL-адресам моего локального хоста.
решение1
Теперь службы на и вне машины требуют, чтобы приложение было запущено на localhost origin. Поэтому я не могу запустить его на 10.0.2.2
Настройте TCP- или HTTP-прокси/пересылающий сервер, который прослушивает виртуальные машины localhost
и перенаправляет фактические соединения в правильное место назначения.
Для HTTP самым простым подходом будет обратный прокси, такой как Nginx или Apache. Вам буквально понадобится VirtualHost с ProxyPass / http://10.0.2.2/
. Для других протоколов и Nginx, и HAproxy также поддерживают пересылку потока.
Вы также можете использовать любой другой TCP-переадресатор, например SSH -L
или -R
переадресацию (в зависимости от того, есть ли у хоста или гостя сервер SSH), или даже встроенный в Windows netsh int portproxy
.
Например, чтобы перенаправить порт 443 на гостевой ОС Windows:
netsh interface portproxy add listenaddress=127.0.0.1 listenport=443 connectaddress=10.0.2.2 connectport=443
Альтернативный вариант, если на гостевой машине установлен PuTTY, а на хосте есть SSH-сервер:
plink -v -N -L 443:localhost:443 [email protected]
некоторые люди сообщили, что Windows 10 намеренно отключает поиск localhost. Не уверен, зачем они это делают
В целом есть две основные причины, по которым Windows могла это сделать:
Имя
localhost
«общеизвестно», то есть общепризнано, что оно преобразуется в петлевые адреса – это не простослучаетсяразрешить 127.0.0.1 или ::1, этопредназначены дляразрешить в 127.0.0.1 или ::1 и у него уже есть несколько десятилетий истории, когда он это делал. Поэтому вполне естественно, что ОС будет иметь такое встроенное правило.На самом деле, даже если вы найдете способ обойти Windows, вы обнаружите, что многиевеб-браузерытакже имеют такое правило встроенным, независимо от того, что делает ОС. (Например, вотИсходный код Chromium(Показывая, что у него жестко запрограммировано сопоставление для «localhost», и он даже не будет спрашивать ОС.) Существует даже IETFпроект стандартачто будет обязательным на уровне решателя.
Веб-браузеры часто считают
localhost
безопасным источником – они могут предоставлять больше API для,http://localhost
чем для другихhttp://
URL. Это, конечно, означает, что разрешение localhost разрешать что-либо, кроме 127.0.0.1/::1, будет риском безопасности.