Вопрос или проблема
Я могу просматривать мой серверный сайт, используя
ip:8080
который находится внутри моей домашней сети. Но я не могу просматривать, используя
hostname:8080
У меня нет DNS-сервера. Я отредактировал файл /etc/hosts, чтобы включить имя хоста и IP. Я могу выполнять ping по имени хоста.
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.16.2.12 apple.myserver.com
10.16.2.22 ball.myserver.com
10.16.2.20 cat.myserver.com
10.16.2.19 dog.myserver.com
10.16.2.18 elep.myserver.com
Похожая проблема здесь.
Если у вас нет DNS (то есть он не зарегистрирован и не разрешается глобально), то всё, что вам нужно сделать, это добавить ту же запись хоста на вашем ПК/ноутбуке, чтобы получить доступ к нему по имени хоста.
Ответ или решение
Вопрос: Как осуществлять доступ к серверу через браузер по имени хоста?
Если вы можете получить доступ к вашему серверу, используя IP-адрес (например, ip:8080
), но не можете сделать это через имя хоста (например, hostname:8080
), вероятные причины проблемы могут заключаться в настройках вашей локальной сети или конфигурации системы. Давайте рассмотрим шаги для устранения этой проблемы.
Проверка записи в файле hosts
Вы уже упомянули, что редактировали файл /etc/hosts
. Проверьте, чтобы в нём были указаны правильные IP-адреса и соответствующие имена хостов. На примере вашей записи:
10.16.2.12 apple.myserver.com
10.16.2.22 ball.myserver.com
10.16.2.20 cat.myserver.com
10.16.2.19 dog.myserver.com
10.16.2.18 elep.myserver.com
Убедитесь, что верно указаны адреса и имена, и что они соответствуют вашему серверу. Если вы хотите достучаться до сервера apple.myserver.com
, ваше обращение должно выглядеть так:
http://apple.myserver.com:8080
Проверка доступности порта
После того как вы убедились, что записи верны, проверьте доступность порта 8080 на вашем сервере. Используйте команду telnet
или nc
для проверки:
telnet apple.myserver.com 8080
Если подключение успешно, вы получите ответ от сервера. Если нет, это может указывать на то, что сервер не слушает на этом порту или есть проблемы с брандмауэром.
Настройка брандмауэра
Если вы используете брандмауэр, убедитесь, что он настроен на разрешение входящих соединений на порту 8080. Для системы, использующей iptables
, команда может выглядеть так:
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
Для более современных систем (например, использующих ufw
), можно выполнить:
sudo ufw allow 8080/tcp
Локальная проверка DNS
Если вы хотите удостовериться, что адреса разрешаются корректно, вы можете использовать команду dig
или nslookup
, хотя в вашем случае DNS не используется. Тем не менее, это может быть полезно:
nslookup apple.myserver.com
Это должно вернуть тот же IP-адрес, что и в вашем файле /etc/hosts
.
Проблемы с браузером
Иногда проблема может быть связана с кэшированием в браузере. Попробуйте очистить кэш или использовать режим инкогнито, чтобы проверить доступность вашего сервера через имя хоста.
Заключение
Если вы выполнили все вышеперечисленные шаги и всё ещё испытываете трудности, возможно, стоит обратиться к более универсальным пунктам, таким как:
- Проверка подключения самого сервера к сети.
- Проверка на наличие ошибок в конфигурации сервера.
- Убедитесь, что служба, которую вы пытаетесь использовать, активно работает на сервере.
Работа с именами хостов может быть сложной без настройки DNS, но правильная конфигурация файла /etc/hosts
и проверка сетевых настроек помогут вам в решении проблемы.