Перейти к содержимому

Как обновить сетевые настройки на linux

  • автор:

Управляем сетевыми подключениями в Linux с помощью консольной утилиты nmcli

Используйте все возможности инструмента управления сетевыми подключениями NetworkManager в командной строке Linux c помощью утилиты nmcli.

Утилита nmcli напрямую обращается к API для доступа к функциям NetworkManager.

Она появилась в 2010 году и для многих стала альтернативным способом настройки сетевых интерфейсов и соединений. Хотя кто-то до сих пор использует ifconfig. Так как nmcli — это инструмент интерфейса командной строки (CLI), предназначенный для использования в окнах терминалов и скриптах, он идеально подходит для системных администраторов, работающих без GUI.

Синтаксис команд nmcli

В общем виде синтаксис выглядит так:

$ nmcli

  • options — это параметры, которые определяют тонкости работы nmcli,
  • section (секция) — определяет, какими возможностями утилиты пользоваться,
  • action (действие) — позволяет указать, что, собственно, нужно сделать.
  • Help выдаёт справку о командах ncmcli и их использовании.
  • General возвращает статус NetworkManager и глобальную конфигурацию.
  • Networking включает команды для запроса состояния сетевого подключения и включения / отключения подключений.
  • Radio включает команды для запроса состояния подключения к сети WiFi и включения / отключения подключений.
  • Monitor включает команды для мониторинга активности NetworkManager и наблюдения за изменениями состояния сетевых подключений.
  • Connection включает команды для управления сетевыми интерфейсами, для добавления новых соединений и удаления существующих.
  • Device в основном используется для изменения параметров, связанных с устройствами (например, имени интерфейса) или для подключения устройств с использованием существующего соединения.
  • Secret регистрирует nmcli в качестве «секретного агента» NetworkManager, который прослушивает тайные сообщения. Эта секция используется редко, потому что nmcli при подключении к сетям по дефолту работает именно так.

Простые примеры

Перед началом работы убедитесь, что NetworkManager запущен и nmcli может общаться с ним:

$ nmcli general STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN connected full enabled enabled enabled enabled

Часто работу начинают с просмотра всех профилей сетевых подключений:

$ nmcli connection show NAME UUID TYPE DEVICE Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3 Wired connection 2 2279d917-fa02-390c-8603-3083ec5a1d3e ethernet enp0s8 Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9

Это команда использует действие show для секции Connection.

На тестовой машине крутится Ubuntu 20.04. В данном случае мы нашли три проводных подключения: enp0s3, enp0s8, and enp0s9.

Управление подключениями

Важно понимать, что в nmcli под термином Connection мы подразумеваем сущность, которая содержит всю информацию о соединении. Другими словами, это конфигурация сети. Connection инкапсулирует всю информацию, связанную с соединениями, включая канальный уровень и информацию об IP-адресации. Это уровень 2 и уровень 3 в сетевой модели OSI.

Когда вы настраиваете сеть в Linux, вы обычно настраиваете соединения, которые в конечном итоге будут привязаны к сетевым устройствам, которые в свою очередь являются сетевыми интерфейсами, установленными на компьютере. Когда устройство использует соединение, оно считается активным или поднятым. Если соединение не используется, то оно неактивно или сброшено.

Добавление сетевых соединений

Утилита nmcli позволяет быстро добавлять и сразу же настраивать соединения. Например, чтобы добавить Wired connection 2 (с enp0s8), нужно от имени суперпользователя запустить следующую команду:

$ sudo nmcli connection add type ethernet ifname enp0s8 Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully added.

В опции type мы указываем, что это будет Ethernet-соединение, а в опции ifname (interface name) указываем сетевой интерфейс, который хотим использовать.

Вот что будет после запуска команды:

$ nmcli connection show NAME UUID TYPE DEVICE Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3 Wired connection 2 2279d917-fa02-390c-8603-3083ec5a1d3e ethernet enp0s8 Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9 ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet -- 

Создано новое соединение, ethernet-enp0s8. Ему был назначен UUID, тип подключения — Ethernet. Поднимем его с помощью команды up:

$ nmcli connection up ethernet-enp0s8 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)

Ещё раз проверяем список активных соединений:

$ nmcli connection show --active NAME UUID TYPE DEVICE Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3 ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet enp0s8 Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9

Добавлено новое соединение ethernet-enp0s8, оно активно и использует сетевой интерфейс enp0s8.

Настройка подключений

Утилита nmcli позволяет легко менять параметры уже существующих подключений. Например, вам нужно сменить динамический (DHCP) на статический IP-адрес.

Пусть нам нужно установить IP-адрес равным 192.168.4.26. Для этого используем две команды. Первая непосредственно установит IP-адрес, а вторая переключит метод установки IP-адреса на значение «вручную» (manual):

$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24 $ nmcli connection modify ethernet-enp0s8 ipv4.method manual

Не забудьте также задать маску подсети. Для нашего тестового подключения это 255.255.255.0, или с /24 для бесклассовой маршрутизации (CIDR).

Чтобы изменения вступили в силу, нужно деактивировать и затем активировать соединение вновь:

$ nmcli connection down ethernet-enp0s8 Connection 'ethernet-enp0s8' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4) $ nmcli connection up ethernet-enp0s8 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveC

Если вам наоборот нужно установить DHCP, вместо manual используйте auto:

$ nmcli connection modify ethernet-enp0s8 ipv4.method auto

Работа с устройствами

Для этого мы используем секцию Device.

Проверка статуса устройств
$ nmcli device status DEVICE TYPE STATE CONNECTION enp0s3 ethernet connected Wired connection 1 enp0s8 ethernet connected ethernet-enp0s8 enp0s9 ethernet connected Wired connection 3 lo loopback unmanaged -- 
Запрос информации об устройстве

Для этого используем действие show из секции Device (нужно обязательно указать имя устройства). Утилита показывает достаточно много информации, часто на нескольких страницах.
Давайте посмотрим на интерфейс enp0s8, который использует наше новое соединение. Убедимся, что оно использует ровно тот IP-адрес, который мы установили ранее:

$ nmcli device show enp0s8 GENERAL.DEVICE: enp0s8 GENERAL.TYPE: ethernet GENERAL.HWADDR: 08:00:27:81:16:20 GENERAL.MTU: 1500 GENERAL.STATE: 100 (connected) GENERAL.CONNECTION: ethernet-enp0s8 GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/6 WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.4.26/24 IP4.GATEWAY: -- IP4.ROUTE[1]: dst = 192.168.4.0/24, nh = 0.0.0.0, mt = 103 IP6.ADDRESS[1]: fe80::6d70:90de:cb83:4491/64 IP6.GATEWAY: -- IP6.ROUTE[1]: dst = fe80::/64, nh = . mt = 103 IP6.ROUTE[2]: dst = ff00::/8, nh = . mt = 256, table=255

Информации достаточно много. Выделим главное:

  • Имя сетевого интерфейса: enp0s8.
  • Тип соединения: проводное Ethernet-соединение.
  • Мы видим MAC-адрес устройства.
  • Указан Maximum transmission unit (MTU) — максимальный размер полезного блока данных одного пакета, который может быть передан протоколом без фрагментации.
  • Устройство в данный момент подключено.
  • Имя соединения, которое использует устройство: ethernet-enp0s8.
  • Устройство использует тот IP-адрес, который мы установили ранее: 192.168.4.26/24.
Интерактивный редактор nmcli

У nmcli также имеется простенький интерактивный редактор, в котором кому-то работать может быть комфортнее. Чтобы запустить его, например, для соединения ethernet-enp0s8, используйте действие edit:

$ nmcli connection edit ethernet-enp0s8

У него также есть небольшая справка, которая, правда, уступает по размеру консольной версии:

===| nmcli interactive connection editor |=== Editing existing '802-3-ethernet' connection: 'ethernet-enp0s8' Type 'help' or '?' for available commands. Type 'print' to show all the connection properties. Type 'describe [.]' for detailed property description. You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy nmcli>

Если вы введёте команду print и нажмёте Enter, nmcli отобразит все свойства соединения:

=============================================================================== Connection profile details (ethernet-enp0s8) =============================================================================== connection.id: ethernet-enp0s8 connection.uuid: 09d26960-25a0-440f-8b20-c684d7adc2f5 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: enp0s8 connection.autoconnect: yes connection.autoconnect-priority: 0 connection.autoconnect-retries: -1 (default) connection.multi-connect: 0 (default) connection.auth-retries: -1 connection.timestamp: 1593967212 connection.read-only: no connection.permissions: -- connection.zone: -- connection.master: -- connection.slave-type: -- connection.autoconnect-slaves: -1 (default) connection.secondaries: --

Например, чтобы задать для подключения свойство DHCP, введите goto ipv4 и нажмите Enter:

