hosts
Файл только для разрешения имен
- Браузер , при отсутствии непосредственно с указанием порта: то есть
<hostname>:<port>
, по умолчанию порт80
Сценарий типичной проблемы
- приложения обычно устанавливают свои серверы на тот же адрес IP по умолчанию
127.0.0.1
ака localhost
(определенного в файле хостов) .
чтобы избежать коллизий между, возможно, другими существующими / работающими серверами, приложение, как правило, позволяет изменить порт, но не IP-адрес.
2а. Если бы вы могли изменить ip-адрес сервера на другой в зарезервированном адресном пространстве loopback 127.0.0.0/8
, вы, вероятно, не пытались бы устанавливать порты в файле hosts.
Возможное решение
Вы можете обойти это, используя Windows Networking Network netsh
в качестве прокси порта.
обзор
example.app
| <--browser defaults to port 80
+--> example.app:80
| <--Hostname resolution by Hosts File
+--> 127.65.43.21:80
| <--Link by netsh Utility
+--> 127.0.0.1:8081
действия
- Запустите свой сервер на
localhost:8081
- Добавьте "локальный DNS" в файл hosts в качестве новой строки
127.65.43.21 example.app
- Любой свободный адрес в сети
127.0.0.0/8
может быть использован.
- Примечание: я предполагаю,
127.65.43.21:80
что не занят другой службой.
- Вы можете проверить с
netstat -a -n -p TCP | grep "LISTENING"
- добавьте следующую конфигурацию сети с помощью утилиты
netsh
netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
- Доступ к серверу по адресу
http://example.app
Примечания:
- Эти команды / изменения файла должны выполняться с правами администратора.
- netsh portproxy нуждается в библиотеках ipv6 даже только для использования v4tov4, обычно они также будут включены по умолчанию, в противном случае установите их с помощью следующей команды:netsh interface ipv6 install
Вы можете увидеть запись, которую вы добавили с помощью команды:
netsh interface portproxy show v4tov4
Вы можете удалить запись с помощью следующей команды:
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21
Ссылки на ресурсы:
Примечание: этот ответ является дублированием моего ответа, который обсуждался в этом аналогичном вопросе / ответе по stackoverflow.