- Как я могу указать IP и порты для имени хоста в файле хостов Windows?
- 3 ответа 3
- Типичный сценарий проблемы
- Возможное решение
- обзор
- действия
- Ссылки на ресурсы:
- Using port number in Windows host file
- 11 Answers 11
- Example
- Overview
- Actions
- Где находится файл hosts и как его изменить
- Зачем нужен файл hosts
- Где находится файл hosts
- Как внести изменения в файл hosts
- Блокировка доступа к сайту через файл hosts
- Оригинальный файл hosts и как его восстановить
- Можно на пальцах объяснить, про суть localhost и порты?
Как я могу указать IP и порты для имени хоста в файле хостов Windows?
Я хочу указать имена хостов с двумя разными портами в файле hosts Windows.
Есть ли способ сделать это? Или это не разрешено самой Windows?
Я трачу свое время на поиски решения в течение последних 8 часов.
Можно ли указать порты в файле host, hosts ? Например: 127.0.0.1:80 и 127.0.0.1:9211
3 ответа 3
Вы не можете связать номер порта с именем хоста, сопоставленным с IP в файле hosts. Вы можете добиться этого с помощью Fiddler, используя FiddlerScript:
Просто используйте IP-адреса без портов. Пример:
Затем для доступа к 192.168.2.50:5555 из вашего браузера (или другой программы):
(Файл hosts можно найти в C:\Windows\System32\drivers\etc\hosts .)
- Файл hosts предназначен только для разрешения имен хостов.
- Браузер при отсутствии прямого указания порта: то есть :
, по умолчанию используется порт 80
Типичный сценарий проблемы
- приложения обычно устанавливают на своих серверах один и тот же IP-адрес по умолчанию 127.0.0.1 или localhost (определенный в файле hosts).
чтобы избежать коллизий между, возможно, другими существующими / работающими серверами, приложение, как правило, позволяет изменить порт, но не IP-адрес.
2а. Если бы вы могли изменить IP-адрес сервера на другой в зарезервированном адресном пространстве 127.0.0.0/8 закольцованного адреса , вы, вероятно, не пытались бы устанавливать порты в файле hosts.
Возможное решение
Вы можете обойти это, используя сетевой инструмент Windows, включенный netsh в качестве прокси-сервера порта.
обзор
действия
- Запустите свой сервер на localhost:8081
- Добавьте «локальный DNS» в файл hosts в качестве новой строки
- 127.65.43.21 example.app
- Можно использовать любой свободный адрес в сети 127.0.0.0/8 .
- Примечание. Я предполагаю, что 127.65.43.21:80 не занят другой службой.
- Вы можете проверить с помощью netstat -a -n -p TCP | grep «LISTENING»
- 127.65.43.21 example.app
- добавьте следующую конфигурацию сети с помощью утилиты команды 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.
Using port number in Windows host file
After installing TeamViewer, I have changed the wampserver port to 8080, so the address is http://localhost:8080.
For the host file located at C:\WINDOWS\system32\drivers\etc\, I have also made the change as below
BEFORE
127.0.0.1 www.example.com
AFTER
127.0.0.1:8080 www.example.com
When I access www.example.com, it doesn’t redirect to my wampserver, how can I fix it?
11 Answers 11
The hosts file is for host name resolution only (on Windows as well as on Unix-like systems). You cannot put port numbers in there, and there is no way to do what you want with generic OS-level configuration — the browser is what selects the port to choose.
So use bookmarks or something like that.
(Some firewall/routing software might allow outbound port redirection, but that doesn’t really sound like an appealing option for this.)
I managed to achieve this by using Windows included Networking tool netsh .
As Mat points out : The hosts file is for host name resolution only, so a combination of the two did the trick for me.
Example
Overview
Actions
- Started my server on localhost:8081
- Added my «local DNS» in the hosts file as a new line
- 127.65.43.21 example.app
- Any free address in the network 127.0.0.0/8 ( 127.x.x.x ) can be used.
- Note: I am assuming 127.65.43.21:80 is not occupied by another service.
- You can check with netstat -a -n -p TCP | grep «LISTENING»
- 127.65.43.21 example.app
- added the following network configuration with netsh command utility
- netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
- I can now access the server at http://example.app
Notes:
— These commands/file modifications need to be executed with Admin rights
— netsh portproxy needs ipv6 libraries even only to use v4tov4, typically they will also be included by default, otherwise install them using the following command: netsh interface ipv6 install
You can see the entry you have added with the command:
netsh interface portproxy show v4tov4
You can remove the entry with the following command:
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21
Где находится файл hosts и как его изменить
Файл hosts — текстовый документ, который содержит в себе информацию о домене и адресе, на который ссылается домен.досту Файл hosts появился во времена зарождения Интернета (ARPANET) и служил где лежит неким маршрутизатором, пока на замену ему не пришла служба DNS. Но до сих пор он не утратил важности и по-прежнему используется как инструмент, который обладает приоритетом перед обращением к DNS-серверам.
Зачем нужен файл hosts
Предположим: вы зарегистрировали домен и привязали его к Hosting Linux. Но чтобы увидеть сайт, вам нужно дождаться делегирования домена на DNS-серверы. В файле hosts вы можете указать ваш домен и IP-адрес хостинга, а затем открыть браузер и зайти на ваш сайт, не дожидаясь делегирования домена. Также с его помощью вы можете заблокировать на локальном компьютере доступ к определённому сайту, указав соответствующую запись.
Где находится файл hosts
Путь к папке, где лежит файл hosts, зависит от операционной системы, которая установлена на вашем компьютере:
Windows XP, 2003, Vista, 7, 8, 10 — c:\windows\system32\drivers\etc\hosts
Linux, Ubuntu, Unix, BSD — /etc/hosts
Редактировать файл etc hosts нужно от имени администратора, иначе вы не сможете сохранить внесённые изменения.
Как внести изменения в файл hosts
Ниже мы рассмотрим, как редактировать и как сохранить файл hosts. Важно открыть файл с правами администратора, иначе система не даст вам его сохранить. Выберите вашу операционную систему и следуйте инструкции:
Запустите Блокнот или любой другой редактор от имени администратора. Откройте Пуск, найдите нужный редактор, нажмите по нему правой кнопкой мыши и выберите Запуск от имени администратора:
Как отредактировать файл hosts
В меню «Файл» нажмите Открыть и перейдите в каталог, в котором расположен файл hosts. Измените тип файла на «Все файлы»:
Добавьте в конце файла необходимую запись в формате:
123.123.123.123 | faq-reg.ru | www.faq-reg.ru |
123.123.123.123 — IP-адрес вашего сервера или хостинга,
faq-reg.ru — имя вашего домена.
Теперь вы можете открыть ваш сайт в браузере, не дожидаясь обновления DNS-серверов.
Чтобы изменить файл hosts в виндовс 10 (8), выполните следующие действия:
Запустите Блокнот или любой другой редактор от имени администратора. Для этого найдите его в Пуске, нажмите по нему правой кнопкой мыши и выберите Запуск от имени администратора:
В меню «Файл» нажмите Открыть и перейдите в каталог, где находится файл hosts . Измените тип файла на «Все файлы»:
Добавьте в конце файла необходимую запись в формате:
123.123.123.123 | faq-reg.ru | www.faq-reg.ru |
123.123.123.123 — IP-адрес вашего сервера или хостинга,
faq-reg.ru — имя вашего домена.
Теперь вы можете открыть ваш сайт в браузере, не дожидаясь обновления DNS-серверов.
В Linux файл hosts находится в папке etc. Чтобы отредактировать его:
Введите в терминал linux команду hosts: sudo nano /etc/hosts
Добавьте в конце файла необходимую запись в формате:
123.123.123.123 | faq-reg.ru | www.faq-reg.ru |
123.123.123.123 — IP-адрес вашего сервера или хостинга,
faq-reg.ru — имя вашего домена.
Теперь вы можете открыть ваш сайт в браузере, не дожидаясь обновления DNS-серверов.
Файл hosts в Ubuntu редактируется так же, как и во всех Unix-системах.
Файл hosts в Mac OS расположен в каталоге: /private/etc/hosts. Чтобы изменить его:
Введите команду: sudo nano /etc/hosts и нажмите Enter:
Добавьте в конце файла необходимую запись в формате:
123.123.123.123 | faq-reg.ru | www.faq-reg.ru |
123.123.123.123 — IP-адрес вашего сервера или хостинга,
faq-reg.ru — имя вашего домена.
Теперь вы можете открыть ваш сайт в браузере, не дожидаясь обновления DNS-серверов.
Также вы можете заблокировать определенный сайт через файл hosts, воспользовавшись инструкцией ниже:
Блокировка доступа к сайту через файл hosts
Доступ к сайту также можно ограничить для локального компьютера. Для этого укажите адрес страницы (домен) в файле hosts. Заблокировать IP нежелательного сайта не требуется. Блокировка осуществляется по локальному хосту с фиксированным IP (127.0.0.1):
В указанной на скриншоте строке укажите IP-адрес 127.0.0.1 и через пробел адрес нежелательного сайта. Чтобы заблокировать несколько сайтов, повторите действие в следующей строке. В примере ниже в файле hosts отказано в доступе (заблокирован доступ) к сайтам «vk.com» и «youtube.com»:
Готово! Доступ к сайтам будет ограничен на определенном ПК.
Оригинальный файл hosts и как его восстановить
Скачать оригинал файла hosts можно на разных ресурсах. Но мы не рекомендуем делать это, так как файл может быть заражен.
Файл hosts по умолчанию есть в каждой операционной системе, но он может быть скрыт для просмотра. Следуя инструкциям выше, вы сможете его открыть и отредактировать. Если вы удалили его, то просто создайте текстовый файл без расширения в нужной папке.
По умолчанию файл hosts выглядит следующим образом:
Можно на пальцах объяснить, про суть localhost и порты?
Объясните, пожалуйста, простым языком.
Что такое localhost в адресной строке?
Почему бывают разные порты?
Где находится этот localhost, в каких директориях?
- Вопрос задан более трёх лет назад
- 9884 просмотра
Если человек, не знакомый с арифметикой захочет понять, что означает «два плюс три равно пять», ему недостаточно объяснить, что такое «два», или что такое «плюс»!
Так же и тут. Для понимания, что такое localhost, сначала нужно понять, что такое хост вообще, что такое сеть, что такое имя хоста, что такое сервер, как это все связано с адресами и номерами портов, а те — с, собственно, одним конкретным компом (который, в зависимости от контекста, могут называть и «хостом», и «сервером», и «localhost»). Так что, чтоб можно было объяснить на пальцах, уточните, с какого места, собственно, непонятно.
Если человек, не знакомый с арифметикой захочет понять, что означает «два плюс три равно пять», ему недостаточно объяснить, что такое «два», или что такое «плюс»! Так же и тут. Для понимания, что такое localhost, сначала нужно понять, что такое хост вообще, что такое сеть, что такое имя хоста, что такое сервер, как это все связано с адресами и номерами портов, а те — с, собственно, одним конкретным компом (который, в зависимости от контекста, могут называть и «хостом», и «сервером», и «localhost»). Так что, на всякий случай:
Комп, подключенный к сети, называют хостом. К нему обращаются по уникальному адресу или имени. Одному имени (т.е. одному хосту) могут соответствовать несколько разных адресов.
Когда к хосту обращаются по имени, это имя сначала разрешается в адрес хоста, по которому, собственно, и происходит обращение. В сети этим обычно занимается DNS (который, кстати говоря, тоже является сервером. но это уже другая история, которая сейчас не так важна для понимания сути), но если DNS нет, соответствие имен-адресов можно прописать в файле hosts на самом хосте. Если некое имя хоста и там не прописано, обратиться к нему по имени не удастся. хотя прямое обращение по адресу будет работать.
Сервер — это программа, отвечающая на запросы из сети. Комп, на котором она выполняется, также называют «сервером». Причем, даже если выполнение программы приостановлено (например, проводят профилактику или программа-сервер упала), этот комп все равно будут называть «сервером», ибо он предназначен, в основном, для выполнения этой программы.
На одном компе (=хосте, сервере) может одновременно выполняться несколько разных программ-серверов. Для того, чтоб обратиться к конкретной из них (адрес-то у всех один и тот же!), в протоколе TCP/IP используются разные номера портов.
Если на компе запущен, например, HTTP сервер (= Webserver, например, Nginx или Apache), он «слушает» порт 80, а если не запущен, порт 80 никто не слушает, и если обратиться к такому хосту (= серверу, компу) по его адресу в порт 80, никакого ответа не придет. хотя сам хост и будет доступен.
Для разных общеизвестных типов программ-серверов (в этом случае также говорят о «сервисах» или же «протоколах», что в данном контексте практически одно и то же) принято использовать общеизвестные номера портов, а для наиболее распространенных (как тот же HTTP) можно даже не указывать номер порта при обращении, как мы обычно и делаем в строке броузера, т.к. клиент автоматически использует номер порта по умолчанию, в данном случае 80. Но, в принципе, любой сервис можно (переконфигурировав) использовать на любом порту. если, конечно, в этом есть смысл. Единственно, что нельзя — одновременно использовать разные серверы на одном порту.
И, наконец, было бы совсем глупо, если бы для обращения к какому-то серверу на одном хосте в сети обязательно был бы нужен еще и другой комп, с которого обращаться. Вот и придумали возможность обратиться к программе-серверу с того же хоста, на котором она выполняется, т.е. локально, а чтоб не гадать, по какому адресу или имени это делать, ввели понятие localhost.
localhost — «общеизвестное» имя компа для самого себя и ему соответствует IP адрес 127.0.0.1. Это — общепринятая договоренность, которую просто нужно знать. Если говорят «установить сервер на localhost», это означает «установить на тот самый комп, с которого и обращаться к этому серверу».