nmcli> goto ipv4 You may edit the following properties: method, dns, dns-search, dns-options, dns-priority, addresses, gateway, routes, route-metric, route-table, routing-rules, ignore-auto-routes, ignore-auto-dns, dhcp-client-id, dhcp-iaid, dhcp-timeout, dhcp-send-hostname, dhcp-hostname, dhcp-fqdn, dhcp-hostname-flags, never-default, may-fail, dad-timeout nmcli ipv4>

Затем пропишите set method auto и нажмите Enter:

nmcli ipv4> set method auto Do you also want to clear 'ipv4.addresses'? [yes]:

Если вы хотите очистить статический IP-адрес, нажмите Enter. В противном случае введите no и нажмите Enter. Вы можете сохранить его, если думаете, что он понадобится вам в будущем. Но даже с сохраненным статическим IP-адресом будет использован DHCP, если method установлен в значение auto.

Используйте команду save, чтобы сохранить изменения:

nmcli ipv4> save Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully updated. nmcli ipv4>

Введите quit, чтобы выйти из Интерактивного редактора nmcli. Если передумали выходить — используйте команду back.

И это далеко не всё

Откройте Интерактивный редактор nmcli и посмотрите, сколько существует настроек и сколько свойств имеет каждая настройка. Интерактивный редактор — отличный инструмент, но, если вы хотите использовать nmcli в однострочниках или скриптах, вам понадобится обычная версия для командной строки.

Теперь, когда у вас есть основы, ознакомьтесь со справочной страницей nmcli, чтобы узнать, чем ещё она может вам помочь.

На правах рекламы

Эпичные серверы — это виртуальные серверы на Windows или Linux с мощными процессорами семейства AMD EPYC и очень быстрыми NVMe дисками Intel. Спешите заказать!

  • nmcli
  • настройка сети
  • настройка linux

Настройка сети вручную

В данном руководстве объясняется, как подключить компьютер к сети при помощи конфигурационных файлов и консольных утилит. Основная цель — рассказать о различных способах подключения к интернету без использования GUI (графического интерфейса). Руководство не затрагивает таких тем, как настройка сетевых фильтров или, например, собственных точек доступа Wi-Fi. Подразумевается, что существует некий, предоставленный провайдером, способ подключения к интернету, для использования которого и необходимо выполнить приведенные ниже действия.

В руководстве приведены примеры редактирования конфигурационных файлов с помощью текстовых редакторов «nano» и «gedit». Обратите внимание на то, что первый редактор запускается в терминале и может быть использован как при запуске Ubuntu с графическим интерфейсом, так и без него, а «gedit» можно использовать только при включенной графической среде.

Требования к системе

Для воспроизведения описанных в руководстве действий подходит любой вариант установки системы. Наличие графического пользовательского интерфейса не обязательно. Все действия необходимо выполнять в консоли. Подразумевается, что команды, начинающиеся с символа $ — необходимо выполнять от пользователя, а начинающиеся с # — от суперпользователя (root).

Прежде чем Вы начнете, убедитесь, что:

Различные сетевые утилиты, предназначенные для автоматического конфигурирования сети выключены. Например, тут Вы можете прочитать, как отключить установленный по умолчанию в Ubuntu сетевой помощник Network Manager.

Различные сетевые фильтры (например iptables), и утилиты их конфигурирования (например, Firestarter) отключены/правильно настроены и не вмешиваются в работу сети.

У Вас есть все необходимые параметры для подключения в Вашей сети (например, IP-адрес, маска подсети и шлюз по умолчанию для соединения с использованием статического IP).

Устройства сети осуществляющие фильтрацию по MAC-адресу правильно настроены и «знают» Ваш сетевой интерфейс.

Драйвер Вашего сетевого устройства корректно установлен, кабель (при проводном соединении) исправен и подсоединен.

Для настроек вам обязательно потребуется имя вашего сетевого адаптера. Его можно узнать из вывода команды:

$ sudo lshw -C network

Она позволяет посмотреть подключенные сетевые устройства.

Пример вывода команды:

ubuntu@ubuntu:~$ sudo lshw -C network *-network description: Ethernet interface # Тип устройства product: L2 100 Mbit Ethernet Adapter # Название адаптера vendor: Attansic Technology Corp. # Производитель устройства physical id: 0 bus info: pci@0000:03:00.0 logical name: eth0 # Имя сетевого интерфейса version: a0 serial: 00:00:00:00:00:00 # Физический адрес устройства (mac-адрес) size: 100MB/s capacity: 100MB/s width: 64 bits clock: 33MHz capabilities: pm msi pciexpress vpd bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=atl2 # Используемый драйвер driverversion=2.2.3 # Версия драйвера duplex=full firmware=L2 ip=192.168.0.5 latency=0 link=yes # Наличие линка module=atl2 multicast=yes port=twisted pair speed=100MB/s # Текущая скорость подключения.

Обратите внимание на строку:

logical name: eth0

eth0 — это и есть искомое имя сетевого интерфейса.

Имя eth0 будет далее применяться для настройки именно данной сетевой карты. Где eth обозначает что используется Ethernet интерфейс, а 0 — номер устройства. Если у вас установлено несколько сетевых устройств, то, соответственно, им будут присвоены имена: eth0 , eth1 , eth2 и т.д.

После внедрения SystemD (начиная с Ubuntu 15.04) сетевые интерфейсы могут иметь другие имена (не ethX). Сделано это для того, что бы имена сетевых устройств не менялись при подключении к машине новых адаптеров (в последнее время, некоторые USB модемы выступают в роли сетевого адаптера). В результате eth0 может называться например enp0s4 или eno1, или даже enx78e7d1ea46da. Именно это имя сетевого адаптера и нужно использовать в настройке сети.

Более подробно о наименовании сетевых интерфейсов в SystemD можно почитать тут (англ.).

Такое переименование можно отключить добавив в /etc/default/grub, в строку с переменной GRUB_CMDLINE_LINUX_DEFAULT строку net.ifnames=0. После этого нужно выполнить sudo update-grub

Настройка проводной сети

Настройка IP-адреса, шлюза по умолчанию, маски подсети

Отредактируйте файл конфигурации /etc/network/interfaces , например так:

$ sudo nano /etc/network/interfaces

И допишите в него:
Для статического IP:

iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.254 dns-nameservers 192.168.0.254 8.8.8.8 auto eth0

iface eth0 inet static — указывает, что интерфейс ( iface eth0 ) находится в диапазоне адресов IPv4 ( inet ) со статическим ip ( static );

address 192.168.0.1 — указывает что IP адрес (address) нашей сетевой карты 192.168.0.1;
netmask 255.255.255.0 — указывает что наша маска подсети (netmask) имеет значение 255.255.255.0;
gateway 192.168.0.254 — адрес шлюза ( gateway ) по умолчанию 192.168.0.254;
dns-nameservers 192.168.0.254 8.8.8.8 — адреса DNS серверов (о ниж мы расскажем позже)

auto eth0 — указывет системе что интерфейс eth0 необходимо включать автоматически при загрузке системы с вышеуказанными параметрами.

eth0 — имя подключаемого своего интерфейса. Список интерфейсов можно посмотреть набрав:

$ ip addr

В итоге файл /etc/network/interfaces должен выглядеть примерно так:
(для одного проводного соединения со статическим IP)

# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # Моя проводная сеть. iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.254 dns-nameservers 192.168.0.254 8.8.8.8 auto eth0

Сохраните файл и закройте редактор. В данном примере (редактор nano) — нажмите Ctrl + X , затем Y , убедитесь, что «Имя файла для записи» — /etc/network/interfaces и нажмите Enter .

Более подробно про синтаксис файла /etc/network/interfaces можно прочитать в документации.

Пример конфигурации для динамического IP:

iface eth0 inet dhcp auto eth0

Временная настройка IP-адреса и маски подсети

При необходимости задать пробные настройки, выполните:

$ sudo ip addr add 192.168.0.1/24 dev eth0

Где 192.168.0.1 — наш IP-адрес, /24 — число бит в префиксной части адреса (соответствует маске подсети 255.255.255.0).
eth0 — подключаемый сетевой интерфейс.

Данные настройки пропадут после перезагрузки системы и не повлияют на файл /etc/network/interfaces

Настройка DNS

За конфигурацию DNS отвечает утилита resolvconf, которая работает в паре с небольшим кеширующим DNS сервером dnsmasq. resolvconf позволяет осуществить настройку DNS на основе данных от разных подсистем.
Одним из следствий этого полезного нововведения (переход на эту схему произошел в Ubuntu начиная с версии 12.04) является то, что теперь файл /etc/resolv.conf генерируется автоматически, а не индивидуально каждой программой, которая хочет его изменить (порой перезаписывая правки сделанные ранее). Автоматическая генерация /etc/resolv.conf означает, что внесенные «руками» изменения в него будут потеряны.
Автоматически формируемый /etc/resolv.conf содержит ссылку на DNS сервер на локальном интерфейсе (127.0.1.1), а там (на 53 порту) и сидит сервис dnsmasq, который отвечает за разрешение символьных имен в IP адреса. Нужно отметить, что этот порт (53) открыт в режиме LISTEN, но т.к. это локальный интерфейс, то из внешней сети этот порт не доступен.
Информацию о DNS для статических интерфейсов теперь надо вносить в /etc/network/interfaces 1) в параметры dns-nameservers, dns-search и dns-domain (которые соответствуют параметрам nameserver, search и domain в /etc/resolv.conf)

