- Как узнать IP-адрес Linux
- Немного теории
- Как узнать внутренний IP Linux
- Как узнать IP в локальной сети в Linux
- Как узнать внешний IP-адрес в Linux
- Выводы
- How to Find or Check Your IP Address in Linux
- Find Your IP Address From the Command Line
- Using the hostname Command
- Using the ip addr Command
- Using the ifconfig Command
- Finding Your IP Address in Linux With a GUI
- How to Find Public IP Address
- What is a Public/Private IP Address?
Как узнать IP-адрес Linux
Каждый компьютер в сети интернет нужно определённым образом идентифицировать. Раньше, каждый компьютер, подключённый к интернету, имел уникальный IP адрес, с помощью которого можно было к нему подключиться, сейчас же большинство домашних компьютеров спрятаны за NAT, а белые IP адреса есть только у серверов.
Все взаимодействие между компьютерами в сети выполняется по IP адресам. Это более актуально для серверов, но может быть полезно и для домашних компьютеров, и локальных сетей. В этой небольшой статье мы рассмотрим, как узнать IP Linux разными способами. Поговорим о том, как узнать внешний IP, выданный провайдером, и внутренний IP в вашей локальной сети.
Немного теории
Сначала давайте попытаемся понять, что такое IP-адрес, и как всё работает. Мы можем выделить три типа IP-адресов, с которыми вам придётся сталкиваться:
- Внутренний адрес (IP-адрес компьютера);
- Адрес в локальной сети;
- Внешний IP доступный во всём интернете.
Внутренний IP-адрес нужен для того, чтобы программы могли взаимодействовать между собой в пределах этого компьютера, используя сетевые протоколы. Например, так браузер может получить доступ к локальному web-серверу. Внутренний IP довольно часто используется в системных утилитах, и узнать его очень просто — он всегда одинаковый — 127.0.0.1.
С локальной сетью всё немного сложнее. Интернет, это не одноранговая сеть, где все компьютеры соединены между собой на одном уровне, а множество отдельных сетей, соединённых между собой с помощью маршрутизаторов. Если ваш компьютер подключен к интернету по проводу, то здесь у вас есть марштуризатор, к которому можно подключить несколько устройств. Например, компьютер, ноутбук и смартфон. Сеть роутера называется локальной и в этой сети у компьютера есть IP адрес, который вы можете использовать для доступа к нему из других устройств в этой сети. Но для провайдера и внешнего интернета у всех этих устройств будет один IP адрес — адрес роутера.
Теперь давайте разберемся с внешним IP адресом. Точно так же как вы подключаете несколько своих устройств в локальной сети, так и провайдер объединяет своих клиентов в локальную сеть и для внешнего интернета у них на всех один IP адрес. Так было сделано потому что с ростом популярности этой технологии свободные адреса скоро начали заканчиваться, и теперь уникальные IP имеют только серверы, а обычные пользователи размещаются провайдерами по несколько сотен на одном IP с помощью NAT. Этот IP адрес считается внешним.
Одно время, провайдеры раздавали пользователям динамические IP, которые были уникальными и менялись при перезагрузке роутера. По ним можно было получить доступ к компьютеру из интернета после небольшой настройки роутера, но потом начали использовать технологию NAT для того чтобы разместить много пользователей на одном адресе. Но это не большая проблема. Так компьютеры домашних пользователей находятся в большей безопасности, а если к ним нужно получить доступ то существуют такие сервисы как Ngrok, а также можно использовать VPN.
Технология NAT позволяет компьютеру подключиться к любому серверу в интернете и получить от него ответ, но инициировать подключение из интернет к такому компьютеру невозможно, поскольку фактически один IP принадлежит сотне компьютеров, и система просто не знает, к какому из них обращаются.
Как вы поняли, ваш домашний компьютер мог бы иметь внешний IP-адрес доступный всем, но это нецелесообразно как минимум по двум причинам. Во-первых, дорого, во-вторых, очень небезопасно. Поэтому подключение компьютера к интернету сейчас выглядит приблизительно так:
- Внешний и доступный всем IP, который принадлежит провайдеру и используется для выхода в интернет сотен пользователей;
- IP-адрес вашего роутера в локальной сети провайдера, той самой, с IP-адресом которой вы выходите в интернет. Он не доступен из интернета и, скорее всего, вам не понадобится;
- IP-адрес вашего компьютера в локальной (домашней) сети, созданной роутером, к которой вы можете подключать свои устройства. Именно он используется для взаимодействия между устройствами в локальной сети и отображается в информации о сетевом интерфейсе;
- Внутренний IP-адрес компьютера, недоступный извне и используемый только для внутренних коммуникаций в системе.
Теперь, когда вы немного начали ориентироваться в вопросе, давайте рассмотрим способы узнать свой IP Linux.
Как узнать внутренний IP Linux
Как я уже сказал, внутренний IP всегда одинаковый для каждого компьютера — 127.0.0.1, что справедливо не только для Linux, но и для Windows и других операционных систем. Вообще, все IP адреса от 127.0.0.1 до 127.255.255.255 привязаны к локальному сетевому интерфейсу и используются для взаимодействия с текущим компьютером.
Также к своему компьютеру можно обратиться по домену localhost. Вы можете убедится в этом, выполнив команду ping:
ping -c 3 localhost
Как узнать IP в локальной сети в Linux
Узнать IP компьютера в локальной сети тоже не очень сложно. Для этого вам не нужны никакие сервисы, вы можете просто посмотреть информацию о сетевых подключениях с помощью команды ip. Вот самый удобный способ это сделать:
ip -br a
Опция -br включает сокращенный режим вывода, а a — это сокращение от address, команды которая позволяет управлять сетевыми адресами. По синтаксису туда ещё желательно добавить команду show, но она и так используется по умолчанию. Вот так будет выглядеть полная команда:
ip —brief address show
Здесь выводится только список сетевых интерфейсов их состояние и IP адрес. Вот их описание:
- lo — локальный сетевой интерфейс, который всегда указывает на текущий компьютер;
- enp* — проводной сетевой интерфейс, расшифровывается как Enthernet PCI. Также может использоваться имя eth*.
- wlp* — беспроводной сетевой интерфейс WiFi, расшифровывается как Wireless PCI. Также может использоваться имя wlan*.
В данном случае проводной интерфейс называется enp3s0 и вы можете видеть его IP адрес в третьей колонке. Вы также можете получить IP для конкретного сетевого интерфейса. Например для enp0s3:
ip —brief address show enp0s3
Также можно отфильтровать только IP адрес с помощью awk:
ip —brief address show enp0s3 | awk » | cut -d’/’ -f1
IP адреса в локальной сети должны находится в таких диапазонах:
- От 192.168.0.0 до 192.168.255.255
- От 10.0.0.0 до 10.255.255.255
- От 172.16.0.0 до 172.31.255.255
- От 100.64.0.0 до 100.127.255.255
Эти адреса зарезервированы для локальных сетей и в качестве публичных адресов использоваться не могут.
Вы также можете использовать устаревшую команду ifconfig. Но прежде её надо установить:
sudo apt install net-tools
Здесь отображается довольно много информации: MAC-адрес, маску сети и небольшую статистику по работе интерфейса. Сам IP адрес отображается после слова inet:
sudo ifconfig
Вы можете отфильтровать лишнюю информацию и вывести только IP-адреса:
sudo ifconfig | grep «inet»
Как узнать внешний IP-адрес в Linux
Для того чтобы узнать внешний IP адресе вы можете открыть специальный сайт, который посмотрит, с какого IP вы его открыли, и скажет его вам. Есть довольно много таких сайтов. Проще всего сделать это с помощью браузера, например, откройте сайт ifconfig.me:
Но это не всегда удобно. Лучше сделать это с помощью терминала. Просто используйте команду curl или wget. Сразу рассмотрим несколько таких сайтов, чтобы вы могли использовать любой понравившийся из них:
wget -qO- ifconfig.me curl ifconfig.me curl ipinfo.io/ip curl ipecho.net/plain curl icanhazip.com curl https://ipecho.net/plain curl ident.me curl api.ipify.org
Чтобы не набирать длинную команду каждый раз, вы можете создать удобный алиас:
alias getip=»curl ifconfig.me»
Хочу заметить, что если вы хотите узнать не внешний IP компьютера, а именно адрес роутера в сети провайдера, то такой способ не поможет. Вам нужно посмотреть в настройках роутера или попытаться сделать это через командный интерфейс роутера, так как это описано в предыдущем варианте.
Выводы
Теперь вы знаете, как узнать IP-адрес Linux, оказывается, это не так сложно, как могло показаться сразу. Вы ещё можете использовать утилиту hostname с опцией -I для получения всех сетевых адресов привязанных к вашему компьютеру, а также можете найти адрес IP адрес в графическом интерфейсе NetworkManager или с помощью его консольной утилиты nmcli. Но описанные в статье способы более универсальны и просты. А какой способ используете вы? Напишите в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
How to Find or Check Your IP Address in Linux
An IP address is a codename assigned to a computer on a network. It works as a postal address, ensuring that network traffic is sent to the correct computer.
In this tutorial you will learn how to find your IP address using a Linux operating system.
Find Your IP Address From the Command Line
There are a few different commands you can use to check your IP address. To run these commands, start by opening a terminal window/command line.
Using the hostname Command
One way to check your IP address from the command-line is by using the following command:
The system will display your internal IP address.
Using the ip addr Command
Check your ip address with the ip addr command:
The system will scan your hardware, and display the status for each network adapter you have. Look for an entry that says link/ether. Below it, you should see one of the following:
inet6 fe80::a00:27ff:fe76:1e71/64
The entries will include one for a wired (Ethernet) adapter and a wireless (Wi-Fi) adapter. You may also have an entry for a virtual adapter. Generally, only one entry will have an IP address listed – that is the one you will want.
Note: The number after the slash – /24 and /64 – specifies the size of the network, and it helps with scanning and mapping network size.
Using the ifconfig Command
The third method to find your IP address involves using the ifconfig command. In the command line, enter the following:
The system will display all network connections – including connected, disconnected, and virtual. Look for the one labeled UP, BROADCAST, RUNNING, MULTICAST to find your IP address. This lists both IPv4 and IPv6 addresses.
Note: When you check your IP address, you may notice the term loopback. This refers to an IP address that returns traffic to the same computer. Usually, the loopback address is 127.0.0.1 . If you see that address listed, either you are looking at the wrong line, or you are not connected to the network.
Read phoenixNAP’s ultimate Linux IP command tutorial with 31 examples to learn more!
Finding Your IP Address in Linux With a GUI
If you are using a point-and-click interface to run your Linux system, you can check your IP address by following these steps:
1. Go to the Application menu and type Settings into the search bar.
2. Click on the Settings icon that appears among the results, as in the image below:
3. Next, find the Network tab in the Settings Menu and click on the Advanced Wired Settings icon.
4. This opens a new pop-up window with details on wired settings. Here you can find both your IPv4 address and your IPv6 address.
How to Find Public IP Address
To find your public IP address, reach out to an external website.
If you are using a browser, navigate to:
If you are using a command-line or terminal, use a retrieval command like curl or wget to display the external IP address:
wget -O - -q https://checkip.amazonaws.com
Note: Did you know that when you use curl to connect to an insecure website, the output responds with an error? To resolve it, visit our guide on making curl ignore certificates.
What is a Public/Private IP Address?
Each computer in a network is required to have its own IP address. If two systems have the same IP address, it will generate errors on the network. Most modern networks will detect the problem and prompt you to fix it. However, older networks might get confused, trying to route traffic to both computers.
Most systems will have two different IP addresses:
- Private IP address: This is the address used on the network. Also, it is the one you will want to use for configuring routing tools. On smaller networks, the internal IP address typically starts with 192.168.x.x. It is dynamically assigned to your computer whenever you connect.
- Public IP address: This is the IP address that registers on a website when you visit it. When you connect to a small network, your computer connects to a router using an internal IP address. That router, in turn, connects to a bigger network (like an Internet Service Provider), which has its own IP address system.
Note: Learn everything you need to know about public and private IP addresses in our article Public vs. Private IP Address.
Now you know how to find a private and public IP address in Linux using multiple methods.
Each option strikes a balance between speed and complexity. Now you have the flexibility to choose, if you only need your internal IP address, you can use the hostname method. If you need more detailed information, view our article on 31 Linux IP Commands with examples.