- Настройка сети из консоли в Ubuntu
- Как работает сеть?
- Настройка сети через терминал в Ubuntu
- Настройка динамического получения IP-адреса
- Настройка статического адреса Ubuntu
- Ручная настройка сети в Ubuntu
- Получение IP-адреса по DHCP
- Настройка статического IP
- Настройка DNS
- Выводы
- Нет проводного соединения — Проводная неуправляемая Ubuntu 18.04
Настройка сети из консоли в Ubuntu
В Ubuntu подключение к сети настраивается с помощью сервиса Network Manager. Чтобы подключиться к сети, достаточно пару раз кликнуть мышкой, выбрать соединение — и готово. То же самое, и даже ещё проще, при использовании проводного соединения — тут интернет подключается автоматически, как только загрузился апплет.
Но не всегда доступен графический интерфейс: после неудачной установки драйвера или очередного обновления не запускается графическая оболочка, а на серверах она и вовсе не используется. В этой небольшой инструкции будет разобрана настройка сети Ubuntu из консоли. Мы поговорим о том, как настроить получение IP-адреса по DHCP, а также настроить работу DNS. Рассмотрим ручную и автоматическую настройку, также попробуем сделать это через системные конфигурационные файлы.
Как работает сеть?
Перед тем, как перейти к самим командам, давайте немного разберёмся в теории работы сети. Это нужно, чтобы вы не просто выполнили какие-то непонятные команды, а поняли всю суть того, что мы будем делать и как выполняется настройка локальной сети Ubuntu.
Компьютеры обмениваются между собой информацией с помощью пакетов. Все данные в сети интернет передаются с помощью пакетов небольшого размера. Если не углубляться в подробности, то каждый пакет содержит адрес отправителя, адрес получателя и сами данные. Эти адреса есть не что иное, как привычные нам IP-адреса. Кроме IP, у компьютера есть физический адрес, который используется для общения между компьютерами в локальной сети. Это MAC-адрес? и задается он производителем сетевой карты.
Как только компьютер подключился к сети, независимо от того проводное это соединение или беспроводное, он может общаться только с компьютерами в локальной сети и только по физическим адресам. Для того, чтобы получить доступ в Глобальную сеть, машине в ней нужно получить IP-адрес. Для этого используется протокол DHCP. Если кратко: наш компьютер спрашивает все компьютеры в локальной сети, кто здесь DHCP-сервер, DHCP ему отвечает и выдаёт IP-адрес. Таким же образом компьютер узнаёт IP маршрутизатора, через который он может получить доступ к Сети, а затем пытается найти DNS-серверы или узнать стандартные у маршрутизатора. С теорией разобрались, перейдем к практике.
Настройка сети через терминал в Ubuntu
Тут мы рассмотрим автоматическую настройку сети для Ubuntu 16.04 без Network Manager с помощью стандартных скриптов системы, которые остались от Upstart и пока всё ещё используются. Давайте сначала определим, какие шаги нам нужно предпринять, чтобы всё заработало:
- Включаем сетевой интерфейс и подключаемся к сети;
- Устанавливаем IP-адрес;
- Получаем адреса DNS-серверов.
Собственно, готово. Эти шаги очень символичны, потом что система всё сделает за нас сама. Нам нужно только выполнить нужные настройки. Но сначала давайте посмотрим, какие сетевые интерфейсы подключены к системе. Мне нравится команда:
Но если хотите, можете использовать ifconfig:
В нашей системе только один интерфейс — это enp0s3, есть еще lo, но он виртуальный и указывает на эту машину.
Настройки сети находятся в файле /etc/network/interfaces.
Нас будут интересовать в этом файле строчки auto и iface. Первая указывает, что нужно активировать интерфейс при загрузке, вторая же определяет настройки самого интерфейса.
Настройка динамического получения IP-адреса
Добавьте в этот файл такие строки, чтобы запускать интерфейс при загрузке и получать IP-адрес автоматически по DHCP:
auto enp0s3
iface enp0s3 inet dhcp
Синтаксис строки auto прост. Он состоит из самой команды и имени сетевого интерфейса. Рассмотрим подробнее:
$ iface интерфейс inet тип
Тип получения IP-адреса может иметь несколько значений, но нас в этой статье будут интересовать только два: dhcp и static.
После завершения настройки сохраните файл и перезапустите сетевой сервис:
sudo service networking restart
Всё, если сетевой кабель подключён, и вы всё сделали правильно, Сеть будет работать.
Настройка статического адреса Ubuntu
При настройке статического IP-адреса компьютер не будет связываться с DHCP-сервером, поэтому здесь придётся указать намного больше параметров.
Содержимое нашего конфигурационного файла будет выглядеть вот так:
auto eth0
iface eth0 inet static
address 192.168.1.7
gateway 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
С первыми двумя строчками все понятно, а следующие задают параметры настройки интерфейса:
- address — наш IP-адрес;
- gateway — шлюз, через который будем получать доступ в интернет;
- netmask — маска сети;
- network — адрес сети, имеет тот же адрес, что и шлюз, только с нулем вместо единицы;
- broadcast — широковещательный адрес сети, отправленный на него пакет придет всем компьютерам локальной сети.
Как видите, network и broadcast — это первый и последний IP-адреса сети. Теперь сохраните файл и перезапустите сеть:
sudo service networking restart
Если все параметры были указаны правильно, всё будет работать. Но если допущена хоть одна ошибка, доступ к сети вы не получите.
Это была автоматическая настройка локальной сети Гbuntu, но я ещё расскажу, как всё сделать вручную, без конфигурационных файлов.
Ручная настройка сети в Ubuntu
Предыдущий вариант хорош, если вы собираетесь его использовать постоянно, но если нужно только один раз настроить сеть через терминал, то редактировать конфигурационные файлы необязательно. Мы можем всё сделать с помощью команды ip. Дальше будет рассмотрена настройка сети вручную Ubuntu.
Эта команда используется для управления сетью и входит во все дистрибутивы по умолчанию.
Как и в предыдущем примере, смотрим сетевые интерфейсы:
После того, как мы узнали интерфейс, можно переходить к настройке.
Получение IP-адреса по DHCP
Сначала включаем интерфейс:
sudo ip link set enp0s3 up
Затем с помощью команды dhclient запрашиваем ip:
Всё, настройка сети Ubuntu 16.04 завершена, у нас есть IP-адрес, и осталось только настроить DNS, но это мы рассмотрим ниже.
Настройка статического IP
sudo ip link set enp0s3 up
Устанавливаем IP-адрес, маску сети и broadcast-адрес для нашего интерфейса:
sudo ip addr add 192.168.1.7/255.255.255.0 broadcast 192.168.1.255 dev enp0s3
sudo ip route add default via 192.168.1.1
Здесь 192.168.1.7 — наш IP-адрес, 255.255.255.0 — маска сети, 192.168.1.255 — широковещательный адрес. Замените эти значения на свои.
Как видите, сеть работает. Если хотите поэкспериментировать на машине с рабочей сетью, её можно сбросить командой:
sudo ip -4 addr flush dev enp0s3
Настройка DNS
Служба DNS используется для преобразования доменных имен сайтов в IP-адреса. При получении IP-адреса автоматически через DHCP мы используем правильные DNS-серверы, но если мы выбрали статический IP, то DNS можно и не получить, поэтому придётся сделать всё вручную.
Если вам нужно настроить DNS так, чтобы он не сбивался после перезагрузки, необходимо использовать систему настройки сети Ubuntu. Для этого откройте файл /etc/network/interfaces и добавьте в него строчку после директив для нужного интерфейса:
Здесь 8.8.8.8 и 4.4.4.4 это IP-адреса DNS серверов, можете заменить их на свои. И можно использовать один, а не два. Дальше сохраните файл и перезапустите сеть:
sudo service networking restart
Если же вам нужно настроить DNS только для этого сеанса, то добавьте строчку в /etc/resolv.conf
nameserver 8.8.8.8
nameserver 4.4.4.4
После сохранения файла сеть будет работать полностью так, как нужно. Но последний способ пригоден только до перезагрузки, поскольку файл /etc/resolv.conf генерируется автоматически.
Выводы
В этой статье была рассмотрена настройка сети Ubuntu из консоли. Я пытался не просто показать команды, с помощью которых это можно сделать, но и объяснить, как это работает. Теперь вы будете знать, что нужно делать, если у вас нет доступа к графическому интерфейсу, но срочно нужно попасть в сеть. Если остались вопросы, пишите в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Нет проводного соединения — Проводная неуправляемая Ubuntu 18.04
Я недавно обновился до Ubuntu 18.04, но у меня проблемы с проводным подключением. Прежде всего, я должен сказать, что Wi-Fi соединение работает нормально.
Когда я запускаю компьютер, у меня даже не появляется значок проводной сети. Заходя в настройки / Параметры сети, я ничего не вижу в проводном соединении (только VPN и прокси).
Таким образом я попытался понять, что происходит, и использовал несколько разных команд:
~$ lshw -C network WARNING: you should run this program as super-user. *-network description: Wireless interface product: Wireless 8265 / 8275 vendor: Intel Corporation physical id: 0 bus info: [email protected]:01:00.0 logical name: wlp1s0 version: 78 serial: 00:28:f8:f8:80:b8 width: 64 bits clock: 33MHz capabilities: bus_master cap_list ethernet physical wireless configuration: broadcast=yes driver=iwlwifi driverversion=4.15.0- 22-generic firmware=34.0.1 ip=10.4.26.243 latency=0 link=yes multicast=yes wireless=IEEE 802.11 resources: irq:144 memory:dc100000-dc101fff *-network DISABLED description: Ethernet interface physical id: 2 logical name: enx3c18a070d46d serial: 3c:18:a0:70:d4:6d size: 1Gbit/s capacity: 1Gbit/s capabilities: ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=r8152 driverversion=v1.09.9 duplex=full link=no multicast=yes port=MII speed=1Gbit/s
Тогда я решил включить интерфейс Ethernet следующим образом
sudo ip link set enx3c18a070d46d up
Результат команды «lshw» больше не показывает DISABLED. Значок проводного подключения вернулся, но все еще не подключен к Интернету, и теперь показывает следующее сообщение
Мне было бы очень интересно, если у кого-нибудь из вас есть представление о том, как решить эту проблему.
Наконец, вот результаты нескольких команд (обратите внимание, что ifconfig устарел в Ubuntu 18.04)
~$ ip link show 1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: wlp1s0: mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000 link/ether 00:28:f8:f8:80:b8 brd ff:ff:ff:ff:ff:ff 3: enx3c18a070d46d: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 3c:18:a0:70:d4:6d brd ff:ff:ff:ff:ff:ff ~$ ip addr show 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: wlp1s0: mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:28:f8:f8:80:b8 brd ff:ff:ff:ff:ff:ff inet 10.4.26.243/23 brd 10.4.27.255 scope global dynamic noprefixroute wlp1s0 valid_lft 42269sec preferred_lft 42269sec inet6 fe80::11e5:2546:9014:171b/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: enx3c18a070d46d: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 3c:18:a0:70:d4:6d brd ff:ff:ff:ff:ff:ff inet6 fe80::3e18:a0ff:fe70:d46d/64 scope link valid_lft forever preferred_lft forever