- Как я могу указать IP и порты для имени хоста в файле хостов Windows?
- Сценарий типичной проблемы
- Возможное решение
- обзор
- действия
- Ссылки на ресурсы:
- Как открыть порты на компьютере
- Зачем нужно открывать порты?
- Проверка порта
- Открытие порта в фаерволе
- Настройки маршрутизатора
- Открытие порта в антивирусе
- Настройка виртуальных хостов на Apache для начинающих
Как я могу указать IP и порты для имени хоста в файле хостов Windows?
Я хочу указать имена хостов с двумя разными портами в hosts файле Windows .
Есть ли способ сделать это? Или это не разрешено самой Windows?
Я трачу свое время на поиски решения в течение последних 8 часов.
Можно ли указать порты в файле хоста hosts ? Например: 127.0.0.1:80 и 127.0.0.1:9211
Просто используйте IP-адреса без портов. Пример:
Затем для доступа к 192.168.2.50:5555 из вашего браузера (или другой программы):
hosts Файл можно найти по адресу:
Linux /etc/hosts
Windows : C:\Windows\System32\drivers\etc\hosts
Вы не можете связать номер порта с именем хоста, сопоставленным с IP в файле hosts. Вы можете достичь этого с помощью Fiddler, используя FiddlerScript:
- hosts Файл только для разрешения имен
- Браузер , при отсутствии непосредственно с указанием порта: то есть :
, по умолчанию порт 80
Сценарий типичной проблемы
- приложения обычно устанавливают свои серверы на тот же адрес IP по умолчанию 127.0.0.1 ака localhost (определенного в файле хостов) .
чтобы избежать коллизий между, возможно, другими существующими / работающими серверами, приложение, как правило, позволяет изменить порт, но не IP-адрес.
2а. Если бы вы могли изменить ip-адрес сервера на другой в зарезервированном адресном пространстве loopback 127.0.0.0/8 , вы, вероятно, не пытались бы устанавливать порты в файле hosts.
Возможное решение
Вы можете обойти это, используя Windows Networking Network 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.
Источник
Как открыть порты на компьютере
Открытие порта может понадобится почти любому человеку, использующему компьютер с установленной десяткой или любой другой операционной системой . В этой инструкции мы расскажем, как открыть порты на компьютере при помощи встроенного фаервола Windows, через маршрутизатор и изменяя настройки вашего антивирусного программного обеспечения.
Зачем нужно открывать порты?
Существует множество приложений и игр, которые при использовании интернета подключаются через конкретный порт. Десятая версия Виндоус, в целях безопасности, блокирует свободное их использование. Также подобные подключения невозможны без соответствующей настройки роутера или антивирусной программы , если таковая установлена на вашем ПК. Пользователю нужно самому разрешить доступ, выставив соответствующие настройки.
Проверка порта
Проверить открыт ли тот или иной порт на ПК, можно воспользовавшись специальными сервисами или командной строкой системы. Чтобы сделать это онлайн, потребуется проделать следующее:
- Перейдите на сайт и выберите вариант«Проверка порта».
- Введите его номер и кликните «Проверить».
Сервис выдаст текущее состояние порта.
Чтобы проверить порт, используя специальную команду вам понадобится:
- Запустить командную строку, используя поиск Windows или отыскав её в стартовом меню системы.
- Вписать в окно программы netstat–a и нажать «Enter».
Перед вами отобразится список открытых на данный момент портов.
Открытие порта в фаерволе
Чтобы настроить порты используя встроенный в систему брандмауэр, потребуется установить правила подключений. Осуществить это можно проделав следующие операции:
- Откройте «Панель управления» через поиск в стартовом меню.
- В следующем окне зайдите в «Брандмауэр ЗащитникаWindows».
- Нажмите «Дополнительные параметры».
В большинстве случаев требуется создать 2 правила – одно для входящих и второе для исходящих соединений.
- Выберите ссылку «Правила для входящих подключений» и кликните «Создать правило».
- В следующем окне выберите вариант «Для порта».
- Нажмите «Далее».
- Выберите протокол, через который будет работать приложение, для которого вы открываете порт.
- Отметьте вариант «Определенные локальные порты».
- Впишите номер порта.
- Кликните по кнопке «Далее».
- Выберите профили, к которым будет применяться созданное правило.
- Нажмите «Далее».
- Дайте правилу имя и впишите его описание.
- Кликните «Готово».
Те же самые действия нужно проделать с другим протоколом, если приложение для которого вы открываете порт, использует несколько типов соединения.
- Далее возвращаемся на главную страницу и выбираем вариант«Правила для исходящего подключения» и опять нажимаем «Создать правило». Создаем его таким же образом, как было описано ранее, для входящих подключений.
Настройки маршрутизатора
Открыв доступ в фаерволе, потребуется также изменить настройки маршрутизатора. Для этого нужно осуществить следующие действия:
- Открыть обозреватель и ввести IP адрес вашего роутера.
Обычно это 192.168.1.1 или 192.168.0.1 (точный адрес маршрутизатора можно найти не его панели или в инструкции).
- Введите ваш логин и пароль для доступа. (по умолчанию: Имя-admin; пароль-admin)
- В открывшемся меню отыщите пункт «Forwarding» и зайдите в раздел «PortTriggering».
- В графы «TriggerPort»и «Incoming Ports»ведите номер порта.
- Кликните «Save».
По окончании настройки роутер нужно перезагрузить, после чего порты станут доступны.
Открытие порта в антивирусе
Предоставление доступа в настройках фаервола и маршрутизатора может оказаться недостаточным, так как соединение может блокироваться антивирусным программным обеспечением. Рассмотрим, как можно открыть порт на примере антивируса Касперского. Для этого потребуется проделать следующие действия:
- Зайдите в настройки приложения, нажав на кнопку с изображением шестеренки.
- Выберите раздел«Дополнительно» и перейдите на вкладку «Сеть».
- Далее кликните «Выбрать».
- В появившемся списке выберите «Добавить».
- Впишите описание правила и укажите номер порта.
- Кликните «Добавить».
После этого желательно перезагрузить систему. Дополнительно можно добавить приложение, для которого вы настраиваете порт, в исключения, чтобы антивирус его не блокировал.
Процедура доступа к определенному порту не является особо сложной операцией. Действуя в соответствии с данной инструкцией, вы сможете осуществить задуманное без особых проблем.
Источник
Настройка виртуальных хостов на Apache для начинающих
В прошлых статьях мы установили и настроили на локальном компьютере сервер Apache. В принципе, на этом можно было бы остановиться, так как сервер находится в рабочем состоянии и его можно спокойно использовать в работе. Но, по личному опыту, могу сказать, что использование только одного хоста localhost не очень удобно при разработке нескольких сайтов, так как для каждого сайта нужно будет создавать в каталоге localhost отдельный каталог и со временем в ней (папке localhost) будет очень трудно разобраться и что-то найти. Да и при тестировании разрабатываемого проекта гораздо удобнее набирать в браузере адрес вида test, чем localhost/test. Поэтому мы приступаем к настройке виртуальных хостов на локальном сервере.
Вообще, существует два способа конфигурирования виртуальных хостов: на основе имени и на основе IP-адреса. Но, так как мы настраиваем локальный сервер и у нас только один IP (кстати, для локалки он 127.0.0.1), то вариант с привязкой к IP нам не подходит и мы будем рассматривать вариант с привязкой к имени.
В прошлой статье я уже упоминал, что в файле конфигурации httpd.conf сервера есть строчка Include conf/extra/httpd-vhosts.conf. Мы ее уже раскомментировали, поэтому собственно и переходим к этому файлу. Найти его можно в папке Apache/conf/extra/.
Начнем рассматривать содержимое файла.
Первая директива – это NameVirtualHost *:80 привязывает виртуальные хосты, указываемы далее, к именам сайтов указанных в секциях . Здесь вместо звездочки можно вписать IP 127.0.0.1, но тогда во всех секциях нужно будет указать то же самый IP. Принцип работы этой директивы заключается в том, что при обращении, допустим, к адресу localhost, сервер проверяет, соответствует ли входящий адрес и порт, описанным в секциях VirtualHost и имеется ли запись 127.0.0.1:80 в директиве NameVirtualHost. Если соответствует, то он перебирает секции VirtualHost, в заголовках которых указан входящий адрес. Таким образом, запрос 127.0.0.1:80 будет распределяться только между виртуальными хостами, в которых он указан.
Дальше в файле идут секции VirtualHost. Как видно из названия, каждая секция описывает настройки каждого виртуального хоста. Обязательно должна быть хотя бы одна такая секция, которая описывает настройки для localhost.
DocumentRoot “D:/server/localhost/www”
ServerName localhost
ErrorLog “D:/server/logs/localhost.error.log”
CustomLog “D:/server/logs/localhost.access.log” common
Директива DocumentRoot в этой секции указывает на папку, к которой будет происходить обращение при вызове адреса localhost.
ServerName как раз содержит имя нашего виртуального хоста, то есть его адрес. Сюда можно вписывать как адреса вида localhost, test, site, так и адреса localhost.ru, test.com, www.site.org.
В ErrorLog и CustomLog мы указываем, где будут хранится логи этого виртуального хоста. Обратите внимание, имеет смысл для каждого хоста добавлять в имя файла лога название этого хоста, чтобы в будущем было легко найти лог требуемого хоста. Эти директивы можно и не указывать, но тогда логи этого виртуального хоста будут храниться в общих логах сервера.
В таком виде секция виртуального хоста уже работоспособна и на этом можно остановиться. Но можно добавить такие директивы как:
- ServerAdminwebmaster@site.ru – адрес электронки администратора виртуального хоста
- ServerAlias www.site.ru – зеркало хоста
Кроме того, можно добавить секции для индивидуальной настройки хоста:
ScriptAlias /cgi-bin/ “d:/server/host_name/cgi-bin”
Создает ссылку на папку скриптов cgi-bin для хоста host_name.
Options Indexes Includes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Настройки директории хоста host_name, их мы разбирали в прошлой статье.
После настройки файла httpd-vhosts.conf проверим правильность его конфигурации. В каталоге D:\server\Apache\bin\ создайте файл httpd-S.cmd с содержимым:
“D:\server\Apache\bin\httpd.exe” –S
pause
После запуска этого файла вы увидите окно с отчетом о проверке, Syntax OK в конце говорит о том, что все настройки в порядке.
Теперь нужно прописать созданные хосты в файл C:\Windows\system32\drivers\etc\hosts. Для этого открываем его текстовым редактором и вносим следующие записи:
127.0.0.1 www.host1.ru host1.ru #Чтобы не набирать www перед именем сайта, создаем зеркало
127.0.0.1 www.host2 host2 #Можно и без .ru создавать хосты
127.0.0.1 host3 #Самый распространенный вариант для локалки
127.0.0.1 localhost # Обычно уже указано, проследите чтобы случайно не удалили и не закомментировали.
Сохраните файл и перезапустите Apache. Попробуйте разместить в каталогах созданных вами виртуальных хостов какие-нибудь тестовые файлы (например index.html) и из браузера открыть хосты по адресам, указанным в директории ServerName каждого хоста.
Если вам приходится часто создавать виртуальные хосты и не очень хочется каждый раз редактировать все эти файлы и перезапускать Apache вручную, создайте в папке сервера (D:\server\) файл createVH.cmd с таким содержимым:
@cls
@rem Получаем текущую папку. Если у вас структура папок сервера как у меня, но он установлен, например на другом диске, укажите здесь вместо %
dp0 путь с нему (например, D:\server\) косая черта в конце обязательна.
@set server_path=%
dp0
:dir_exist
@set /P new_dir=»Enter new VHost name:»
@set /P ip_add=»Enter your IP address:»
@ if exist %server_path%%new_dir% echo «VHost %new_dir% already exist. Please re-enter Vhost name.»
@ if exist %server_path%%new_dir% goto dir_exist
@md %server_path%%new_dir%
@rem Здесь указывается путь до конфиг файла виртуальных хостов, если у вас другой , поменяйте
@set outputfile=%server_path%Apache\conf\extra\httpd-vhosts.conf
@echo. >> %outputfile%
@echo ^ >> %outputfile%
@echo ServerName %new_dir% >> %outputfile%
@echo DocumentRoot «%server_path%%new_dir%» >> %outputfile%
@echo ErrorLog «%server_path%logs\%new_dir%.error.log» >> %outputfile%
@echo CustomLog «%server_path%logs\%new_dir%.access.log» common >> %outputfile%
@echo ^ >> %outputfile%
@if %ip_add%==* set ip_host=127.0.0.1
@if not %ip_add%==* set ip_host=%ip_add%
@set hostfile=%windir%\system32\drivers\etc\hosts
@echo. >> %hostfile%
@echo %ip_host% %new_dir% >> %hostfile%
@set htmlfile=%server_path%%new_dir%\index.html
@echo ^ >> %htmlfile%
@echo ^ >> %htmlfile%
@echo ^ %new_dir%^ >> %htmlfile%
@echo ^ >> %htmlfile%
@echo ^ >> %htmlfile%
@echo %new_dir% >> %htmlfile%
@echo ^ >> %htmlfile%
@echo ^ >> %htmlfile%
@rem Здесь путь до самого сервера, если у вас другой, поменяйте
@start %server_path%Apache\bin\httpd.exe -k restart
Теперь для создания хоста просто запустите этот файл, впишите в ответ имя нового хоста и IP, который будет указываться в секции VirtualHost файла httpd-vhosts.conf. По окончанию работы программа сама закроется. Вам останется только проверить созданный хост, набрав в адресной строке браузера имя, которое вы вписали в программу. Если все успешно прошло, то вы увидите страницу с именем нового хоста.
Обратите внимание, программа рассчитана на то, что структура каталогов сервера соответствует той, которую я указывал в первой статье. Если у вас установлен сервер по другим путям, поправьте файл в соответствии с ними.
Источник