Использование номера порта в файле хоста 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 приложение.
выполните следующие действия:
- установить может стать использование программы Fiddler2
- перейдите в меню Fiddler2: -инструменты>хозяева.. (Выберите)
добавьте такую строку: -
localhost:8080 www.mydomainname.com
- сохранить файл и затем проверить
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:
самый простой способ-использовать 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 направлены на сервер.
Apache era называют его виртуальным хостом -> httpd.apache.org/docs/trunk/vhosts/examples.html
NGINX - > серверный блок https://www.nginx.com/resources/wiki/start/topics/examples/server_blocks/