- Ifconfig уже устарел
- Определяем IP-адрес командой ip
- Определяем IP-адрес командой hostname
- Через графическую утилиту
- Introduction
- Using the command ifconfig
- Using command ip a
- Using the command nmcli
- Using the command ip addr
- Set the Static IP address of CentOS 8 machine through Terminal
- Set the Static IP address of CentOS 8 machine using GUI method
- Conclusion
- Как узнать свой ip-адрес
- Настройка сетевых интерфейсов в CentOS
- Настройка сетевых интерфейсов в Debian & Ubuntu
- Изменение hostname в CentOS
- Изменение hostname в Debian
- Настройка DNS в CentOS
- Настройка DNS в Debian
- Отключение IPv6 протокола
- Адрес сервера Linux в локальной сети
- Узнать Внешний IP-адрес Linux
- Смотрим локальный IP-адрес
- Узнаём внешний IP компьютера в Интернете
- Finding IP Addresses with ip Command
- Finding IP Addresses with nmcli
- Finding IP Addresses with ifconfig Command
- Finding IP Addresses in GNOME Desktop Environment
- Finding the Public IP Address of your Server
- Введение
- Настройка сети
- Включать интерфейс при загрузке
- Установка статического IP
- Изменить IP
- Изменить маску
- Добавить IP
- Получить DHCP адрес
- Сбросить IP
- Узнать Gateway
- Установка ifconfig
- Открытые порты
- Открыть порт
- Шаг 2. Смена hostname
- NetworkManager
- Виртуальный интерфейс
- Создать новый сетевой адаптер
- Список адаптеров
- Ошибки и предупреждения
- Настройка сети с помощью Iproute2
- Как установить статический IP
- Включить / Выключить сетевой интерфейс
- Изменить Gateway
- Изменить netmask
- Прослушиваемые порты
- Netstat
- Настройка сети с помощью ifconfig
- Iftop
Ifconfig уже устарел
Вместо ifconfig рекомендуется использовать команду
Определяем IP-адрес командой ip
ip address
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0: mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:24:1d:83:da:25 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.2/24 brd 192.168.2.255 scope global dynamic noprefixroute enp2s0
valid_lft 76434sec preferred_lft 76434sec
inet6 fe80::1f6e:e0e4:27d1:e643/64 scope link noprefixroute
valid_lft forever preferred_lft forever
В результате выполнения команды на экран будет выведен список текущих сетевых интерфейсов и их параметры. Первый интерфейс в списке обычно lo — это loopback интерфейс (нас он сейчас не интересует). Нас интересует Ethernet-интерфейс или WiFi-интерфейс (в зависимости от того, какое у вас подключение).
Ethernet интерфейсы обычно имеют имена вида enp2s0 или eth0, а WiFi-интерфейсы имеют имена вида wlp2s0 или wlan0 (цифры в названии могут отличаться).
Определяем IP-адрес командой hostname
Через графическую утилиту
Настройки сетевого интерфейса.
Войдите, чтобы ставить лайки
But in centos7 it no longer works since ifconfig isn’t available and the command no longer works even if I install ifconfig using yum install net-tools
Thanks a lot
16 gold badges60 silver badges89 bronze badges
asked Jan 14, 2015 at 12:33
17 gold badges60 silver badges126 bronze badges
You can use hostname command :
-i, —ip-address:
Display the IP address(es) of the host. Note that this works only if the host name can be resolved.
-I, —all-ip-addresses:
Display all network addresses of the host. This option enumerates all configured addresses on all network interfaces. The loopback interface and IPv6 link-local addresses are omitted. Contrary to option -i, this option does not depend on name resolution. Do not make any assumptions about the order of the output.
answered Jan 14, 2015 at 20:47
Enter the command ip addr at the console
answered Aug 23, 2017 at 10:12
1 gold badge15 silver badges19 bronze badges
answered Feb 12, 2020 at 18:45
1 silver badge2 bronze badges
answered Dec 8, 2017 at 4:47
5 gold badges22 silver badges35 bronze badges
replace ens160 with your interface name
answered Aug 14, 2016 at 8:48
You can run simple commands like
curl ifconfig.co
curl ifconfig.me
wget -qO — icanhazip.com
27 gold badges90 silver badges100 bronze badges
answered Jul 23, 2018 at 13:51
Actually, when you do not want to use external sources (or cannot), I would recommend:
The first line gets the name of the first network device on the PCI bus, the second one gives you its IP address.
answered Apr 3, 2019 at 15:46
Bit late however I use
curl -4 icanhazip.com
returns the server Primary IP address.
answered Jun 6, 2019 at 4:39
5 silver badges16 bronze badges
I believe that the most reliable way to get the external server ip address would be to use an external service.
ipaddr=$(curl -s http://whatismyip.akamai.com/)
answered Jun 26, 2017 at 18:28
Run this command to show ip4 and ip6:
answered Dec 30, 2018 at 10:21
See also: NextJS — from React.js to an ultra-fast experience.
Introduction
CentOS is one of the most reliable and stable Linux distros. It is preferred for the server OS. CentOS is the free version of Red Hat Linux and has features of it. It is an open-source operating system while the Red Hat is not.
In this article, we will see the 4 basic ways of displaying your local IP address in the terminal of CentOS. I will use the command along with the grep to trim off the unnecessary information.
Using the command ifconfig
Using command ip a
Using the command nmcli
Using the command ip addr
This command is the same as ip a, or you can say the ip a is the short-hand command of ip addr command. So the output of this command is the same as that of ip a
In this post, we will go through the simple guide on how to perform the basic network configuration and set or change the static IP address of the CentOS 8:
- through Terminal
- Using GUI
Set the Static IP address of CentOS 8 machine through Terminal
The IP address can be configured in the CentOS 8 Operating system using the NIC(Network Interface Card) system files. To configure the static IP address on CentOS 8, first, know the IP address and Interface Card name of your network using the command:
It will show all the files in the /etc/sysconfig/network-scripts/ directory, choose the Network Interface Card file and type the command given below to edit that file:
After editing the file, as per requirement, save and close it using the keyboard shortcut CTRL +S and CTRL + X.
Now, we need to add the DNS servers to the resolv.conf file to enable them system-wide. Open up the resolv.conf file in a nano editor:
In this file, you can add multiple DNS servers:
Once you have added the DNS servers, the Network interface is configured successfully; you just need to restart the network interface to get the changes to take effect.
To restart the Network Interface on CentOS 8, type the command:
systemctl restart NetworkManager
After restarting the Network Interface, the IP address will be changed successfully on the CentOS 8 Operating system through Terminal.
Set the Static IP address of CentOS 8 machine using GUI method
The IP address can also be changed from the GUI of CentoS 8 by going to the Networks tab in the CentOS 8 Operating system settings.
First, go to the Application menu, search for the settings, and from the search results, click on the Settings icon as shown below:
In the settings window, if you are connected to a Wifi network, then click on the Wireless tab from the left bar, or if you are connected to a wired network, then click on the network tab:
In the Network section, click on the gear icon as shown in the screenshot given below to open up the network settings:
A pop-up window will appear containing the details about network connection like IP Address, Hardware Address, Default Route, and DNS.
Click on the IPv4 tab from the tab menu at the top of the network settings pop-up menu:
From the IPv4 methods, select Manual, and the Addresses field will appear.
Provide the new static IP address, Netmask, and Gateway as shown in the screenshot given below:
To set up DNS manually, turn off the toggle button of the DNS section:
Provide the DNS server address or addresses separated by a comma.
After doing all the steps given above, click on the apply button at the top right corner of the pop-up window for saving the manual network settings.
In the network window back again, restart the connection by turning off and on the network connection for the changes to get in action.
Once the network is restarted, you can verify the new changes in action by clicking on the gear icon again.
You can witness that the IP address of the CentOS 8 system is changed as we expected it to happen.
Conclusion
This is how you can perform some basic network configuration on CentOS 8. This post provides a brief and in-detail explanation about changing the terminal IP address from the terminal by changing the network Interface card file and the GUI of the CentOS 8 Operating system. If you are using the CetnOS 8 server, you can go with the terminal method; otherwise, if you are using the GUI of CentOS 8, you can use any of the two provide methods.
A Javascript Developer & Linux enthusiast with 4 years of industrial experience and proven know-how to combine creative and usability viewpoints resulting in world-class web applications. I have experience working with Vue, React & Node.js & currently working on article writing and video creation.
Сегодня я хочу рассказать о сетевых настройках в системах CentOS и Debian. Прежде всего статья будет полезна новичкам в Linux. Все действия описываемые в этой статье, рекомендую сначала воспроизводить на виртуальной машине, для тренировки, во избежание неприятностей на реальной машине в сети.
Владельцам VPS/VDS как правило не приходится проводить настройку сети, обычно там все уже настроено при создании, но тем не менее для новичков статья лишней не будет.
Как узнать свой ip-адрес
На данный момент команда ifconfig является хоть и устаревшей, но еще работающей командой (В CentOS требуется установить пакет net-tools). Начиная с ядра версии 2.2 ей на смену пришел пакет iproute2, состоящий из утилит: ip, tc, ss.
Настройка сетевых интерфейсов в CentOS
Настройка сетевых интерфейсов в CentOS происходит правкой конфигурационных файлов. Файлы интерфейсов хранятся в директории /etc/sysconfig/network-scripts, каждый отвечает за свой интерфейс, таким образом сколько интерфейсов, столько и файлов. Во время установки создается дефолтный файл с именем — ifcfg-enp0s3.
Содержание файла ifcfg-enp0s3:
TYPE=»Ethernet»
BOOTPROTO=»dhcp»
DEFROUTE=»yes»
PEERDNS=»yes»
PEERROUTES=»yes»
IPV4_FAILURE_FATAL=»no»
IPV6INIT=»yes»
IPV6_AUTOCONF=»yes»
IPV6_DEFROUTE=»yes»
IPV6_PEERDNS=»yes»
IPV6_PEERROUTES=»yes»
IPV6_FAILURE_FATAL=»no»
NAME=»enp0s3″
UUID=»cac20b32-66a0-46bd-9b68-ec786f52d2f8″
DEVICE=»enp0s3″
ONBOOT=»yes»
Рассмотрим самые важные параметры и значения, чтобы понимать что к чему. Более подробно все параметры описаны в официальной документации Red Hat.
- TYPE — задает тип сетевого адаптера, в данном случае «Ethernet».
- DEFROUTE — использовать интерфейс в качестве маршрута по умолчанию. Значения yes или no.
- IPV4_FAILURE_FATAL — В случае отсутствия IPv4 протокола закрывать соединение, по умолчанию no.
- NAME — имя интерфейса.
- DEVICE — имя устройства.
- UUID — идентификационный номер интерфейса.
- ONBOOT — старт интерфейса при загрузке, значения yes или no.
- IPV6INIT — включение поддержки IPv6 протокола, значения yes или no.
- IPV6_AUTOCONF
IPV6_DEFROUTE
IPV6_PEERDNS
IPV6_PEERROUTES
IPV6_FAILURE_FATAL — дополнительные параметры для IPv6 протокола.
- BOOTPROTO=none — изменяем на none, тем самым указывая что ip будет статическим.
- IPADDR=192.168.1.6 — назначаем сам адрес.
- NETMASK=255.255.255.0 — задаем маску подсети.
- GATEWAY=192.168.1.1 — указываем адрес шлюза.
- DNS1=192.168.1.1 — задаем адреса DNS серверов.
После внесенных изменений файл должен принять следующий вид, естественно с поправками на ваши значения адресов.
Перезапустим интерфейс для применения изменений.
ifdown enp0s3 && ifup enp0s3
Настройка сетевых интерфейсов в Debian & Ubuntu
За конфигурацию интерфейсов в Debian отвечает файл interfaces, расположенный в каталоге /etc/network/. В Debian & Ubuntu все интерфейсы прописываются в одном файле. В Debian интерфейсы именуются eth0, eth1 и т.д. В Ubuntu — enp0s3 и т.д.
- allow-hotplug eth0 — инициализация интерфейса eth0 при определении ядром, грубо говоря запуск.
- iface eth0 inet dhcp — назначение динамического адреса для eth0, значение inet dhcp.
- iface lo inet loopback — интерфейс обратной петли lo, локальный интерфейс другими словами.
- auto lo — старт при загрузке.
Строки начинающиеся со слов «auto», используются для идентификации интерфейсов при их подъеме командой ifup -a (c доп. опцией -a), именно так поднимает интерфейсы система при загрузке. Имена интерфейсов следуют за словом «auto» в этой же строке, ifup поднимет их в порядке перечисления. Строк начинающихся с «auto» может быть несколько.
Строки, начинающиеся со слов «allow-» используются для идентификации интерфейсов, которые должны быть подняты автоматически различными подсистемами.
- netmask — указание маски подсети
- gateway — указание шлюза
- network — указание адреса подсети
- broadcast — указание широковещательного канала.
- dns-nameservers — указывает имена DNS-серверов (Если установлен пакет resolvconf)
Для применения изменений перезапустим интерфейс.
ifdown eth0 && ifup eth0
Изменение hostname в CentOS
Для изменения hostname в CentOS нужно проделать несколько манипуляций с конф. файлами. Чтобы узнать текущее имя выполним команду hostname.
Текущее имя системы test. Я хочу изменить его на techlist, делаем следующее.
Изменение hostname в Debian
Существует несколько способов изменения hostname в Debian. Первый способ самый простой, но временный, он действует до первой перезагрузки. Выполните команду — hostname newname, где newname надо заменить на имя которое хотите присвоить системе.
Например я хочу изменить имя системы на techlist
Как я уже говорил, оно действует только до первой перезагрузки системы, так как при загрузке системы идет считывание имени из файла /etc/hostname.
Чтобы изменить имя системы при помощи файла /etc/hostname, отредактируем его:
nano /etc/hostname
Добавить нужное имя:
techlist
Чтобы применить изменения внесенные в файл hostname, надо выполнить скрипт hostname.sh
Настройка DNS в CentOS
За настройку DNS-серверов в CentOS отвечают два файла: сам файл сетевого интерфейса и файл resolv.conf в директории /etc.
Если править отдельно resolv.conf, то после перезапуска интерфейса изменения не сохранятся. Они будут автоматически заменены на значения указанные в файле ifcfg-enp0sX. Это из-за того что в файле интерфейса есть параметр «PEERDNS=yes», когда он включен происходит замена адресов DNS в файле resolv.conf, на значения из файла интерфейса.
Редактируем файл интерфейса:
nano /etc/sysconfig/network-scripts/ifcfg-enp0s3
Добавляем несколько DNS серверов:
DNS1=192.168.1.1 # роутер
DNS2=8.8.8.8 # DNS Гугла
Перезапускаем интерфейс:
ifdown enp0s3 && ifup enp0s3
Смотрим resolv.conf:
cat /etc/resolv.conf
; generated by /usr/sbin/dhclient-script
nameserver 192.168.1.1
nameserver 8.8.8.8
Чтобы изменить значения DNS серверов в CentOS, достаточно внести правку в файл интерфейса, при включенном параметре PEERDNS.
Настройка DNS в Debian
Назначить DNS сервера в Debian можно несколькими способами. Правкой файла /etc/resolv.conf и использованием утилиты resolvconf, только не путайте, это совершенно разные вещи.
Прежде чем настраивать DNS нужно узнать стоит ли пакет resolvconf или нет. Узнать можно так:
dpkg -l
Если есть такая строка в выводе, то resolvconf установлен:
ii resolvconf 1.76.1 all name server information handler
Если resolvconf не установлен, то можно добавить адреса DNS сразу в файл /etc/resolv.conf, сохранить изменения и перезапустить интерфейс.
nano /etc/resolv.conf
Содержание файла:
nameserver 192.168.1.1 # тут у меня адрес шлюза/роутера
Можно добавить столько серверов, сколько необходимо, например DNS гугла:
nameserver 8.8.8.8
nameserver 8.8.4.4
Со временем система обживается, появляются новые программы изменяющие содержимое файла resolv.conf, поэтому лучше использовать утилиту resolvconf. Если утилита отсутствует, например при минимальной установке системы, то ее необходимо поставить.
apt-get install -y resolvconf
После установки файл /etc/resolv.conf заменяется ссылкой на /etc/resolvconf/run/resolv.conf. Если понадобится внести свои значения DNS, то сделать это можно через файл интерфейсов.
nano /etc/network/interfaces
Добавляем свои DNS, прописываем значения
dns-nameservers 8.8.8.8 8.8.4.4 # писать адреса через пробел
Перезапустим интерфейс:
ifdown eth0 && ifup eth0
Проверяем:
cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND — YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 192.168.1.1
После чего добавленные DNS адреса, пропишутся в файл resolv.conf автоматически.
Отключение IPv6 протокола
Если IPv6 не поддерживается вашим маршрутизатором или провайдером, то имеет смысл его отключить, поскольку замедляется общая работа сети; дольше определяются имена сайтов, выполняются ненужные попытки получения IPv6 адресов, это приводит к лишним задержкам.
Узнать свой IPv6 адрес можно следующим способом
Строка начинающаяся с — inet6 fe80::5054:ff:fe8b:f117/64 и есть искомый адрес. Поддержка IPv6 включена в Linux по умолчанию, но это не означает что его может поддерживать ваш провайдер. Чтобы проверить поддержку IPv6 вашим провайдером, можно выполнить пинг ipv6.google.com. Если обмен пакетами происходит, то протокол поддерживается, если нет, то будет следующее.
Перед тем как отключить поддержку IPv6 протокола надо узнать какая из программ использует его на текущий момент.
netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1157/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1257/master
tcp6 0 0 :::22 :::* LISTEN 1157/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1257/master
udp 0 0 127.0.0.1:323 0.0.0.0:* 564/chronyd
udp6 0 0 ::1:323 :::* 564/chronyd
Все что начинается с ::: это IPv6, его используют три демона: sshd, chronyd и master (postfix). Для того чтобы исключить ошибки в дальнейшей работе, надо отключить IPv6 для каждого.
sshd:
nano /etc/ssh/sshd_config
Раскомментируем строки и заменим any на inet:
#AddressFamily any
#ListenAddress 0.0.0.0
AddressFamily inet
ListenAddress 0.0.0.0
postfix:
nano /etc/postfix/main.cf
Находим строку и меняем значение all на ipv4:
inet_protocols = all
inet_protocols = ipv4
Создадим файл chronyd:
nano /etc/sysconfig/chronyd
Добавим в него строку:
OPTIONS=-4
Отключение поддержки IPv6 протокола в CentOS происходит следующим образом.
Редактируем sysctl.conf:
nano /etc/sysctl.conf
Добавим:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
Редактируем network:
nano /etc/sysconfig/network
Добавим:
NETWORKING_IPV6=no
IPV6INIT=no
Перезагрузим систему:
reboot
Также можно убрать все строки начинающиеся с IPV6 в конфигурационном файле интерфейса.
nano /etc/sysconfig/network-scripts/ifcfg-enp0s3
Убираем строки за ненадобностью:
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
В Debian отключение поддержки IPv6 происходит правкой файла sysctl.conf или правкой файла grub.
nano /etc/sysctl.conf
Нужно добавить в файл:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Сохранить и выйти.
Применить изменения в файле sysctl.conf
Иногда бывает что IPv6 приходится отключать путем редактирования параметров загрузки ядра.
nano /etc/default/grub
Нужно найти строку GRUB_CMDLINE_LINUX=»» и изменить ее следующим образом
GRUB_CMDLINE_LINUX=»ipv6.disable=1″
Точно также можно изменить значение строки GRUB_CMDLINE_LINUX_DEFAULT=»quiet»
GRUB_CMDLINE_LINUX_DEFAULT=»quiet»
GRUB_CMDLINE_LINUX_DEFAULT=»ipv6.disable=1″
Эффект будет тот же самый
Теперь нужно обновить конфигурацию загрузчика.
Потом перезагрузить систему.
Тут тоже нет строк начинающихся с «inet6», значит порядок.
Адрес сервера Linux в локальной сети
Для получения информации о текущем адресе Linux достаточно выполнить команду
для того что бы вывести только IP адреса, используем команду
так же информацию об IP адресе можно узнать командой
но во многих дистрибутивах она не установлена по умолчанию.
Узнать Внешний IP-адрес Linux
Проблемой может быть то что сервер на базе Linux может находится в локальной сети и нет возможность напрямую обратиться к поставщику услуг что бы узнать свой внешний адрес. Исключением является приобретение статического IP, но это отдельная услуга у многих провайдеров.
Для того что бы узнать внешний адрес можно воспользоваться внешними сервисами.
- Если присутствует интерфейс, перейти в браузере http://curlmyip.ru
- Если необходимо получить адрес в консоли Linux, выполним команду ниже: либо с помощью wgetwget -qO- http://curlmyip.ru
В операционных системах семейства Linux, в том числе такие популярные ОС, как Ubuntu, CentOS, Debian, есть несколько способов узнать IP адрес в локальной сети и в Интернете. Если у этой системы есть графическая оболочка, то сделать это очень просто и понятно. Значительно интереснее возможность узнать IP адрес используя консоль Linux. Причём можно посмотреть адрес и в локальной сети, и глобальной, то есть в Интернете.
Смотрим локальный IP-адрес
Локальный IP присваиваемый системой динамически или прописанный статически, и его можно посмотреть с помощью команды:
Вот пример её использования:
Альтернативные команды, позволяющий узнать локальный АйПи в Линуксе:
Узнаём внешний IP компьютера в Интернете
Если же Вам нужно посмотреть публичный внешний IP компьютера, который Вы получаете от провайдера при подключении к Интернету, то выполните в командной строке вот такую команду:
Кстати, можно использовать и другие подобные сайты. Вот список достойных альтернатив.
In this article, I am going to show you some of the common ways to find the IP address of your Linux server or workstation. So, let’s get started.
Finding IP Addresses with ip Command
The ip command is the most popular command for finding the IP addresses assigned to the network interfaces of your Linux server or workstation. You will very likely find this command preinstalled on every modern Linux distribution out there.
$ address show
Or
$ show
As you can see, I have 2 network interface attached to my CentOS 7 server. One is ens33 and the other one is ens37. The ens33 network interface has the IPv4 address 192.168.21.131 and the ens37 network interface has the IPv4 address 192.168.50.1.
The ip command also prints the IPv6 address attached to the network interfaces of your Linux server or workstation.
As you can see, on my CentOS 7 server, the IPv6 address attached to the ens33 network interface is fe80:fd75:7722:6480:6d8f. The same way, the IPv6 address configured to the ens37 network interface is fe80:20c:29ff:feaa:bd0e.
If you want, you can also find the IPv4 or IPv6 address configured to a specific network interface.
address show dev ens33
As you can see, the IP addresses of the network interface ens33 is shown only.
Finding IP Addresses with nmcli
nmcli is the command line tool for configuring Linux network interfaces via Network Manager. You can use it to find the IP addresses configured on the network interfaces on your Linux server or workstation.
nmcli connection show
As you can see, I have 2 Network manager connections Private (for the interface ens37) and ens33 (for the interface ens33). On Network Manager, you can name your network connections. I have named one here (Private) and left the other (ens33) without naming it anything.
As you can see, the IPv4 (and IPv6 if configured) address is listed. In my case, the IP address is 192.168.50.1.
As you can see, the IP address of the ens33 network connection is listed. But something is different here. The network connection ens33 got the IP address via DHCP. That’s why it is in the DHCP4 OPTION.
Finding IP Addresses with ifconfig Command
ifconfig is a very old command for finding the IP addresses of Linux servers and workstations. It is so old that is it not even installed on any modern Linux distribution by default. I’ve included it here because you might have to maintain very old servers with some old Linux distribution. The command is very simple to use anyway.
As you can see, the IP addresses of all the network interfaces on my CentOS 7 server is listed.
As you can see, the IP address of the ens33 network interface is printed on the console only.
Finding IP Addresses in GNOME Desktop Environment
If you’re using a graphical desktop environment on your Linux workstation such as GNOME 2 or GNOME 3, then you can find the IP address of you network interface graphically.
On GNOME desktop environment, open the Settings app and click on Network as marked in the screenshot below.
Now, select the network interface which you want to find the IP address of and you should be able to find the IP address of that network interface as you can see in the screenshot below.
Finding the Public IP Address of your Server
You can use a third party website ifconfig.me to find the public IP address of your Linux server very easily. For this to work, you need to have curl installed on your server.
So, that’s how you find the IP address in Linux servers and workstations. Thanks for reading this article.
ONBOOT=yes: включать интерфейс при загрузке
ip r: Узнать IP шлюза (gateway)
Установить статический IP адрес
Изменить IP адрес
Добавить IP адрес на интерфейс
dhclient: Получить DHCP адрес
dhclient -r: Сбросить DHCP IP адрес
Создать новый сетевой адаптер
Введение
Чтобы лучше ориентироваться в сетевом администрировании, а именно в таких понятиях как типы IP адресов, маски, подсети и т.д. советую изучить статью
«Основы компьютерных сетей»
Настройка сети
Чтобы изучить подключения выполните одну из команд:
- sudo ls /sys/class/net/
- ip a s
- ifconfig
- nmcli conn show
nmcli conn show
NAME UUID TYPE DEVICE
enp0s3 64486a76-a4b0-4693-9110-205da942c9c5 ethernet enp0s3
enp0s8 fc26857f-4cb0-3756-a7fa-95ec246b3981 ethernet enp0s8
Если какой-то интерфейс, например enp0s3, выключен у него в столбце DEVICE будет стоять —
Обычно неактивный интерфейс выделен серым цветом а активный зелёным.
NAME UUID TYPE DEVICE
enp0s3 64486a76-a4b0-4693-9110-205da942c9c5 ethernet —
enp0s8 fc26857f-4cb0-3756-a7fa-95ec246b3981 ethernet enp0s8
Включить интерфейс можно командой
nmcli conn up enp0s3
Включать интерфейс при загрузке
Чтобы не включать сетевой интерфейс каждый раз вручную можно в настройках прописать ONBOOT=yes
Как вариант можно перейти в
И отредактировать с помощью
vi
файл
ifcfg-ИМЯ_ИНТЕРФЕЙСА
— например
ifcfg-enp0s3
sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
Либо под root использовать
sed
sudo sed -i sONBOOT=noONBOOT=yes /etc/sysconfig/network-scripts/ifcfg-enp0s3
Если команда выше вам не до конца понятна — изучите статью
«Основы sed»
Проверить получилось ли изменить ONBOOT на yes можно командой
grep ONBOOT !$
Подробную информацию о каждом сетевом интерфейсе можно получить выполнив nmcli connection show имя_интерфейса
nmcli connection show ens192
connection.id: ens192
connection.uuid: 5c2584c5-7d87-4826-ba2a-79713eb62a9a
connection.stable-id: —
connection.type: 802-3-ethernet
connection.interface-name: ens192
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0 (default)
connection.auth-retries: -1
connection.timestamp: 1618914913
connection.read-only: no
connection.permissions: —
connection.zone: —
connection.master: —
connection.slave-type: —
connection.autoconnect-slaves: -1 (default)
connection.secondaries: —
connection.gateway-ping-timeout: 0
connection.metered: unknown
connection.lldp: default
connection.mdns: -1 (default)
connection.llmnr: -1 (default)
802-3-ethernet.port: —
802-3-ethernet.speed: 0
802-3-ethernet.duplex: —
802-3-ethernet.auto-negotiate: no
802-3-ethernet.mac-address: —
802-3-ethernet.cloned-mac-address: —
802-3-ethernet.generate-mac-address-mask:—
802-3-ethernet.mac-address-blacklist: —
802-3-ethernet.mtu: auto
802-3-ethernet.s390-subchannels: —
802-3-ethernet.s390-nettype: —
802-3-ethernet.s390-options: —
802-3-ethernet.wake-on-lan: default
802-3-ethernet.wake-on-lan-password: —
ipv4.method: auto
ipv4.dns: —
ipv4.dns-search: —
ipv4.dns-options: «»
ipv4.dns-priority: 0
ipv4.addresses: —
ipv4.gateway: —
Установка статического IP
NAME UUID TYPE DEVICE
enp0s3 64486a76-a4b0-4693-9110-205da942c9c5 ethernet enp0s3
enp0s8 fc26857f-4cb0-3756-a7fa-95ec246b3981 ethernet enp0s8
Настроим статический IP адрес для enp0s8
Настройки сети хранятся в директории
Отредактировать нужно файл
ifcfg-enp0s8
Основные параметры:
TYPE — тип соединения, проводное (Ethernet), беспроводное(Wired) и т д;
BOOTPROTO — способ получения IP адреса, static, dhcp или none;
NAME — имя соединения;
DEVICE — имя сетевого интерфейса;
ONBOOT — необходимо ли запускать при старте системы;
IPADDR — IP адрес, который будет использован для этого компьютера;
GATEWAY — шлюз для доступа к интернету;
NETMASK — маска сети;
DNS1 — сервер для разрешения доменных имен DNS.
sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
Для DHCP, который, скорее всего, стоит по умолчанию будет что-то
Нужно именить BOOTPROTO на none и добавить несколько строк
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
# Server IP #
# Subnet #
# Defautl Gateway #
# DNS Servers #
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=40a957b1-90fd-428c-9e99-df7849e1d104
DEVICE=enp0s3
ONBOOT=yes
sudo systemctl restart network
Изменить IP
Быстро изменить IP можно с помощью ifconfig
Сперва нужно установить пакет содержащий ifconfig —
по инструкции
Менять IP нужно командой
sudo ifconfig enp0s8 192.168.56.111
Вместо enp0s8 введите нужный интерфейс
Вместо 192.168.56.111 введите IP, который хотите установить
Если ваш IP был получен от DHCP сервера — сообщите ему о смене выполнив
sudo dhclient -r
Изменённый таким образом IP адрес будет сброшен DHCP сервером на тот, который ему больше нравится
после первой перезагрузки.
Если нужно поменять ещё и маску подсети — выполните
sudo ifconfig enp0s8 192.168.56.111 netmask 255.255.255.0
Изменить маску
Если нужно поменять только маску подсети — выполните
sudo ifconfig enp0s8 netmask 255.255.255.0
Добавить IP
Добавить IP на интерфейс можно командой
ip addr add 172.17.67.3/16 dev enp0s8
IP адрес добавлен динамически — то есть после перезагрузки он пропадёт
Удалить этот IP адрес можно командой
ip addr del 172.17.67.3/16 dev enp0s8
Получить DHCP адрес
Если нужно явно запросить у DHCP адрес выполните
sudo dhclient enp0s8
Вместо enp0s8 введите имя нужного адаптера
Сбросить IP
Если IP получен по DHCP можно освободиться от него выполнив
sudo dhclient -r enp0s8
Вместо enp0s8 введите имя нужного адаптера. Эту команду обычно нужно выполнять тем, кто делал сброс адреса.
Узнать Gateway
Чтобы узнать текущий IP адрес шлюза (gateway) выполните
default via 10.0.2.1 dev enp0s3 proto dhcp metric 100
IP адрес шлюза 10.0.2.1
Установка ifconfig
yum provides ifconfig
yum whatprovides ifconfig
ifconfig входит, например, в состав net-tools
sudo yum install net-tools
Открытые порты
Список открытых портов
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
Выдаст все порты, поэтому если нужно проверить какой-то определённый удобно применить
grep
Открыть порт
Чтобы открыть порт XXXX в firewall выполните
sudo firewall-cmd —add-port=XXXX/tcp —permanent
sudo firewall-cmd —reload
Подробности в статье
Centos firewall
Чтобы получить информацию о хосте выполните
Static hostname: localhost.localdomain
Icon name: computer-vm
Chassis: vm
Machine ID: a714bee8007d114a84177dbb15072f2e
Boot ID: b02d9498c1764a338c781672aac1be29
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1160.el7.x86_64
Architecture: x86-64
Нужная информация находится в первой строке
Шаг 2. Смена hostname
Так как CentOS 7 поддреживает только Fully Qualified Domain Names (FQDNs),
советую тщательно проверить hostname, который вы планируете использовать.
- Строчные буквы от a до z
- Цифры от 0 до 9
- Точки и дефисы
- Hostnames может быть от 2 до 63 символов
- Hostnames должен начинаться и заканчиваться цифрой или буквой
hostnamectl set-hostname my.new-hostname.server
Подробности в статье
hostname
NetworkManager
Проверить статус можно командой
systemctl status NetworkManager
Виртуальный интерфейс
Виртуальный интерфейс — это alias к существующему интерфейсу. Допустим у вас есть ens192
cp /etc/sysconfig/network-scripts/ens192 /etc/sysconfig/network-scripts/ens192:0
vi /etc/sysconfig/network-scripts/ens192:0
Поменяйте там что-то, например поставьте другой IP из той же подсети
Так как виртальный интерфейс может быть только внутри той же подсети, он не даст вам возможности слушать другую сейть.
Создать новый сетевой адаптер
Подробный разбор этого действия вы можете изучить в статье
«Создать новый интерфейс»
Список адаптеров
Получить список адаптеров, в том числе отключенных.
DEVICE TYPE STATE CONNECTION
wlp0s20f3 wifi connected SSH-office
docker0 bridge connected docker0
p2p-dev-wlp0s20f3 wifi-p2p disconnected —
enp0s31f6 ethernet unavailable —
vboxnet0 ethernet unmanaged —
lo loopback unmanaged —
Ошибки и предупреждения
sudo systemctl restart networking
Job for network.service failed because the control process exited with error code. See «systemctl status network.service» and «journalctl -xe» for details.
Настройка сети это одно из самых частых действий администратора Linux
Изучить файл с перечнем задействованных интерфейсов можно с помощью команды
Далее настройка зависит от версии Linux, которую Вы используете.
На новых версиях
Debian
.
Например, на Debian 9 используется
Iproute2
Если Вам нужно настроить сеть на старой версии Debian с помощью утилит
ifconfig
пролистайте страницу вниз или перейдите по
ссылке
Настройка сети с помощью Iproute2
Актуально для Debian 9 и выше.
Чтобы получить список интерфейсов нужно воспользоваться командой
На выходе будет что-то похожее на
1: Первый интерфейс это
он направлен на локальную машину и имеет IP
2: Второй интерфейс
это моё поключение к по Ethernet к другому ПК.
В этом примере компьютер с Debian (1) соединён с компьютером
с
Windows
(2) напрямую через Ethernet кабель
Через это подключение я захожу на комп номер 1 по SSH.
IP компьютера с Debian вы видите выше
, а у компа с Windows IP
его здесь, естественно не видно.
Как настроить этот IP читайте
дальше
3: Третий интефейс
это подключение к местному Wi-Fi от мобильного телефона.
IP получен динамически
Раньше интерфейсы назывались
eth0
,
eth1
и так далее, сейчас у них более разнообразные названия.
Как установить статический IP
Чтобы подлкючиться к другому компьютеру через Ethernet нужно в Windows выставить
параметры адаптера через контольную панель. То же самое нужно было сделать и
в Linux.
Для этого нужно выполнить команду
sudo vi /etc/network/interfaces
И добавить туда
auto enp3s0
iface enp3s0 inet static
address 192.0.2.131
netmask 255.255.255.0
dns-nameservers 8.8.8.8,8.8.4.4
auto wlp1s0
iface wlp1s0 inet dhcp
Обратите внимание, что gateway не указан.
И перезапустить сеть
sudo service networking restart
Второй вариант проще запомнить, но, чтобы он заработал
нужно наличие service
Теперь если у Вас установлен SSH можно зайти на компьютер с Linux по ssh с помощью
Putty
или
MobaXterm
Если нужно установить SSH выполните
sudo apt install openssh-server
sudo apt-get install openssh-client
Включить / Выключить сетевой интерфейс
ВКЛЮЧИТЬ интерфейс enp0s25:
ip link
set dev enp0s25 up
ВЫКЛЮЧИТЬ интерфейс enp0s25:
ip link
set dev enp0s25 down
Изменить Gateway
Удаление старого gateway
route delete default
Добавление нового gateway
route add default gw IP_Address
Если старых gateway много, то нужно указать какой конкретно IP с какого интерфейса
удалить
route delete default gw 10.0.0.1 eth0
Для создания тоже можно указать конкретные данные
route add default gw 192.168.0.1 eth0
Изменить netmask
Что такое netmask или маска подсети вы можете узнать в статье
«Компьютерные сети»
Узнать свою маску
default via 10.6.0.1 dev eth0
10.6.0.0/8 dev eth0 src 10.6.1.68
ip address del 10.6.1.100/8 dev eth0
ip address add 10.6.1.68/22 dev eth0
Прослушиваемые порты
Утилита lsof позволяет посмотреть
все
открытые в системе соединения.
Чтобы изучить именно сетевые соединения воспользуйтесь опцией
i
Чтобы отображались именно порты, а не названия сетевых служб примените опцию
P
lsof -i -P
На вопрос как посмотреть список открытых портов также может ответить утилита ss
Если вывод пуст, значит порт не используется
Чтобы узнать какая программа слушает определённый порт нужно предварительно установить один из
инструментов:
Начнём с netstat
Netstat
sudo apt install net-tools
С помощью команды
netstat
можно посмотреть список активных соединений по сети
Обычно netstat используют с набором опций tulpn
который и позволяет понять какая программа слушает какой порт.
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN —
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN —
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN —
tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN —
tcp6 0 0 :::22 :::* LISTEN —
tcp6 0 0 ::1:631 :::* LISTEN —
tcp6 0 0 ::1:6010 :::* LISTEN —
tcp6 0 0 ::1:6011 :::* LISTEN —
tcp6 0 0 :::80 :::* LISTEN —
udp 0 0 0.0.0.0:52756 0.0.0.0:* —
udp 0 0 0.0.0.0:68 0.0.0.0:* —
udp 0 0 0.0.0.0:631 0.0.0.0:* —
udp 0 0 0.0.0.0:5353 0.0.0.0:* —
udp6 0 0 :::45815 :::* —
udp6 0 0 :::5353 :::* —
Настройка сети с помощью ifconfig
Получить информацию об имеющихся интерфейсах на старых версиях Debian можно с помощью команды
Изучите вывод этой команды и посмотрите какой интерфейс Вам доступен. Обычно это eth0.
, если нужно получать ip автоматически
iface eth0 inet dhcp
Если нужно задать статический ip
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
Чтобы изменения пришли в силу нужно выполнить
ifconfig wlan0 down
ifconfig eth0 up/down
Перезапустить/остановить/запустить сетевые службы
Настроить DNS можно через файл /etc/resolv.conf
При
установке
нужно было запомнить какие сетевые интерфейсы
вам предлагает сконфигурировать Debian.
В старых версиях Dbian это было просто, они назывались eth0, eth1 и так далее.
Поэтому для включения сетевого интерфейса, в приведённой выше команде нужно менять 0 на 1 и т.д.
В новых версиях Debian и в других Unix-подобных дистрибутивах, например
OpenBSD
сетевые интерфейсы называются более разнообразно (msk0, sk0 и др.)
Для того, чтобы с этим не возникало сложностей — полезно записывать то, что предлагается сконфигурировать при
установке дистрибутива.
Включить автоматическое получение ip
Выключить автоматическое получение ip можно вытащив сетевой шнур и вставив обратно. Говорят, что
должно сброситься.
и изучить вывод.
Iftop
Мониторить объём входящего и исходящего траффика на определённом интерфейсе можно
командой
iftop -i eth0