Использование номера порта в файле хоста Windows

после установки TeamViewer я изменил порт wampserver на 8080, поэтому адрес http://localhost:8080.

для файла хоста, расположенного по адресу C:WINDOWSsystem32driversetc, я также внес изменения, как показано ниже

до
127.0.0.1 www.example.com

после
127.0.0.1:8080 www.example.com

когда я получаю доступ www.example.com, это не напрямую к моему wampserver, как я могу это исправить?

9 ответов


на hosts файл предназначен только для разрешения имен хостов (в Windows, а также в Unix-подобных системах). Вы не можете поместить туда номера портов, и нет никакого способа сделать то, что вы хотите с общей конфигурацией уровня ОС-браузер выбирает порт для выбора.

поэтому используйте закладки или что-то в этом роде.
(Некоторые брандмауэры / маршрутизаторы могут разрешить перенаправление исходящих портов, но это не кажется привлекательным вариантом для этого.)


что вы хотите, может быть достигнуто путем изменения файла hosts через скрипач 2 приложение.

выполните следующие действия:

  1. установить может стать использование программы Fiddler2
  2. перейдите в меню Fiddler2: -инструменты>хозяева.. (Выберите)
  3. добавьте такую строку: -

    localhost:8080 www.mydomainname.com

  4. сохранить файл и затем проверить www.mydomainname.com в браузер.

мне удалось добиться этого с помощью окна входит сетевой инструмент netsh.

как указывает Mat: файл hosts предназначен только для разрешения имен хостов, поэтому комбинация двух сделала трюк для меня.

пример


обзор

example.app:80
 |                           <--Link by Hosts File
 +--> 127.65.43.21:80
       |                     <--Link by netsh Utility
       +--> localhost: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


ссылки на ресурсы:


Может Стать Использование Программы Fiddler2 -> Правила -> Правила

затем найдите функцию OnBeforeRequest на put в следующем скрипте в конце:

if (oSession.HostnameIs("mysite.com")){
    oSession.host="localhost:39901";
}

-вы можете использовать любой бесплатный адрес в сети 127.0.0.0 / 8 , в моем случае это нужно для колбы python, и это то, что я сделал : добавьте эту строку в файл hosts (вы можете найти ее в разделе windows : C:\Windows\System32\drivers\etc ):

127.0.0.5 flask.dev
  • убедитесь, что порт является портом по умолчанию " 80 " в моем случае это то, что в колбе python: app.run("127.0.0.5","80")

  • Теперь запустите свой код и просмотрите flask.dev


Если происходит то, что у вас есть другой сервер, работающий на localhost, и вы хотите дать этому новому серверу другое локальное имя хоста, например http://teamviewer/

Я думаю, что на самом деле вы ищете функциональность виртуальных хостов. Я использую Apache, поэтому я не знаю, как другие веб-демоны поддерживают это. Возможно, это называется псевдоним. Вот документация Apache:

примеры виртуальных хостов Apache


самый простой способ-использовать Ergo в качестве обратного прокси: https://github.com/cristianoliveira/ergo

вы устанавливаете свои услуги и его IP: порт и ergo маршрутизирует его для вас :).

вы можете достичь того же, используя nginx или apache но вам нужно будет настроить их.


использование netsh с connectaddress=127.0.0.1 не сработало для меня.

несмотря на то, что я искал везде в Интернете, я не мог найти решение, которое решило это для меня, которое должно было использовать connectaddress=127.X. X. x (т. е. любые 127. ipv4-адрес, а не 127.0.0.1), поскольку это похоже на ссылку на localhost точно так же, но без ограничения, так что loopback работает в netsh.


вам нужен Ngnix или Apache HTTP server в качестве прокси-сервера для пересылки http-запросов в соответствующее приложение - > которое прослушивает конкретный порт (или делает это с CNAME, который предоставляет хостинг-компанию). Это самое мощное решение, и это просто очень простой способ продолжать добавлять новые поддомены или добавлять новые домены автоматически, когда записи DNS направлены на сервер.