Обратите внимание — в /etc/resolv.conf, при записи нескольких серверов используется несколько ключей nameserver, а в /etc/network/interfaces все адреса DNS серверов записывались в одну строчку после ключа dns-nameservers, разделенные пробелами.

В итоге описание статического интерфейса в /etc/network/interfaces должно выглядеть примерно так:

iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.254 dns-nameservers 8.8.8.8 192.168.0.254 auto eth0
Ubuntu до версии 12.04

В более старых версиях ubuntu, когда есть необходимость указать статические адреса DNS серверов (если они не выдаются автоматически) выполните:

$ sudo gedit /etc/resolv.conf

и впишите туда адреса DNS серверов (отдельные записи для каждого сервера):

nameserver 192.168.0.100 nameserver 192.168.0.200

Где 192.168.0.100 и 192.168.0.200 — адреса DNS серверов. Если нужно добавить больше адресов — каждый адрес нужно начинать с новой строки и с фразы nameserver

Настройка соединений ppp

За создание соединений типа «точка-точка» в Ubuntu отвечает демон pppd , более подробная информация о котором доступна в документации. В рамках данного руководства будут рассмотрены примеры создания PPPoE подключения через DSL модем, подключения PPTP (VPN-подключения) и DIAL-UP подключения через обычный модем.

Соединение PPPoE

В стандартную установку Ubuntu входит утилита для настройки PPPoE соединений – pppoeconf , для ее запуска наберите:

$ sudo pppoeconf

Появится «псевдографическое» 2) окно в терминале. Утилита произведет поиск сетевых устройств и выведет их на экран, далее она произведет поиск модема 3) на этих устройствах. Если на этом этапе pppoeconf выдаст отрицательный результат — проверьте правильность подключения, питание модема. Следующий шаг — выбор «популярных параметров» — в большинстве случаев стоит согласиться. Далее утилита запросит Ваш логин, а затем — пароль. Теперь — выбор способа указания DNS серверов. Опять же, в большинстве случаев следует согласиться на получение адресов DNS серверов автоматически. Далее Вам предложат ограничить размер MSS до 1452-х байт — как правило, стоит согласиться. Следующий вопрос — устанавливать ли подключение автоматически при загрузке компьютера. Последний вопрос утилиты — установить ли соединение сейчас. pppoeconf по умолчанию создает для подключения имя dsl-provider. Управлять подключением Вы можете при помощи команд:

$ sudo pon dsl-provider # Для подключения или $ sudo poff dsl-provider # Для отключения

Если в Вашем случае опций, предоставляемых утилитой pppoeconf недостаточно — обратитесь к документации по pppd или pppoeconf.

Замечание: при настройке соединения с помощью pppoeconf часть настроек записывается в /etc/network/interfaces , в результате чего Network Manager больше не может управлять сетью. Выход: либо использовать только NM, либо только консоль+конфиги. Вернуть управление Network Manager можно следующим образом. Приведите /etc/network/interfaces к следующему виду (лишнее не обязательно удалять, достаточно закомментировать):

# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback
$ sudo /etc/init.d/networking restart

Перезагрузитесь или перезапустите Network Manager:

$ sudo /etc/init.d/NetworkManager restart

Соединение PPTP

Для осуществления VPN-соединения при помощи pppd Вам потребуется установить пакет pptp-linux , который может быть найден на установочном диске Ubuntu. Далее создайте (от root’а) в папке /etc/ppp/peers файл с названием Вашего провайдера и отредактируйте его, например так:

$ sudo nano /etc/ppp/peers/my-provider

И добавьте туда опции подключения, например такие:

persist # При разрыве соединения - переподключаться снова. maxfail 0 # Максимальное количество неудачных попыток подключения. 0 - бесконечно. mtu 1476 # Значение MTU name # Ваш логин. #nodefaultroute # Не быть шлюзом по умолчанию defaultroute # Быть шлюзом по умолчанию replacedefaultroute # Заменить шлюз по умолчанию если он был remotename # Имя удаленного сервера (для нас), может быть любым. pty "pptp --nolaunchpppd" # Команда запуска pptp. # Адрес сервера - может быть как IP адресом, так и доменным именем, например vpn.foo.bar

Далее — отредактируйте файл /etc/chap-secrets 4) и добавьте туда:

После перезагрузки системы Вы сможете управлять соединением при помощи команд:

$ sudo pon my-provider # Для подключения или $ sudo poff my-provider # Для отключения

Процесс настройки VPN-соединения может сильно облегчить скрипт-помощник.

Настройка DIAL-UP подключения

Для настройки модемного соединения можно использовать встроенный конфигуратор pppdpppconfig или специальную утилиту wvdial .

При помощи pppconfig

Процесс настройки при помощи pppconfig во многом похож на утилиту pppoeconfig , Вам по очереди будут заданы вопросы о параметрах подключения, и будет предложено ввести номер телефона, логин и пароль, а также имя соединения. Запускать pppconfig следует с правами суперпользователя. Например так:

$ sudo pppconfig

Управлять соединением можно так:

$ sudo pon my-provider # Для подключения или $ sudo poff my-provider # Для отключения

Где my-provider — имя, присвоенное Вами соединению при настройке.

При помощи wvdial

В некоторых случаях (например при подключении с использованием мобильного телефона), удобнее использовать wvdial . Для этого нужно его сначала установить. Например так:

$ sudo apt-get install wvdial

В состав пакета wvdial входит утилита автоматического конфигурирования — wvdialconf .

$ sudo wvdialconf

Вывод будет примерно следующим:

