Использование номера порта в хост-файле Windows - PullRequest
161 голосов
/ 28 декабря 2011

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

Для файла хоста, расположенного в C: \ WINDOWS \ system32 \ drivers \ etc \, я также внес изменения, как показано ниже

до
127.0.0.1 www.example.com

ПОСЛЕ
127.0.0.1:8080 www.example.com

Когда я захожу на www.example.com, он не имеет прямого доступа к моему wampserver, как я могу это исправить?

Ответы [ 9 ]

172 голосов
/ 28 декабря 2011

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

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

156 голосов
/ 05 февраля 2014

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

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

  1. Установите Fiddler2
  2. Перейдите в меню Fiddler2: - Инструменты > HOSTS .. (нажмите, чтобы выбрать)
  3. Добавьте строку, подобную этой: -

    localhost:8080 www.mydomainname.com

  4. Сохраните файл и оформите www.mydomainname.com в браузере.
119 голосов
/ 15 апреля 2016

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

Как отмечает Мэт: Файл hosts предназначен только для разрешения имен хостов, поэтому мне помогло сочетание двух.

Пример


Обзор

example.app:80
 |                           <--Link by Hosts File
 +--> 127.65.43.21:80
       |                     <--Link by netsh Utility
       +--> localhost:8081

Действия

  • Запустил мой сервер на localhost:8081
  • Добавлен мой "локальный DNS" в файле hosts в качестве новой строки
    • 127.65.43.21 example.app
      • Можно использовать любой свободный адрес в сети 127.0.0.0/8 (127.x.x.x).
      • Примечание: Я предполагаю, что 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


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

12 голосов
/ 13 июня 2015

Fiddler2 -> Правила -> Пользовательские правила

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

if (oSession.HostnameIs("mysite.com")){
    oSession.host="localhost:39901";
}
2 голосов
/ 26 октября 2017

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

Вы устанавливаете свои службы и их IP: PORT и, следовательно, маршрутизируете их для вас:).

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

2 голосов
/ 29 июля 2017

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

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

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

1 голос
/ 14 января 2018

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

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

1 голос
/ 29 июля 2015

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

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

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

0 голосов
/ 08 февраля 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...