как узнать свой localhost linux
Как узнать IP-адрес Linux
Каждый компьютер в сети интернет нужно определённым образом идентифицировать. Для этого используются IP-адреса. Каждый компьютер, подключённый к интернету, имеет свой адрес, с помощью которого можно очень просто обратиться к этому компьютеру.
Если вы хотите каким-либо образом взаимодействовать с другим компьютером по Сети, вам нужно узнать его IP-адрес Linux. Очень часто приходится работать по IP-адресу с серверами, но это может быть полезно и для домашних компьютеров, и для локальных сетей. В этой небольшой статье мы рассмотрим, как узнать IP Linux разными способами. Поговорим о том, как узнать внешний IP, выданный провайдером, и внутренний IP в вашей локальной сети. Но сначала давайте попытаемся понять, что такое IP-адрес, и как всё работает.
Немного теории
Мы можем выделить три типа IP-адресов, с которыми вам придётся сталкиваться:
Но с локальной сетью всё немного сложнее. В идеале, каждый компьютер в мире должен был бы иметь уникальный IP-адрес для полноценного доступа в интернет. Но с ростом популярности этой технологии свободные адреса скоро начали заканчиваться, и теперь уникальные IP имеют только серверы, а обычные пользователи размещаются провайдерами по несколько сотен на одном IP с помощью NAT.
Технология NAT позволяет компьютеру подключиться к любому серверу в интернете и получить от него ответ, но инициировать подключение к такому компьютеру невозможно, поскольку фактически один IP принадлежит сотне компьютеров, и система просто не знает, к какому из них обращаются.
Как вы поняли, ваш домашний компьютер мог бы иметь внешний IP-адрес доступный всем, но это нецелесообразно как минимум по двум причинам. Во-первых, дорого, во-вторых, очень небезопасно. Поэтому подключение компьютера к интернету сейчас выглядит приблизительно так:
Теперь, когда вы немного начали ориентироваться в вопросе, давайте рассмотрим способы узнать свой IP Linux.
Как узнать внутренний IP Linux
Вы можете убедится в этом, выполнив nslookup:
Как узнать локальный IP в Linux
Узнать локальный IP компьютера тоже не очень сложно. Для этого вам не нужны никакие сервисы, мы можем просто посмотреть информацию об интерфейсах.
Чтобы узнать свой IP Linux в локальной сети? выполните такую команду:
Здесь отображается довольно много информации о сетевых интерфейсах. Кроме IP, здесь можно увидеть MAC-адрес, маску сети и небольшую статистику по работе интерфейса. IP-адрес каждого интерфейса отображается после слов inet addr.
Вы можете отфильтровать лишнюю информацию и вывести только IP-адреса:
sudo ifconfig | grep «inet addr»
Здесь IP-адрес отображается после слова inet. Вы знаете, как посмотреть IP-адрес Linux для компьютера в локальной сети, теперь рассмотрим внешний.
Как узнать внешний IP-адрес в Linux
С внешним IP-адресом ситуация немного сложнее. Конечно, если бы у вас был доступ к серверу провайдера, вы бы могли выполнить ту же самую команду ifconfig и узнать внешний IP Linux точно так же, как и на своём компьютере.
Понятное дело, что доступа к серверам провайдера у вас нет, поэтому придётся пользоваться обходными путями. Мы можем открыть специальный сайт, который посмотрит, с какого IP мы его открыли, и скажет его нам. Есть несколько таких сайтов. Проще всего сделать это с помощью браузера, например, откройте сайт ifconfig.me или eth0.me:
Но это не совсем удобно. Лучше сделать это с помощью терминала. Просто используйте команду wget. Сразу рассмотрим несколько таких сайтов, чтобы вы могли использовать любой понравившийся из них:
Чтобы не набирать длинную команду каждый раз, вы можете создать удобный алиас:
Хочу заметить, что если вы хотите узнать не внешний IP компьютера, а именно адрес роутера в сети провайдера, то такой способ не поможет. Вам нужно посмотреть в настройках роутера или попытаться сделать это через командный интерфейс роутера, так как это описано в предыдущем варианте.
Выводы
Вот и всё, теперь вы точно знаете, как узнать IP-адрес Linux, оказывается, это не так сложно, как могло показаться сразу. Правда, во всех этих терминах можно сначала запутаться, но с практикой это проходит. Если у вас остались вопросы, спрашивайте в комментариях!
В статье мы рассмотрели, что такое IP-адрес, но маршрутизацию затронули только вскользь. Если вы хотите узнать об этом подробнее, то можете посмотреть вот это видео:
Файл hosts в Linux
Система доменных имен DNS используется для определения, какой IP принадлежит к нужному домену в сети интернет. Когда какой-либо программе понадобится обратиться к сайту по его доменному имени, операционная система отправляет к DNS-серверу запрос, чтобы узнать, по какому IP ей дальше передавать пакеты. Но так происходит не всегда. Например, когда мы обращаемся к домену localhost, то всегда запрос отправляется нашему локальному компьютеру.
Всему причиной файл hosts. Если вы раньше пользовались Windows, то, наверное, уже слышали о таком файле. Там чаще всего он использовался для того, чтобы быстро заблокировать доступ к какому-либо ресурсу. Но применение его гораздо шире. В этой статье мы рассмотрим, как настроить файл hosts в Linux, а также какие возможности он нам предоставляет.
Разрешение доменных имён в Linux
Прежде чем мы перейдём к самому файлу hosts, нужно разобраться, как происходит поиск IP-адреса для доменного имени в Linux. Я говорил, что операционная система сразу же отправляет запрос DNS-серверу, но это не совсем так. Существует определённый порядок поиска, согласно которому он выполняется. Этот порядок установлен в конфигурационном файле /etc/nsswitch.conf
Настройка файла hosts в Linux
Нужный нам файл находится в директории /etc/. Для его открытия можно использовать любой текстовый редактор как в командной строке, так и в графическом интерфейсе, только открывать его нужно с правами суперпользователя. Например, с помощью vim:
sudo gedit /etc/hosts
Синтаксис файла довольно простой. В нём находится несколько строчек с доменными именами и IP-адресами, которые нужно для них использовать. Каждая из них выглядит вот так:
ip_адрес домен алиас
Также в этом файле по умолчанию размещаются перенаправления для имени вашего компьютера и для IPv6-адресов. Вы можете создать свои настройки для любого нужного домена. Для этого нужно добавить строчку в конец файла. Например, направим все запросы к домену losst.ru на ip 127.0.0.1:
Обратите внимание, что здесь указывается только домен, без протокола. Префикс http или https указывать не нужно, иначе ничего работать не будет. А вот для поддомена www нужно создавать отдельную запись или записывать его в виде алиаса. Например:
127.0.0.1 losst.ru www.losst.ru
Теперь при запросе домена losst.ru будет открываться наш локальный IP. Чтобы вернуть доступ к оригинальному ресурсу, достаточно убрать добавленную строчку. Но вы можете использовать не только локальный адрес, но и любой другой. Это очень удобно, если вы только зарегистрировали домен и доменная зона ещё не успела обновиться, а вы уже хотите работать с новым сайтом. Просто добавьте данные в /etc/hosts и работайте как обычно.
Выводы
В этой небольшой статье мы разобрали, как выполняется настройка DNS через файл hosts Linux. Как видите, с его помощью вы можете блокировать доступ к нежелательным ресурсам, например, к которым программы не должны получить доступ, а также использовать его в работе веб-мастера.
Как настроить локальный DNS используя файл /etc/hosts в Linux
DNS (система или служба доменных имён) — это иерархическая, децентрализованная служба/система наименования и перевода доменных имён в IP адреса в Интернете или в приватной сети, а также серверы, которые предоставляют такой сервис и называют DNS серверами.
Эта статья объясняет, как настроить локальный DNS используя файл /etc/hosts в системах Linux для локального разрешения доменов или тестирования веб-сайтов перед размещением их на доступном глобально веб-сервере.
Например, изменив файл /etc/hosts на своей локальной системе, чтобы в нём содержалась запись связывающая доменное имя с IP, вы можете протестировать сайт в идентичном окружении, как если бы он был размещён на реальном доменном имени. Такой подход позволит проверить работу, например, абсолютных ссылок, которые включают в адресе также и домен. Даже работу SSL сертификата таким образом можно проверить на локальной машине до того, как сделать это на рабочей сервере.
Ещё одно применение локального разрешения имён в файле /etc/hosts — создание коротких, легко запоминающихся имён для других устройств и компьютеров в локальной сети, благодаря чему можно будет вместо ввода IP адреса указать понятное имя «kali» или «files» для доступа к другому компьютеру по SSH или на его веб-сервер.
/etc/hosts — это файл операционной системы, который переводим имена хостов или имена доменов в IP адреса.
Внимание: если в вашей сети компьютерам IP адрес назначается автоматически при каждой загрузке, то при следующем включении IP может измениться и вы не сможете подключиться к устройству по имени, так как оно будет указывать на старый IP. Чтобы этот метод работал и после перезагрузки, настройте статические IP адреса для всех устройств, к которым вы будете обращаться по имени хоста, и которые вы добавите в файл hosts.
Для целей настоящей статьи мы будем использовать следующий домен, имена хостов и IP адреса (используйте значения в соответствии с вашей локальной сетью).
Что такое Переключатель сервисов имён в Linux (Name Service Switch)
Перед тем, как продолжить, вы должны понимать несколько вещей о другом важном файле, который расположен в /etc/nsswitch.conf. Он обеспечивает функции Переключателя сервисов имён, что означает, что он контролирует порядок (приоритет) в котором опрашиваются службы запросах к сервисам преобразования имени.
Если коротко, то за используемые для преобразования имён хостов службы перечислены в строке, которая начинается на «hosts:», пример данной строки:
Если в этой строке на первом месте слово «files» расположено перед словом «dns», то это означает, что для запросов к службе имён в начале делается запрос к файлу /etc/hosts, а затем к DNS. Но если слово «dns» стоит до «files», то при поиске IP адреса домена в начале будет сделан запрос DNS, и если не получено значение, то будут опрошены другие соответствующие службы или файлы.
Для наших целей важно, чтобы в строке «hosts:» присутствовало слово «files». А если вы хотите в файле /etc/hosts сделать записи для реальных доменных имён (например, для zalinux.ru), то необходимо, чтобы слово «files» в этой строке стояло раньше слова «dns», иначе вначале будет делаться запрос к DNS серверу, который будет возвращать IP сайта и очередь для получения IP из /etc/hosts не дойдёт
Проверьте содержимое этого файла:
Или просто посмотрите нужную строку:
Локальная настройка DNS используя файл /etc/hosts в Linux
Теперь откройте файл /etc/hosts используя любой текстовый редактор:
Добавьте в этот файл строки в формате:
Например, для моих данных я добавляю:
Сохраните и закройте файл.
Изменения, внесённые в файл hosts, вступают в силу немедленно.
Далее проверьте, что всё работает как и ожидается. Выполним пинг первого хоста командой ping. Для других хостов можно сделать аналогичную проверку:
Или используем сокращённый псевдоним:
На хосте kali.hackware.lan у меня запущен веб-сервер, поэтому я могу получить к нему доступ в веб-браузере, набрав адрес http://kali.hackware.lan/ или более короткий псевдоним http://kali.
Важно: обращаться по этим именам к другим компьютерам я могу только с тех систем, где добавлены аналогичные записи в файл /etc/hosts.
Если вы попытаетесь проверить IP адрес с помощью команды dig, nslookup или host, то для локальных хостов не будут найдены записи. Дело в том, что эти команды только делает запросы к DNS серверу и игнорируют настройки в файлах /etc/hosts и /etc/nsswitch.conf.
Формат файла /etc/hosts
Файл /etc/hosts в современных системах Linux присутствует скорее историческим причинам — ранее, до появления и распространения службы DNS, этот файл выполнял задачи по трансляции имён в IP адреса. В современных системах подразумевается, что функции этого файла может выполнять DNS сервер (например, локальный кэширующий DNS сервер, в котором присутствуют пользовательские записи и который, в случае если запрашиваемое имя не найдено, обращается к другому DNS серверу в Интернете). В принципе, аналогичный показанному результат действительно можно было достичь установив и настроив локальный DNS — в этом случае программы dig и другие правильно бы показывали IP адреса даже этих локальных хостов. Тем не менее как мы могли убедиться, использование файла /etc/hosts намного быстрее и удобнее для небольшого числа записей. По этой причине файл /etc/hosts по-прежнему часто применяется.
Файл /etc/hosts является простым текстовым файлом, в котором IP адреса связаны с именами хостов, каждая строка содержит по одному IP адресу. Для каждого хоста одна строка должна представлять следующую информацию:
Поля записи разделяются любым количеством пробелов и/или символов табуляции. Текст с символа «#» до конца строки является комментарием и игнорируется. Имена хостов могут содержать только буквы английского алфавита, знак минус («—«) и точку («.«). Они должны начинаться с буквы и заканчиваться на букву. Необязательные псевдонимы указываются для изменений имён, альтернативных написаний, укороченных имён хостов или родовых имён хостов (например, localhost).
hostname в CentOS
Введение
Имя хоста — это уникальная метка, которая идентифицирует машину в сети.
Должна существовать таблица соответствия между hostname и IP адресом это нужно для для маршрутизации пакетов.
Хост может иметь несколько имён, но предпочтительным является вариант, когда имя одно.
Так как CentOS 7 поддреживает только Fully Qualified Domain Names (FQDNs), советую тщательно проверить hostname, который вы планируете использовать.
Узнать имя своего хоста
Существует несоколько способов узнать имя своего хоста.
Часто для этого достаточно просто посмотреть в терминал
Пример моего терминала
[andrei@ localhost Downloads]$
Посмотреть порядок можно выполнив
Static hostname: localhost.localdomain Icon name: computer-vm Chassis: vm Machine ID: 35e254eda578c54084b96e06d5f285cf Boot ID: afb44fef8d764f30bb89550849b02fde Virtualization: kvm Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-1160.36.2.el7.x86_64
Изменить имя хоста
С помощью команды hostname
hostname dns-server
hostname
Если заново открыть терминал изменения будут видны в командной строке.
Это имя хоста сохранится только до перезагрузки системы
Если выполнить hostnamectl видно, что помянелось только динамическое имя хоста
Static hostname: localhost.localdomain Transient hostname: dns-server Icon name: computer-vm Chassis: vm Machine ID: cff8a80b9c356243b5238452511a8ade Boot ID: 64d9ddab85ec4c219ac46c6a2940e628 Virtualization: kvm Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-1160.42.2.el7.x86_64 Architecture: x86-64
С помощью hostnamectl
hostnamectl set-hostname dns-server.andrei.com
hostname
Это постоянное изменение. Т.е. новое имя хоста имеет класс persistent.
pretty name
Чтобы задать pretty name нужно воспользоваться кавычками
hostnamectl set-hostname «andrei’s.host.com»
hostnamectl
Static hostname: andreis.host.com Pretty hostname: andrei’s.host.com Icon name: computer-vm Chassis: vm Machine ID: cff8a80b9c356243b5238452511a8ade Boot ID: 64d9ddab85ec4c219ac46c6a2940e628 Virtualization: kvm Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-1160.42.2.el7.x86_64 Architecture: x86-64
В /etc/hostname отображается только static hostname
pretty hostname можно увидеть в файле /etc/machine-info
hosts
Изучить информацию об именах других хостов можно в файле hosts
В моём примере в сети есть два хоста:
dns-server.andrei.com с IP адресом 192.168.56.149
host113.andrei.com с IP адресом 192.168.56.113
Зайдём на него с помощью ssh и посмотрим, есть ли у него записи об именах других хостов в сети.
Для наглядности я теперь буду показываеть приглашение терминала чтобы было видно имя хоста.
Выполним ping по IP
По IP пингуется успешно
И ping по hostname
ping: dns-server.andrei.com: Name or service not known
host113 не знает как разрешить имя dns-server.andrei.com
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Добавим запись о dns-server.andrei.com
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.56.149 dns-server.andrei.com
Теперь всё работает
alias
Чтобы не писать длинные имена хостов можно придумать alias
192.168.56.149 dns-server.andrei.com vbdns
Обратите внимание на dns-server.andrei.com
Хоть пинг и был по алиасу, ответ идёт как от static fqdn
Если поменять порядок так, что vbdns идёт первым а FQDN dns-server.andrei.com вторым, но dns-server.andrei.com будет считаться алиасом
192.168.56.149 vbdns dns-server.andrei.com
В таком случае ответ будет идти от vbdns
Это может стать важным при работе с сертификатами
Как в линуксе узнать IP-адрес
IP-адрес устройства служит неким идентификатором в локальной сети Интернет. К каждому ПК привязан собственный адрес, при помощи которого распознается устройство. Во многих ситуациях пользователь может обойтись и без этой информации, однако, в некоторых случаях знать IP Linux всё же полезно. Эти данные могут понадобиться для работы с домашним компьютером, а также с локальной сетью.
В данной статье будут рассмотрены альтернативные способы того, как узнать IP-адрес устройства Linux.
IP-адреса принято делить на 3 типа:
Программное обеспечение любого устройства функционирует между собой при помощи сетевых протоколов. Для нормального взаимодействия нескольких программ требуется внутренний IP ПК. Обычно этот адрес выглядит следующим образом:
Если говорить об адресах локальной сети, то в этом вопросе возникают определенные трудности. По идее, каждый компьютер должен иметь уникальный сетевой идентификатор, но с некоторых пор это стало невозможным. В мире появилось слишком много устройств – свободные адреса начали стремительно заканчиваться. Теперь обычный пользователь не может иметь ПК с собственным IP-адресом в локальной сети (эта возможность доступна только серверам). Через NAT провайдеры начали размещать своих клиентов на одинаковых IP.
Это приводит к тому, что компьютер без проблем получает доступ к Интернет-серверу, но подключиться к такому ПК невозможно, поскольку его адрес совпадает с адресом сотни других устройств. Их владельцы также получили его от провайдера.
На текущий момент времени не существует иного способа осуществить подключение устройства к Интернету. Без NAT пользователю пришлось бы обеспечить отдельное Интернет-подключение для каждого устройства (например, для двух ноутбуков). А это, как минимум, очень дорого и неудобно.
Резюмируем: благодаря NAT подключение устройства к локальной сети происходит за счет получение устройством внешнего IP, принадлежащего поставщику услуг (провайдеру). Этот адрес также используется сотнями других пользователей.
Внутренний IP-адрес в Линукс
Следует еще раз напомнить о том, что внутренний адрес устройства всегда идентичный. Он был упомянут выше. Данная информация актуальна не только для пользователей Linux, но и остальных операционных систем. Если хочется убедиться в правдивости информации, можно воспользоваться терминалом:
Локальный IP-адрес в Линукс
Чтобы получить нужные данные, достаточно воспользоваться специальной командой в терминале дистрибутива Линукс:
Утилита выведет информацию обо всех интерфейсах и их адреса.
Более подробно о параметрах можно посмотреть в другой статье https://www.vseprolinux.ru/komanda-ip
Такая команда работает в разных версиях Линукс, таких как ubuntu, debian, centos.
В появившемся окне также можно увидеть множество дополнительных данных об интерфейсах: маска сети, некоторые статистические данные. Если не получается самостоятельно найти локальный адрес в окошке, обратите внимание на цифры, указанные после слов «inet». Это и есть искомый IP.
Чтобы вывести на экран окно, содержащее исключительно IP-адреса, выполните команду:
Узнать IP address можно с помощью команды «ifconfig», однако она считается устаревшей и в большинство дистрибутивов она не установлена по умолчанию.
Как узнать Внешний IP-адрес
Основная загвоздка заключается в том, что пользователь устройства не имеет доступа к серверу своего поставщика услуг. Это решало бы проблему одним махом, но такой возможности нет. Юзеру нужно искать обходные пути.
Если есть необходимость выяснить IP-адрес маршрутизатора, то придется действовать иным методом. Чтобы получить нужную информацию, внимательно ознакомьтесь с настройками гаджета.
Заключение
IP-адрес Линукс может потребоваться юзеру в различных ситуациях. Новичку нужно внимательно разобраться с типами адресов, чтобы понять специфику данного вопроса. Воспользовавшись нашими рекомендациями, вы быстро выявите способ получения важной информации о своем компьютере, функционирующем на базе популярной операционной системы Linux. Все эти способы указаны в статье. Совсем немного практики – и задача уже не кажется такой сложной, как это было в начале.