ubuntu@ubuntu:~$ sudo wvdialconf [sudo] password for ubuntu: Editing `/etc/wvdial.conf'. Scanning your serial ports for a modem. Modem Port Scan: S0 S1 S2 S3 WvModem: Cannot get information for serial port. ttyACM0: ATQ0 V1 E1 -- OK ttyACM0: ATQ0 V1 E1 Z -- OK ttyACM0: ATQ0 V1 E1 S0=0 -- OK ttyACM0: ATQ0 V1 E1 S0=0 &C1 -- OK ttyACM0: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK ttyACM0: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK ttyACM0: Modem Identifier: ATI -- Manufacturer: QUALCOMM INCORPORATED ttyACM0: Speed 4800: AT -- OK ttyACM0: Speed 9600: AT -- OK ttyACM0: Speed 19200: AT -- OK ttyACM0: Speed 38400: AT -- OK ttyACM0: Speed 57600: AT -- OK ttyACM0: Speed 115200: AT -- OK ttyACM0: Speed 230400: AT -- OK ttyACM0: Speed 460800: AT -- OK ttyACM0: Max speed is 460800; that should be safe. ttyACM0: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK Found an USB modem on /dev/ttyACM0. Modem configuration written to /etc/wvdial.conf. ttyACM0: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"

Теперь остается только отредактировать файл /etc/wvdial.conf и добавить в него номер телефона, логин и пароль.

$ sudo nano /etc/wvdial.conf

В данном примере я дополнительно добавил несколько опций. См. комментарии.

[Dialer Defaults] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Modem Type = USB Modem ISDN = 0 Idle Seconds = 0 New PPPD = yes Dial Attempts = 0 Phone = #777 Modem = /dev/ttyACM0 Username = mobile Password = internet Baud = 460800 Idle Seconds = 0 # Время простоя соединения, # после которого нужно будет его разорвать. Значение 0 - никогда. Dial Attempts = 0 # Количество попыток дозвона. 0 - бесконечно. [Dialer pulse] Dial Command = ATDP # Команда набора номера (P - импульсный, T - тональный). Имеет смысл для набора номера в импульсном режиме на старых АТС.

Файл /etc/wvdial.conf разбит на секции, в качестве разделителей которых выступают сами названия секций, предварённые словом Dialer, в квадратных скобках. Если исполнять команду без параметров, то в дело пойдут установки, перечисленные в секции Defaults. В противном случае дополнительно будут исполнены указанные в добавочных секциях команды.

Теперь, когда все настроено, соединение можно установить набрав:

$ sudo wvdial

Если потребуется запустить wvdial с набором номера в импульсном режиме, то это можно сделать командой

$ sudo wvdial pulse

Прервать соединение можно прервав выполнение команды wvdial , т.е. в том же терминале нужно нажать Ctrl + C .

Автоматическое подключение

Отредактируйте файл конфигурации /etc/network/interfaces , например так:

$ sudo nano /etc/network/interfaces

И допишите в него:
Для pppoe , pptp , и модемного подключения без использования wvdial :

iface ppp0 inet ppp provider my-provider auto ppp0

Где my-provider — название вашего соединения.
При использовании wvdial :

iface ppp0 inet wvdial provider wvdial auto ppp0

Теперь при перезапуске сетевых служб соединение будет автоматически установлено.

Ручная настройка роутинга

Если Вы не получаете адрес шлюза по-умолчанию от сервера, к которому подключаетесь, или по какой-либо иной причине Вам необходимо указать маршруты вручную — Вы можете создать свой скрипт в /etc/ppp/ip-up.d/ , либо по рекомендации официальной документации создать /etc/ppp/ip-up.local например так:

$ sudo nano /etc/ppp/ip-up.local
$ sudo nano /etc/ppp/ip-up.d/routing

со следующим кодом:

#! /bin/sh # route del default route add default ppp0 # Имя ppp-подключения. # тут - необходимые маршруты, например: route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth0

Далее — сделайте этот скрипт исполняемым, например так:

$ sudo chmod ug+x /etc/ppp/ip-up.local
$ sudo chmod ug+x /etc/ppp/ip-up.d/routing

Теперь маршруты будут автоматически подключаться при установлении ppp-соединения.

Установка MTU и TTL

MTU (Maximum Transfer Unit) — параметр определяет величину максимальной единицы передачи. Это максимальное количество октетов (байт), которое интерфейс способен поддерживать за одну операцию приема/передачи. Для Ethernet это значение по умолчанию составляет 1500 (максимальный размер пакета Ethernet).

TTL (Time To Live) — время жизни ip-пакета в секундах. Нужен чтобы избежать перегрузки сети пакетами. Обычно каждый роутер, через которого прошел пакет, уменьшает TTL на еденицу. Если TTL=0, пакет из системы удаляется. Изначально TTL=128 (для Windows) и TTL=64 (для Ubuntu). Для DNS -записей TTL определяет время актуальности данных при кешировании запросов.

Для изменения величины MTU, отредактируем файл конфигурации /etc/network/interfaces , например так:

auto eth0 iface eth0 inet static address 192.168.1.5 netmask 255.255.255.0 mtu 600

Для изменения величины TTL наберите:

$ sudo su затем # echo "128" > /proc/sys/net/ipv4/ip_default_ttl

Значение TTL меняется только с правами администратора, для выхода из аккаунта администратора введите exit

Настройка WiFi

Настройка Wi-Fi при помощи wpa-supplicant и /etc/network/interfaces

В этой главе пойдет речь о настройке подключения к существующей Wi-Fi сети с использованием наиболее безопасного на сегодняшний день стандарта шифрования и аутентификации WPA2. Дополнительно приведены примеры настроек для менее безопасных соединений.

Если Вы можете повлиять на настройку точки доступа, например, в случае, если это Ваш домашний Wi-Fi роутер — постарайтесь настроить авторизацию с использованием WPA2, т.к. это наиболее безопасный протокол аутентификации в беспроводных сетях на настоящий момент.

Замечания

Дополнительно к требованиям, указанным выше Вам следует учесть, что:

После установки всех необходимых пакетов, кабель проводной сети лучше отсоединить.

Некоторые устройства (или их драйвера, например Madwifi) не поддерживают WPA2 (AES). Если соединение WPA2 установить не удается, можно попробовать WPA1 (TKIP).

Если у Вас RTxxx (Ralink) с драйверами Serialmonkey — этот способ Вам не поможет. Вам следует либо установить пакет ndiswrapper , заменяющий Serialmonkey, либо попробовать другой способ.

Подготовка

Установите пакеты wpa-supplicant и wireless-tools
Например так:

$ sudo apt-get install wpasupplicant wireless-tools

Теперь убедитесь в том, что Ваше беспроводное устройство (в данном примере это «wlan0») работает и «видит» беспроводные сети. Команда

$ iwconfig

должна выдать примерно такой результат:

ubuntu@ubuntu:~$ iwconfig lo no wireless extensions. eth0 no wireless extensions. wmaster0 no wireless extensions. wlan0 IEEE 802.11bg ESSID:"" Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated Tx-Power=27 dBm Retry min limit:7 RTS thr:off Fragment thr=2352 B Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0

а доступные сети можно посмотреть командой

$ iwlist scan

которая должна выдать примерно такой результат:

ubuntu@ubuntu:~$ iwlist wlan0 scan wlan0 Scan completed : Cell 01 - Address: 00:00:00:00:00:00 ESSID:"ubuntuessid" Mode:Master Channel:8 Frequency:2.447 GHz (Channel 8) Quality=7/100 Signal level:-99 dBm Noise level=-104 dBm Encryption key:on Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s 24 Mb/s; 36 Mb/s; 54 Mb/s; 6 Mb/s; 9 Mb/s 12 Mb/s; 48 Mb/s Extra:tsf=0000001d57e98bf6 Extra: Last beacon: 388ms ago

Бывает, что Ваше устройство Wi-Fi не включено по умолчанию, тогда команда вместо рапорта, приведенного выше выдаст такое сообщение:

wlan0 Failed to read scan data : Network is down

Ничего страшного, просто введите команду

sudo ip link set dev wlan0 up

соответственно выключить устройство можно командой

sudo ip link set dev wlan0 down
Настройка

Редактируем /etc/network/interfaces , например так:

$ sudo gedit /etc/network/interfaces

Удаляем (или комментируем) все упоминания нашего беспроводного интерфейса и добавляем свои:

iface wlan0 inet dhcp wpa-driver wext wpa-ssid wpa-ap-scan 1 wpa-proto RSN wpa-pairwise CCMP wpa-group CCMP wpa-key-mgmt WPA-PSK wpa-psk [ВАЖНО - см. Генерация ключей] auto wlan0
Параметр Описание
iface wlan0 inet dhcp конфигурация для DHCP (для статического IP см. пример ниже)
«iface wlan0» — Имя нашего интерфейса (wlan0, eth1, rausb0, ra0, итд.)
wpa-driver Это wpa-driver для нашей карты
(‘wext’ — общий драйвер для linux, работающий с «ndiswrapper»). Рекомендуется оставить как есть.
Другие варианты:
hostap = Host AP driver (Intersil Prism2/2.5/3)
atmel = ATMEL AT76C5XXx (USB, PCMCIA)
wext = Linux wireless extensions (generic)
madwifi = Atheros
wired = wpa_supplicant wired Ethernet driver
wpa-ssid Имя нашей точки доступа (ESSID). Без кавычек.
wpa-ap-scan Параметр вещания точкой доступа ее имени.
«1» = ESSID вещается всем.
«2» = ESSID скрыт.
wpa-proto Протокол
«RSN» = WPA(2)
«WPA» = WPA(1)
wpa-pairwise & wpa-group «CCMP» = AES-шифрователь (как часть стандарта WPA(2))
«TKIP» = TKIP-шифрователь (как часть стандарта WPA(1))
wpa-key-mgmt «WPA-PSK» = Аутентификация через ключевую фразу (см. ‘Cоздание ключей’)
«WPA-EAP» = Аутентификация при помощи сервера аутентификаций.
auto wlan0 Автоматическое включение wlan0 при загрузке/перезагрузке сети.
Генерация ключей

Теперь нам нужно сконвертировать нашу ключевую фразу (WPA ASCII ) в hex-ключ:

$ wpa_passphrase

Результат будет примерно таким:

network=

hex-ключ это все символы после «psk=».

Нужно его скопировать в буфер обмена и вставить в файл /etc/network/interfaces в поле wpa-psk.

Теперь можно сохранить файл и перезагрузить сеть. Должно установиться соединение. Однако иногда этого сразу не происходит. Если это так — перезагружаем машину.

Дополнительно

Отключаем чтение файла /etc/network/interfaces для others во избежания попадания пароля от сети к третьим лицам.

$ sudo chmod o=-r /etc/network/interfaces
Примеры конфигураций

WPA2 + статический IP, скрытый ESSID.

iface wlan0 inet static address 192.168.168.40 gateway 192.168.168.230 dns-nameservers 192.168.168.230 netmask 255.255.255.0 wpa-driver wext wpa-ssid wpa-ap-scan 2 wpa-proto RSN wpa-pairwise CCMP wpa-group CCMP wpa-key-mgmt WPA-PSK wpa-psk [ВАЖНО - см. Генерация ключа] auto wlan0

WPA1 + DHCP , ESSID виден всем.

iface wlan0 inet dhcp wpa-driver wext wpa-ssid wpa-ap-scan 1 wpa-proto WPA wpa-pairwise TKIP wpa-group TKIP wpa-key-mgmt WPA-PSK wpa-psk [ВАЖНО - см. Генерация ключа] auto wlan0

Смешанный режим (WPA1, WPA2) + DHCP , ESSID виден всем.

iface wlan0 inet dhcp wpa-driver wext wpa-ssid wpa-ap-scan 1 wpa-proto WPA RSN wpa-pairwise TKIP CCMP wpa-group TKIP CCMP wpa-key-mgmt WPA-PSK wpa-psk [ВАЖНО - см. Генерация ключа] auto wlan0

LEAP, WEP, DHCP , ESSID виден всем.

iface wlan0 inet dhcp wpa-driver wext wpa-ssid wpa-ap-scan 1 wpa-eap LEAP wpa-key-mgmt IEEE8021X wpa-identity wpa-password auto wlan0

PEAP, AES, DHCP , ESSID виден всем.

iface wlan0 inet dhcp wpa-driver wext wpa-ssid wpa-ap-scan 1 wpa-proto RSN wpa-pairwise CCMP wpa-group CCMP wpa-eap PEAP wpa-key-mgmt WPA-EAP wpa-identity wpa-password auto wlan0

TTLS, WEP, DHCP , ESSID виден всем.

iface wlan0 inet dhcp wpa-driver wext wpa-ssid wpa-ap-scan 1 wpa-eap TTLS wpa-key-mgmt IEEE8021X wpa-anonymous-identity wpa-identity wpa-password wpa-phase2 auth=PAP [Также: CHAP, MSCHAP, MSCHAPV2] auto wlan0

Другие способы работы Wi-Fi оборудования

При помощи Wi-Fi адаптера также возможно установить децентрализованную сеть ad-hoc или сделать из компьютера под управлением Ubuntu точку доступа. Поскольку описание данных способов Wi-Fi подключения выходит за рамки этого руководства — обратитесь к соответствующим разделам. Ссылки на эти разделы см. в разделе Cсылки .

Решение проблем

Не устанавливается соединение по Wi-Fi/Ethernet с точкой доступа/маршрутизатором

Симптомы: сеть обычно изначально работает нормально, долго или недолго, а затем неожиданно пропадает и не появляется после перезагрузки. Эта проблема может быть непостоянной. Сеть «сама собой» начинает работать, а затем пропадает вновь. При перезапуске адаптера сети таким образом:

sudo ifdown wlan0 sudo ifup wlan0

будет выводиться в консоль похожий текст

Listening on LPF/wlan0/00-02-2A-E1-E0-6C Sending on LPF/wlan0/00-02-2A-E1-E0-6C Sending on Socket/fallback DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8 DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 15 No DHCPOFFERS received. No working leases in persistent database - sleeping.

Причиной проблемы может быть то, что материнская плата полностью не обесточивается при выключении компьютера. При этом вероятно не обесточивается и некоторое периферийное оборудование, в т.ч. могут не обесточиваться usb порты. Если вы используете, например, Wi-Fi usb-адаптер, то в таком случае можно заметить горящий на адаптере светодиод (если он им оборудован). Вероятно проблема возникает из-за того, что сетевое оборудование в этом режиме работает не совсем корректно.

Простое решение проблемы состоит в выключении компьютера и выдергивании кабеля питания из розетки с последующим подключением шнура питания и включением компьютера.

Сложное решение проблемы состоит в настройке параметров BIOS-а на полное обесточиваение сетевого оборудования при выключении компьютера.

Иногда наглухо пропадает соединение по Wi-Fi с точкой доступа/маршрутизатором

Симптомы: сеть изначально работает, а затем после перезагрузки точки доступа/маршрутизатора неожиданно пропадает, и не появляется ни после перезагрузки, ни после танцев с бубном. При этом беспроводной адаптер в упор не видит точку доступа (хотя она может стоять рядом с компьютером), но прекрасно видит все соседские сети. Затем после ~дцатой~ перезагрузки маршрутизатора сеть сама собой появляется вновь.

Причиной проблемы может быть то, что некоторые маршрутизаторы произвольно выбирают номер рабочего канала, игнорируя номер канала выбранный в настройках маршрутизатора. Если в файле /etc/network/interfaces номер канала для беспроводного интерфейса указан, то вероятно проблема состоит именно в этом. Номер 6 канала указывается в файле примерно так:

auto wlan0 . wireless-channel 6

Простое решение проблемы состоит в комментировании этого параметра, чтобы адаптер не был ограничен только этим каналом, и перезапуске сети

auto wlan0 . #wireless-channel 6

Сложное решение проблемы состоит в регистрации бага на сайте производителя маршрутизатора (прошивки для него) и обновление прошивки маршрутизатора после (в случае) его исправления.

Перезапуск сети

Теперь, когда все необходимые действия выполнены, можно перезапустить сеть и проверить соединение. Для этого:

$ sudo /etc/init.d/networking restart

Теперь, при запуске команды ip addr должно отобразиться подключение eth0 с выставленными параметрами. Если подключение отображается, но параметры не такие, какие были указаны в файле /etc/network/interfaces , либо возникают любые другие ошибки, перепроверьте этот файл на наличие неточностей и опечаток и попробуйте ещё раз перезапустить сеть.

FAQ по сетям

Как зайти на мой компьютер извне (через интернет)?

Для начала надо узнать, какой IP-адрес даёт провайдер — серый или белый (не путать со статическим/динамическим). Если серый, то ничего не получится. Если белый, то возможны два варианта:

Роутера нет или он работает в режиме бриджа (моста). В этом случае белый IP-адрес присваивается самому компьютеру. Вводим адрес — попадаем на комп, всё просто.

Белый адрес присваивается роутеру. Соответственно, по этому адресу мы попадаем на роутер, а не на компьютер. Чтобы попасть на компьютер, на роутере нужно пробросить порты (см. ниже).

Мне кажется, у меня слишком медленно работает сеть!

Измерьте скорость сети между двумя компьютера с помощью iperf . Можно воспользоваться этой инструкцией. В ней предлагают скомпиллировать программу из исходников, но можно просто установить её из репозитория. Если iperf покажет значение немного меньшее, чем ожидаемое, то с сетью всё в порядке, проблема может быть в железе (жёсткий диск/процессор не могут обеспечить большую скорость), в способе передачи (например, scp и ftp весьма неторопливы), в настройках (скорость может быть ограничена, например, настройками FTP -сервера) или в чём-то ещё. Если iperf показал величину, которая в разы меньше желаемой, то да — с сетью проблемы. Стоит посмотреть, в нужном ли режиме работает карта (например, с помощью ethtool ), проверить наличие «errors» в выводе ifconfig и протестировать скорость подключения к какому-нибудь третьему компьютеру.

Как узнать, какие программы слушают порты на моём компьютере?

Чтобы посмотреть список открытых портов и названия слушающих их программ, используйте команду:

sudo netstat -nlpA inet,inet6

Для вывода информации о конкретном порте можно использовать grep . Например, для 80 порта:

sudo netstat -nlpA inet,inet6 | grep :80

Из вывода netstat не всегда понятно, о какой программе идёт речь (например, 2671/python), подробнее о процессе расскажет ps :

ps aux | grep 2671
Как присвоить два IP-адреса одной сетевой карте?

Например, интерфейсу eth0 нужно добавить адрес 192.168.1.1. Кратковременно, до перезапуска сети:

sudo ip addr add 192.168.1.1/24 dev eth0

Навсегда — добавить в /etc/network/interfaces следующее:

#исправить строку auto auto eth0 eth0:1 # добавить алиас iface eth0:1 inet static address 192.168.1.1 netmask 255.255.255.0
Как пробросить порт?

Например, нужно пробросить порт 8081. Адрес, на который обращается клиент, назовём внешний_ip, а адрес, на который он должен попасть — внутренний_ip.

iptables -t nat -A PREROUTING -p tcp -d внешний_ір --dport 8081 -j DNAT --to-destination внутренний_ір:8081 iptables -t nat -A POSTROUTING -p tcp --dst внутренний_ір --dport 8081 -j SNAT --to-source внешний_ір

И обязательно нужно что-то вроде

iptables -t filter -A FORWARD -m conntrack --ctstate DNAT -j ACCEPT

Настройка сети в Linux

ip заменяет ifconfig, route и некоторые другие утилиты.

  • ip r вывод таблицы маршрутизации
  • ip ro list table all вся таблица маршрутизации
  • ip addr show eth0 вывод конфигурации интерфейса
  • ip link set eth0 up включить интерфейс eth0
  • ip link set eth0 down выключить интерфейс eth0
  • ip neigh show просмотреть физические адреса узлов из ARP кэша
  • ip addr add 192.168.10.15/24 broadcast 192.168.10.255 dev eth0 присвоить ip адрес
  • ip addr del 192.168.10.15/24 dev eth0 удалить ip адрес
  • ip addr add 192.168.10.16/24 dev eth0 label eth0:1 добавить вторичный адрес
  • ip route add 192.168.10.1/24 dev eth1 добавить маршрут
  • ip route del 192.168.10.1/24 dev eth1 удалить маршрут
  • ip route add default via 192.168.10.1 добавить маршрут по умолчанию
  • ip -s link show eth0 оценка производительности сети

Утилита настройки сети NetworkManager command-line (nmcli)

    У нее есть такие понятия как:
  • Устройство (device) — это сетевой интерфейс
  • Подключение (connection) — это набор настроек, использующих устройство для организации сетевого подключения
  • nmcli con show вывод списка всех подключений
  • nmcli con show -active вывод списка активных подключений
  • nmcli con show вывод списка текущих параметров и их значения для указанного подключения. Выводимые параметры можно изменить с помощью команды nmcli con mod
  • nmcli con up активация подключения
  • nmcli con down деактивация подключения. Подключение перезапустится, если значение autoconnect = yes
  • nmcli con mod connection.autoconnect no(yes) выключить или включить автоматическое подключение сетевого интерфейса
  • nmcli con mod ipv4.addresses 192.168.10.15/24 указать ip-адрес
  • nmcli con mod +ipv4.addresses 192.168.10.15/24 добавить вторичный ip-адрес
  • nmcli con mod ipv4.dns 192.168.10.25/24 указать ip-адрес сервера DNS
  • nmcli con mod +ipv4.dns 192.168.10.35/24 добавить ip-адрес вторичного сервера DNS
  • nmcli con mod ipv4.gateway 192.168.10.45/24 указать ip-адрес шлюза
  • nmcli con del удаление подключения
  • nmcli dev status вывод состояния сетевых устройств
  • nmcli dev show вывод подробного состояние сетевого устройства
  • nmcli dev dis остановка интерфейса и временное отключение автоматическое подключения
  • nmcli net off отключение всех управляемых интерфейсов

Чтобы изменения вступили в силу нужно повторно активировать подключение
nmcli con up
Или перезапустить сетевой интерфейс
sudo nmcli con down && sudo nmcli con up

С помощью nmcli можно создать новое подключение, например:
Определение нового подключения с именем dynamic для подключения через ethernet к устройству ens192 по протоколу DHCP и выключенным автоподключением. В /etc/sysconfig/network-scripts создаться файл ifcfg-dynamic с параметрами подключения

nmcli con add con-name "dynamic" type Ethernet ifname ens192 autoconnect no

Определение нового подключения с именем static с явным указанием ip-адреса, шлюза и включенным автоподключением. В /etc/sysconfig/network-scripts создаться файл ifcfg-static с параметрами подключения

nmcli con add con-name "static" ifname ens192 autoconnect yes type ethernet ip4 192.168.10.15/24 gw4 192.168.10.10

Для переключения между подключениями используется

nmcli con up "static" nmcli con up "dynamic"

Полный перечень настроек можно увидеть перейдя по |ссылке|

Текстовый интерфейс NetworkManager Text User Interface (nmtui)

Все изменения производятся с правами суперпользователя

Запуск утилиты осуществляется командой

nmtui

Если утилита не установлена, ее можно установить
В CentOS

yum install networkmanager-tui
apt install network-manager
    После запуска нужно будет выбрать опцию и подключение, есть следующие опции:
  • edit — редактор соединений
  • connect — список соединений с возможностью их активации и деактивации
  • hostname — изменение имени хоста

Можно запустить утилиту сразу указав опцию и нужное подключение
nmtui edit nmtui connect nmtui hostname
Имя подключения можно узнать выполнив команду

ip a

Чтобы изменения вступили в силу нужно повторно активировать подключение
nmcli con up
Или перезапустить сетевой интерфейс
sudo nmcli con down && sudo nmcli con up

Настройка сети через конфигурационный файл в CentOS

Конфиг с настройками сети лежит по пути:

/etc/sysconfig/network-scripts/ifcfg-*

где * — это название сетевого интерфейса, которое можно посмотреть командой

ip a

Конфиг должен содержать как минимум следующие строки:

TYPE=Ethernet BOOTPROTO=static #(или dhcp) статический или динамический ip-адрес IPV6INIT=no #(или yes) отключение ipv6 NAME=ens192 #Имя интерфейса DEVICE=ens192 #Имя устройства IPADDR=192.168.10.15 #статический ip-адрес системы PREFIX=24 #(или NETMASK=255.255.255.0) маска сети GATEWAY=192.168.10.25 #Шлюз по умолчанию для этого сетевого интерфейса DNS1=192.168.10.35 #DNS сервер ONBOOT=yes #(или no) автоматический запуск сети

Чтобы изменения вступили в силу нужно выполнить команду для считывания изменений конфигурации

nmcli con reload

Затем перезапустить сетевой интерфейс
sudo nmcli con down && sudo nmcli con up

Настройка сети через конфигурационный файл в Ubuntu

Ubuntu последних версий использует netplan в качестве сетевого менеджера по умолчанию

Конфиг сетевых настроек храниться в файле с расширением yaml в каталоге

/etc/netplan/

Перед изменением файла рекомендуется сделать его бэкап
Проверка конфигурации при изменении и применение новой конфигурации при нажатии Enter

netplan try

Проверка конфигурации, после этого конфигурация измениться без принудительной перезагрузки сетевого интерфейса

netplan apply

Чтобы увидеть что конкретно происходит при выполнении netplan apply, можно добавить ключ —debug

netplan --debug apply

Для перезапуска сетевого интерфейса можно выполнить

sudo ip link set dev down && ip link set dev up

Именование сетевого интерфейса в linux

Название сетевого интерфейса обычно выглядит следующим образом: PrefixTypeN

    Prefix — префикс интерфейса
  • en — ethernet
  • wl — WLAN (Wi-Fi, WiMax, Bluetooth)
  • ww — WWAN (GSM, UMTS, LTE)
    Type — тип адаптера
  • o — для адаптера расположенного на материнской плате
  • s — для разъема с горячим подключением
  • p — для PCI-адаптера
  • x — используется для включения MAC-адреса в состав имени

Число N — для представления индекса, идентификатора или порта.

Например:
eno1 — встроенный сетевой интерфейс;
enp2s0 — сетевой интерфейс PCI-платы.

Если фиксированное имя не может быть определено, используются традиционные имена, например ethN.

Прочие утилиты для работы с сетью

ss

  • ss -ta список прослушиваемых портов
  • ss -t отображение сокетов TCP
  • ss -u отображение сокетов UDP
  • ss -l отображение только прослушиваемых сокетов
  • ss -a отображение всех используемых сокетов
  • ss -p отображение процесса, использующего сокеты
  • ss -n4 отображение только ipv4

nc

  • nc -zv 192.168.10.15 22 проверка, прослушивается ли порт по tcp
  • nc -ul 5555 включение прослушивания порта по udp
  • nc -u 192.168.10.15 5555 проверка подключения по udp, при этом на компьютере, к которому осуществляется подключение должна быть запущена предыдущая команда
  • Настройка сети в Linux
  • Настройка и подключение к Linux по SSH с использованием паролей и ключей
  • SELinux в Linux
  • Настройка Linux в качестве Master Browser
  • Монтирование и размонтирование сетевого каталога в Linux
  • Создание пользователя с правами sudo в Linux
  • LVM в Linux
  • LVM увеличение размера раздела за счет размера другого раздела в Linux
  • Не отображаются русские буквы в консоли Linux
  • Работа с редактором VIM в Linux
  • Разрешения и владельцы файлов и каталогов в Linux
  • Пользователи и группы в Linux
  • Управление пакетами и репозиториями APT, DPKG в Ubuntu
  • Управление пакетами и репозиториями YUM, RPM в CentOS
  • Firewalld в Linux
  • Управление службами через SYSTEMCTL в Linux
  • Устройства и виртуальные файловые системы в Linux
  • История команд в Linux
  • Ссылки в Linux
  • Логи в Linux
  • Потоки и конвейеры в Linux
  • Обработка консольного текстового вывода в Linux

Как обновить сетевые настройки на linux

restart network interface

O nce you make changes in the network interface, they affect the network services manager of your system. To enable the system or machine to connect to the network, one needs to restart the network interface to apply the changes without rebooting your server.

This article will guide you on restarting the network interface in various Linux distributions.

Note: When running SSH/ VNC or other remote-based sessions, you should take precautions since restarting the network interface or service can result in network disconnectivity, resulting in connection loss.

We will handle the following topics.

What is a network interface?

A network interface refers to the point of connection between a computer and the network. It can be either software (especially with Virtual machines) or a hardware component. When dealing with network interfaces, there is one term that you will likely come across – NIC (Network Interface Card).

A Network Interface Card is a circuit board chip inserted/ soldered on the motherboard allowing your computer to connect to the internet. If you have worked with many earlier Desktop computers (even some today), you know that most cannot connect to a WiFi network, and that’s because they don’t have a wireless NIC. You are advised to purchase a USB Network Adapter that will act as your wireless interface connection in such a situation.

How to list network interfaces on Linux

You can use different ways to see all the available network interfaces on your system. You can use the GUI or the Command-line (CLI). In this post, we highly recommend using the Terminal (CLI) since the GUI settings app might not list specific interfaces.

1. The ifconfig command

This command has long been used to list and configure network interfaces on Linux. Unfortunately, this command is marked as ‘deprecated’ and does not come pre-installed in certain distributions like recent Debian and Kali Linux releases.

How to Reset Network Interfaces Configuration on Ubuntu Server 18.04?

I have no idea what I’ve done — but it was all working fine, now it’s not, and I cannot for the life of me figure out what is wrong.

How can I completely reset the network interfaces?

All I want to do is connect to the internet. I can see the server listed in the Router’s Admin screen, with a dynamic IP address that has been generated through the Routers DHCP server.

I’ve tried deleting all contents within the /etc/network/interfaces file

I’ve tried deleting all YAML files within /etc/netplan, yet whenever I try to run the command netplan apply I keep getting the error «returned non-zero exit status 4» — Whatever that means.

I’ve a feeling that something has got screwed up along the way, and I just need to re-set everything then start from the beginning to get the server accessing the internet (outbound).

More Details

Previously when I had this working I had a static IP for the box on the network, and I could connect to the internet no problem — I’ve no idea what I changed between it working and not working. What was odd though was that when it stopped working I could see the box had 2x MAC addresses listed on the routers admin page, the static IP that I had configured and another MAC address with the server having it’s own Dynamic IP address. All I can assume there is that I’ve plugged in the Ethernet cable into one of the different network ports in the back of the machine.

Here are the outputs to the files as requested;

lshw -C network

cat /etc/netplan/*.yaml

Note: The above IP address, I’m not sure if I typed that (and did a typo when i did, since last time I was trying to get this working the server showed up in the Routers admin with a .104 IP, not a .04 IP — And at the time of writing this, the server isn’t showing up in the Routers admin at all.

And here are the network details when I check within the Router’s admin screen;

Update 2

Ok, so after writing the above update about 5 minutes ago, I think I’ve actually got this working (sometimes all you need is some time to stop working on something then come back to it another day!)

So here’s what I did, I simply changed the following file so it looks like this instead;

Which I can only assume that because the other bits were in there previously, that Netplan thought that the router was configured with a static IP address rather than a dynamic IP address — or getting confused somewhere along the way since the settings look to be telling itself that it is both static (with the ‘addresses’ setting) and dynamic (with the ‘dhcp4’ setting) at the same time.

It’d be good to understand exactly why what I have changed actually works — is my assumption above correct?

In addition, does the filename of the .yaml file within /etc/netplan/ actually matter? Not really sure where this comes from, since I recall that the filename is different now than what it was previously when I was deleting / recreating the files.

BTW — This is just a test system I’m working on — hence why I can safely just delete things, screw it all up, and try and fix it �� Trying to get a much better understanding of the Ubuntu/Linux architecture and playing around at the minute.

Утилита ip Linux

Если вы начинающий системный администратор, думаю, вам понадобится утилита ip. Она позволяет посмотреть сетевые интерфейсы и IP адреса им присвоенные, посмотреть и настроить таблицу маршрутизации, включать или отключать сетевые интерфейсы, управлять маршрутизацией и ARP, а также многое другое.

Раньше вместо неё использовалось несколько других утилит, одна из них — ipconfig. Однако потом им на замену пришла ip. Сейчас она уже поставляется во всех дистрибутивах, а со временем старые утилиты будут удалены, поэтому разобраться с ней стоит.

Синтаксис и опции утилиты ip

Сначала рассмотрим синтаксис команды. Утилита довольно многофункциональная, поэтому и синтаксис её вызова непростой:

$ ip [опции] объект команда [параметры]

Опции — это глобальные настройки, которые сказываются на работе всей утилиты независимо от других аргументов, их указывать необязательно.

  • объект — это тип данных, с которым надо будет работать, например: адреса, устройства, таблица arp, таблица маршрутизации и так далее;
  • команды — какое-либо действие с объектом;
  • параметры — само собой, командам иногда нужно передавать параметры, они передаются в этом пункте.

Дальше рассмотрим все еще более подробно:

  • -v, -Version — только вывод информации об утилите и ее версии.
  • -h, -human — выводить данные в удобном для человека виде.
  • -s, -stats — включает вывод статистической информации.
  • -d, —details — показывать ещё больше подробностей.
  • -f, -family — позволяет указать протокол, с которым нужно работать, если протокол не указан, то берется на основе параметров команды. Опция должна принимать одно из значений: bridge, dnet, inet, inet6, ipx или link. По умолчанию используется inet, link — означает отсутствие протокола.
  • -o, -oneline — выводить каждую запись с новой строки.
  • -r,-resolve — определять имена хостов с помощью DNS.
  • -a, -all — применить команду ко всем объектам.
  • -c, -color — позволяет настроить цветной, доступные значения: auto, always и never.
  • -br, -brief — выводить только базовую информацию для удобства чтения.
  • -4 — короткая запись для -f inet.
  • -6 — короткая запись для -f inet-f inet6.
  • -B — короткая запись для -f inet-f bridge.
  • -0 — короткая запись для -f inet -f link.

Теперь давайте рассмотрим самые важные объекты.

Конечно, это не все объекты которые поддерживает команда ip Linux, но на первое время вам хватит. Во время ввода имя объекта может быть сокращено до одной буквы. При неоднозначности используется алфавитный порядок. Например, ip a show, расшифровывается как ip address show. Тогда как в ip r show, r — означает route.

Теперь рассмотрим доступные команды, с помощью которых может быть выполнена настройка сети linux. Они зависят от объекта, к которому будут применяться. Вот основные команды: add, change, del или delete, flush, get, list или show, monitor, replace, restore, save, set, и update. Если команда не задана, по умолчанию используется show (показать).

Здесь тоже поддерживается сокращение и в большинстве случаев для выполнения нужного действия достаточно нескольких символов. Но алфавитный порядок соблюдается не всегда. Например, ip a s, означает ip address show, а не ip address set, к сожалению.

Примеры использования ip

Вот теперь мы дошли к самому интересному — примерам использования утилиты ip Linux. То что я здесь опишу на самом деле лишь маленькая капля из всего того что может утилита ip.

1. Просмотр IP адресов

Чтобы посмотреть все IP адреса, связанные с сетевыми интерфейсами используйте такую команду:

Для просмотра информации в кратком виде используйте опцию -br:

Можно посмотреть IP адреса только по определённому сетевому интерфейсу, например: enp0s3:

ip a show enp0s3

ip a show dev enp0s3

Можно отобразить только статические IP адреса:

ip a show dev enp0s3 permanent

Или только динамические:

ip a show dev enp0s3 dynamic

2. Добавление IP адреса

Чтобы присвоить IP адрес для устройства нужно использовать команду add. Её общий синтаксис такой:

$ ip addr add IP_адрес / маска dev интерфейс

Например, давайте присвоим тому же интерфейсу enp0s3 IP адрес 10.0.2.100 с маской подсети 255.255.255.0:

ip addr add 10.0.2.100/255.255.255.0 dev enp0s3

Маску можно указать и в сокращённом виде:

ip addr add 10.0.2.100/24 dev enp0s3

3. Удаление IP адреса

Чтобы удалить IP адрес из интерфейса надо использовать команду del. Синтаксис её очень похож на предыдущую команду. Например, удалим IP адрес 10.0.2.100:

ip addr del 10.0.2.100/255.255.255.0 dev enp0s3

Можно удалять IP адреса по одному или удалить все сразу с помощью команды flush:

Или же можно удалить адреса только определённой подсети:

sudo ip a flush to 10.0.2.0/24

Если вы будете применять эти команды к интерфейсу, с помощью которого у вас работает сеть, то сеть пропадёт и чтобы её вернуть надо будет перезагрузить сетевые службы.

4. Список интерфейсов

Чтобы посмотреть список сетевых интерфейсов используйте объект link:

5. Включение или выключение интерфейсов

Для решения этой задачи тоже используется объект link, но с командой set. Синтаксис её такой:

$ ip link set dev интерфейс действие

В качестве действия можно использовать up или down. Например, чтобы отключить интерфейс enp0s3 выполните:

ip link set dev enp0s3 down

А чтобы включить его обратно:

ip link set dev enp0s3 up

6. Настройка MTU

Параметр MTU означает размер одного пакета, передаваемого по сети. Этот размер можно изменить с помощью команды set. Например, увеличим MTU для enp0s3 до 4000 тысяч байт:

ip link set mtu 4000 dev enp0s3

7. Настройка MAC адреса

Адрес MAC — это физический адрес, который используется для определения какому устройству надо передать сетевой пакет в локальной сети. Прежде чем настраивать MAC адрес ваше устройство надо отключить:

sudo ip link set dev enp0s3 down

Затем можно установить адрес:

sudo ip link set dev enp0s3 address AA:BB:CC:DD:EE:FF

А потом включить интерфейс обратно:

sudo ip link set dev enp0s3 up

8. Таблица ARP

Именно протокол ARP отвечает за преобразование IP адресов в низкоуровневые MAC адреса. Для того чтобы не отправлять ARP запросы каждый раз в сеть, кэш хранится в таблице ARP на протяжении 20-ти минут. Чтобы посмотреть содержимое таблицы ARP используйте такую команду:

9. Добавление записи в таблицу ARP

Обычно записи в эту таблицу попадают автоматически, но вы можете добавить их и вручную. Для этого используйте команду add объекта neigh:

sudo ip neigh add 192.168.0.105 lladdr b0:be:76:43:21:41 dev enp0s3

В этом примере я заставил компьютер думать, что узел с IP 192.168.0.105 это 192.168.0.1. Теперь можно попытаться выполнить ping по этому адресу и оно будет работать, несмотря на то, что реально такого узла в сети нет.

10. Очистка таблицы ARP

Вы можете удалять IP адреса по одному с помощью команды del:

sudo ip neigh del dev enp0s3 192.168.0.105

Можно удалить все записи для определённого сетевого интерфейса:

ip neigh flush dev enp0s3

Или очистить таблицу полностью командой flush:

11. Просмотр таблицы маршрутизации

Для просмотра таблицы маршрутизации используйте объект route и команду show:

12. Добавление маршрута

Синтаксис добавления нового маршрута в таблицу маршрутизации такой:

$ ip route add подсеть / маска via шлюз

Вместо шлюза можно указать сетевой интерфейс с помощью которого надо отправлять пакеты:

$ ip route add подсеть / маска dev устройство

Например, добавим новый маршрут для сети через тот же IP адрес:

sudo ip route add 169.255.0.0 via 169.254.19.153

Или можно указать сетевой интерфейс через который надо отправлять пакеты для определённой сети:

sudo ip route add 169.255.0.0 dev enp0s3

13. Удаление маршрута

Удалить маршрут можно командой с аналогичным синтаксисом, только вместо add надо использовать del:

sudo ip route del 169.255.0.0 via 169.254.19.153

Выводы

Вот и подошла к завершению наша статья. Надеюсь, утилита ip Linux уже не кажется такой непонятной. Если у вас есть вопросы или хотите предложить ещё какие-нибудь примеры, пишите комментарии!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Как настроить сеть на Linux Mint

Всегда рекомендуется выполнить некоторые важные настройки сети во время работы с операционной системой, прежде чем использовать Интернет на любом устройстве. Эти настройки сделаны, чтобы гарантировать, что ваш Интернет работает без сбоев и со всеми протоколами, которые вы хотите. Кроме того, если у вас медленный Интернет или у вас возникают проблемы с подключением к нему, вы всегда должны проверять параметры сети, чтобы убедиться, что что-то не так.

Точно так же, как сетевой администратор, ваша основная ответственность заключается в отслеживании нескольких действий в сети, а конфигурация сети позволяет им отслеживать любые изменения, влияющие на производительность сети. Администраторы могут сократить время простоя сети, используя программное обеспечение для отслеживания изменений. Если обновление системы снижает производительность сети, вы можете вернуться к предыдущей конфигурации, которая работала нормально.

Linux Mint хорошо известен своей мощностью, надежностью и безопасностью. Конфигурация сети — это комплексный процесс, который включает в себя настройку средств управления сетью, управление сетевым трафиком и эксплуатацию сети для облегчения сетевого взаимодействия. В этой статье будут рассмотрены некоторые основные детали, необходимые для настройки вашей сети.

Как найти свой IP-адрес на Linux Mint

Перед настройкой сети лучше сначала узнать свой собственный IP-адрес, чтобы потом при необходимости сбросить его, набрав.

После ввода этой команды вы найдете свой IP-адрес во второй точке, которая является портом конфигурации сети ens33, который можно увидеть на изображении.

Вы также можете проверить свой IP-адрес в сетевых настройках, для чего вам нужно щелкнуть меню и выбрать Сетевые настройки.

Как выполнить настройку сети в Linux Mint с помощью настроек сети

Вашей системе будет назначен IP-адрес по умолчанию, который в настоящее время доступен из сетевого пула. Вы можете настроить свою сеть, зайдя в настройки сети, которые вы можете найти в строке меню, как показано ниже. После этого вам нужно щелкнуть в правом нижнем углу «значок шестеренки», чтобы открыть для вас настройки сети.

Затем вам нужно щелкнуть вкладку IPv4, и там вы увидите, что ваша сеть по умолчанию настроена на «Протокол динамического управления хостом (DHCP)», и там также можно увидеть некоторые другие параметры.

DHCP используется для автоматического предоставления IP-адреса, но если вы хотите настроить параметры сети вручную, вам необходимо установить для него значение «Вручную» в раскрывающемся меню.

Теперь вы можете настроить свою сеть вручную и вам нужно будет указать значения для сетевого адреса. Например, значения, которые мы выбрали в нашем случае, указаны ниже.

Адрес: 192.168.114.100

Сетевая маска: 255.255.255.0

Шлюз: 192.168.114.2

DNS: 8.8.8.8

После ввода требуемых значений необходимо нажать кнопку «Применить», после чего будут применены новые настройки.

Теперь проверьте новые настройки, и для этого вам нужно снова открыть настройки сети, и там вы увидите эту новую информацию:

Как настроить вашу сеть с помощью утилиты NMTUI

Вы можете проверить свой текущий сетевой IP-адрес на терминале или в сетевых настройках. Чтобы проверить это с терминала, вы можете ввести:

Чтобы настроить вашу сеть с помощью утилиты NMTUI, вам необходимо использовать приведенную ниже команду:

В терминале откроется новое окно с несколькими опциями, как показано ниже. Вам нужно выбрать опцию «Редактировать соединение», чтобы настроить сеть.

После выбора этой опции вам необходимо выбрать сетевое соединение и щелкнуть вкладку «Редактировать».

Выберите вкладку IPv4 и затем настройки «Вручную»:

Это откроет для вас все необходимые настройки, которые требуются для настройки сети. Здесь мы реализовали те же сетевые настройки, которые упоминались в предыдущей части, как показано ниже.

После применения настроек следующий шаг — вернуться в главное меню и выбрать опцию «Активировать соединение»:

Чтобы активировать вновь примененные настройки, вам необходимо деактивировать сетевое соединение, а затем снова активировать его.

Это обновит ваши сетевые настройки, чтобы можно было применить новые настройки, а позже вы также можете проверить это, снова набрав ранее обсужденную команду в терминале.

Как сбросить настройки сети

Чтобы сбросить все сетевые настройки, используйте:

«INPUT» и «OUTPUT» — это цепочки, состоящие из правил для входящих и исходящих соединений, где опция «F» предназначена для сброса:

И опция «P», чтобы установить политику для целевой цепочки:

Затем выполните команду, указанную ниже:

А теперь перезагрузите вашу систему, используя:

Как настроить входящий и исходящий трафик

Если вы хотите настроить свою сеть, чтобы разрешить или заблокировать ее для связи с внешним миром, вы можете сделать это, настроив брандмауэр. Один из способов сделать это — установить несложный брандмауэр (UFW), и вы можете сделать это, набрав.

После его установки вам необходимо убедиться, что ваш брандмауэр включен и в настоящее время активен, набрав

Теперь, если вы хотите разрешить или запретить какой-либо конкретный порт для связи, вы можете сделать это, набрав

А позже вы можете проверить, были ли эти правила реализованы или нет, набрав еще раз.

Таким же образом вы также можете отключить любой сетевой порт, набрав.

Вывод

После того, как вы настроите сетевое соединение в соответствии с вашими предпочтениями, у вас не будет никаких проблем с использованием Интернета на вашем Linux Mint. Кроме того, если вы когда-нибудь почувствуете, что какая-либо из ваших конфигураций была испорчена, вы всегда можете вернуться к настройкам сети и исправить проблему так же, как мы описали в этой статье. Следуя этому подходу, вы не только улучшите свои знания в области сетевых технологий, но также сможете самостоятельно решить большинство проблем, связанных с сетью.

Похожие публикации:

  1. Alt linux как добавить пользователя в группу
  2. Dirbuster kali linux как пользоваться
  3. Postgres где хранятся базы linux
  4. Как выйти из mc linux

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *