hosts
Файл тільки для розпізнавання імен
- Браузер , при відсутності безпосередньо з вказівкою порту: тобто
<hostname>:<port>
, по замовчуванням порт80
Типовий сценарій проблеми
- додатки зазвичай встановлюють свої сервери на ту саму адресу IP по замовчуванням
127.0.0.1
ака localhost
(визначеного в файлі хостів) .
щоб уникнути зіткнення між можливо іншими існуючими / запущеними серверами, програма зазвичай дозволяє змінювати порт, але не ip-адресу.
2а. Якби ви могли змінити ip-адресу серверів на іншу в резервному адресному просторі для зворотного зв'язку 127.0.0.0/8
, ви, ймовірно, не намагалися б встановити порти у файлі хостів.
Можливе рішення
Ви можете обійти це, використовуючи мережевий інструмент, включений у Windows , 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" у файл хостів як новий рядок
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.