Вопрос:
После установки 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, как я могу это исправить?
Лучший ответ:
Файл hosts предназначен только для разрешения имени хоста (как для Windows, так и для Unix-подобных систем). Вы не можете указывать номера портов там, и вы не можете делать то, что хотите, с общей конфигурацией на уровне ОС – браузер выбирает порт для выбора.
Так что используйте закладки или что-то в этом роде.
(Некоторое программное обеспечение брандмауэра/маршрутизации может разрешить перенаправление исходящего порта, но это не похоже на привлекательный вариант для этого.)
Ответ №1
То, что вы хотите, может быть достигнуто путем изменения файла hosts через приложение Fiddler 2.
Выполните следующие действия:
- Установить Fiddler2
- Перейдите в меню Fiddler2: – Инструменты > HOSTS.. (Нажмите, чтобы выбрать)
Добавьте строку, подобную этой: –
localhost:8080 www.mydomainname.com
- Сохраните файл, а затем проверьте www.mydomainname.com в браузере.
Ответ №2
Мне удалось добиться этого с помощью Windows сетевого инструмента netsh.
Как указывает Мэт: файл 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.x.x.x).
- Примечание. Я предполагаю, что 127.65.43.21:80 не занят другой службой.
- Вы можете проверить с помощью netstat -a -n -p TCP | grep «LISTENING»
- 127.65.43.21 example.app
- добавил следующую сетевую конфигурацию с помощью утилиты netsh command
- netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
- Теперь я могу получить доступ к серверу на
Примечания:
– Эти команды/изменения файла должны выполняться с правами администратора
.- 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
Ссылки на ресурсы:
- Использование Netsh
- Команды Netsh для IP-интерфейса
- Команды Netsh для интерфейса PortProxy
- Пример переадресации портов Windows
Ответ №3
Fiddler2 → Правила → Пользовательские правила
затем найдите функцию OnBeforeRequest в следующем конце script в конце:
if (oSession.HostnameIs(«mysite.com»)){ oSession.host=»localhost:39901″; } Ответ №4
-Вы можете использовать любой свободный адрес в сети 127.0.0.0/8, в моем случае это необходимо для флешки python, и это то, что я сделал:
добавьте эту строку в файл hosts (вы можете найти ее под Windows: C:WindowsSystem32driversetc):
127.0.0.5 flask.dev
-
Убедитесь, что порт является портом по умолчанию “80”, в моем случае это то, что в колбе питона: app.run(«127.0.0.5″,»80»)
-
теперь запустите свой код и просмотрите flask.dev
Ответ №5
Самый простой способ – использовать Ergo как ваш обратный прокси-сервер:
https://github.com/cristianoliveira/ergo
Вы устанавливаете свои сервисы и свои IP: PORT и ergo перенаправляет его для вас:).
Вы можете добиться того же, используя nginx или apache, но вам нужно будет их настроить.
Ответ №6
Если происходит то, что у вас есть другой сервер, работающий на localhost, и вы хотите дать этому новому серверу другое локальное имя хоста, например
http://teamviewer/
Я думаю, что фактически вы ищете функциональность виртуальных хостов. Я использую Apache, поэтому я не знаю, как это поддерживают другие веб-демоны. Возможно, это называется Alias. Вот документация Apache:
Примеры виртуальных хостов Apache
Ответ №7
Использование netsh с connectaddress = 127.0.0.1 не работает для меня.
Несмотря на то, что я искал повсюду в Интернете, я не смог найти решение, которое решило бы эту проблему для меня, которое заключалось в использовании connectaddress = 127.xxx (т.е. любого адреса 127. ipv4, просто не 127.0.0.1), так как это похоже на обратную ссылку на localhost просто то же самое, но без ограничения, так что петля работает в netsh.
Ответ №8
Вам понадобится HTTP-сервер NGNIX или Apache в качестве прокси-сервера для пересылки http-запросов в соответствующее приложение → которое прослушивает определенный порт (или делает это с CNAME, предоставляющей хостинговую компанию). Это наиболее эффективное решение, и это просто очень простой способ добавления новых поддоменов или автоматического добавления новых доменов, когда записи DNS направлены на сервер.
-
Эра Apache называет это Виртуальный хост ->
httpd.apache.org/docs/trunk/vhosts/examples.html -
NGINX → Блок сервераhttps://www.nginx.com/resources/wiki/start/topics/examples/server_blocks/