Настройка сети: различия между версиями
(Перенаправление на Настройка сетевой карты, краткое пособие для начинающих) |
Valrust (обсуждение | вклад) м (Исправлена ошибка в команде) |
||
(не показано 5 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
# | == Общая информация о сетевых настройках системы == | ||
[[ | |||
=== Имя компьютера === | |||
Имя хоста хранится в файле {{path|/etc/hostname}}. В файле также может храниться доменное имя системы, если таковое имеется. | |||
Просмотреть имя компьютера можно, выполнив команду: | |||
<syntaxhighlight lang="bash">$ hostname | |||
pbs.test.alt</syntaxhighlight> | |||
либо | |||
<syntaxhighlight lang="bash">$ cat /etc/hostname | |||
pbs</syntaxhighlight> | |||
Изменение имени компьютера: | |||
<syntaxhighlight lang="bash"># hostnamectl set-hostname new.test.alt</syntaxhighlight> | |||
Утилита {{cmd|hostname}} позволяет задать имя компьютера временно, до первой перезагрузки: | |||
<syntaxhighlight lang="bash"># hostname new.test.alt</syntaxhighlight> | |||
=== Сетевые карты === | |||
Список доступных сетевых карт: | |||
<syntaxhighlight lang="bash">$ lspci | grep -i 'net' | |||
00:14.3 Network controller: Intel Corporation Alder Lake-P PCH CNVi WiFi (rev 01) | |||
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (16) I219-V (rev 01)</syntaxhighlight> | |||
Более подробная информация о сетевых картах: | |||
<syntaxhighlight lang="bash">$ lspci -v | grep -i 'net' -A 6 | |||
00:14.3 Network controller: Intel Corporation Alder Lake-P PCH CNVi WiFi (rev 01) | |||
Subsystem: Intel Corporation Wi-Fi 6 AX201 160MHz | |||
Flags: bus master, fast devsel, latency 0, IRQ 16 | |||
Memory at 601d1cc000 (64-bit, non-prefetchable) [size=16K] | |||
Capabilities: <access denied> | |||
Kernel driver in use: iwlwifi | |||
-- | |||
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (16) I219-V (rev 01) | |||
Subsystem: Lenovo Device 50a0 | |||
Flags: bus master, fast devsel, latency 0, IRQ 166 | |||
Memory at ae400000 (32-bit, non-prefetchable) [size=128K] | |||
Capabilities: <access denied> | |||
Kernel driver in use: e1000e | |||
</syntaxhighlight> | |||
Обратите внимание, последняя строка это ''модуль'' ядра, который использует ваша сетевая карта. | |||
Просмотреть модель сетевого адаптера и используемый драйвер также можно с помощью команды {{cmd|inxi}} (должен быть установлен пакет {{pkg|inxi}}): | |||
<syntaxhighlight lang="bash">$ inxi -N | |||
Network: | |||
Device-1: Intel Alder Lake-P PCH CNVi WiFi driver: iwlwifi | |||
Device-2: Intel Ethernet I219-V driver: e1000e</syntaxhighlight> | |||
Чтобы проверить, был ли драйвер загружен, можно выполнить команду {{cmd|dmesg}}: | |||
<syntaxhighlight lang="bash"># dmesg | grep iwlwifi | |||
[ 6.400593] iwlwifi 0000:00:14.3: enabling device (0000 -> 0002) | |||
[ 6.423137] iwlwifi 0000:00:14.3: loaded firmware version 72.daa05125.0 so-a0-hr-b0-72.ucode op_mode iwlmvm | |||
[ 6.492488] iwlwifi 0000:00:14.3: Detected Intel(R) Wi-Fi 6 AX201 160MHz, REV=0x370 | |||
… | |||
[ 6.688421] iwlwifi 0000:00:14.3 wlp0s20f3: renamed from wlan0</syntaxhighlight> | |||
<syntaxhighlight lang="bash"># dmesg | grep e1000e | |||
[ 6.268828] e1000e: Intel(R) PRO/1000 Network Driver | |||
… | |||
[ 6.701757] e1000e 0000:00:1f.6 enp0s31f6: renamed from eth0 | |||
[ 10.215301] e1000e 0000:00:1f.6 enp0s31f6: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx | |||
Rx/Tx</syntaxhighlight> | |||
[[Udev]] назначает имена сетевых интерфейсов в соответствии со схемой именования, в которой тип устройства обозначается двухбуквенным префиксом: en (проводной/Ethernet), wl (беспроводной/WLAN) или ww (WWAN). | |||
Смена имени интерфейса описана в разделе [[NetworkDevicesName|Именование сетевых интерфейсов]]. | |||
Имена как проводных, так и беспроводных интерфейсов можно узнать, выполнив команду {{cmd|ip link}}: | |||
<syntaxhighlight lang="bash"> | |||
$ ip link | |||
1: lo: <LOOPBACK,UP,LOWER_UP> 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: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 | |||
link/ether 9c:2d:cd:6f:c4:a3 brd ff:ff:ff:ff:ff:ff | |||
3: wlp0s20f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000 | |||
link/ether 3c:21:9c:ae:56:d3 brd ff:ff:ff:ff:ff:ff</syntaxhighlight> | |||
Префиксом lo обозначается петлевое устройство, которое не используется для сетевых соединений. | |||
Включение и выключение интерфейса производится командой {{cmd|ip link set интерфейс up|down}}. | |||
=== Получение информации о сетевых настройках === | |||
=== IP-адрес === | |||
Для получения информации о сетевом адресе компьютера, воспользуемся командой {{cmd|ip addr show}} либо кратким вариантом этой же команды {{cmd|ip a}}: | |||
<syntaxhighlight lang="bash">$ ip addr show | |||
1: lo: <LOOPBACK,UP,LOWER_UP> 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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 | |||
link/ether 08:00:27:87:a2:24 brd ff:ff:ff:ff:ff:ff | |||
inet 192.168.0.123/24 brd 192.168.0.255 scope global noprefixroute enp0s3 | |||
valid_lft forever preferred_lft forever | |||
inet6 fd47:d11e:43c1:0:a00:27ff:fe87:a224/64 scope global dynamic mngtmpaddr | |||
valid_lft forever preferred_lft forever | |||
inet6 fe80::a00:27ff:fe87:a224/64 scope link | |||
valid_lft forever preferred_lft forever</syntaxhighlight> | |||
где: | |||
* <tt>enp0s3</tt> — имя сетевого интерфейса; | |||
* <tt>link/ether 08:00:27:87:a2:24</tt> — MAC-адрес сетевой карты; | |||
* <tt>inet 192.168.0.123/24</tt> — IP-адрес. | |||
Если сетевой кабель не будет физически подключен к разъему сетевой карты, в выводе команды {{cmd|ip a}} появится слово '''NO-CARRIER''': | |||
<syntaxhighlight lang="bash">$ ip a | |||
… | |||
2: enp0s3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000 | |||
link/ether 08:00:27:87:a2:24 brd ff:ff:ff:ff:ff:ff | |||
inet 192.168.0.123/24 brd 192.168.0.255 scope global noprefixroute enp0s3 | |||
</syntaxhighlight> | |||
Команда {{cmd|ethtool имя_интерфейса}} покажет некоторые характеристики, с которыми работает сетевая карта: | |||
<syntaxhighlight lang="bash"># ethtool enp0s3 | |||
Settings for enp0s3: | |||
Supported ports: [ TP ] | |||
Supported link modes: 10baseT/Half 10baseT/Full | |||
100baseT/Half 100baseT/Full | |||
1000baseT/Full | |||
Supported pause frame use: No | |||
Supports auto-negotiation: Yes | |||
Supported FEC modes: Not reported | |||
Advertised link modes: 10baseT/Half 10baseT/Full | |||
100baseT/Half 100baseT/Full | |||
1000baseT/Full | |||
Advertised pause frame use: No | |||
Advertised auto-negotiation: Yes | |||
Advertised FEC modes: Not reported | |||
Speed: 1000Mb/s | |||
Duplex: Full | |||
Auto-negotiation: on | |||
Port: Twisted Pair | |||
PHYAD: 1 | |||
Transceiver: internal | |||
MDI-X: on (auto) | |||
Supports Wake-on: pumbg | |||
Wake-on: g | |||
Current message level: 0x00000007 (7) | |||
drv probe link | |||
Link detected: yes | |||
</syntaxhighlight> | |||
Посредством команды {{cmd|ethtool}} также можно изменять эти характеристики. | |||
=== Шлюз по умолчанию === | |||
Таблица маршрутизации определяет, можно ли связаться с удалённым хостом напрямую или нужно использовать какой-то шлюз (маршрутизатор). Если подходящего маршрута в таблице нет, то используется шлюз по умолчанию. | |||
Команда {{cmd|ip route show}} (или ее краткий вариант {{cmd|ip r}}) покажет шлюз: | |||
<syntaxhighlight lang="bash">$ ip route show | |||
default via 192.168.0.1 dev enp0s3 proto static metric 100 | |||
192.168.0.0/24 dev enp0s3 proto kernel scope link src 192.168.0.123 metric 100</syntaxhighlight> | |||
=== Ping === | |||
Для проверки достижимости узла используется утилита {{cmd|ping}}: | |||
<syntaxhighlight lang="bash">$ ping altlinux.org | |||
PING altlinux.org (194.107.17.137) 56(84) bytes of data. | |||
64 bytes from jabber.altlinux.org (194.107.17.137): icmp_seq=1 ttl=58 time=31.6 ms | |||
64 bytes from jabber.altlinux.org (194.107.17.137): icmp_seq=2 ttl=58 time=31.6 ms | |||
64 bytes from jabber.altlinux.org (194.107.17.137): icmp_seq=3 ttl=58 time=31.6 ms | |||
64 bytes from jabber.altlinux.org (194.107.17.137): icmp_seq=4 ttl=58 time=31.4 ms | |||
64 bytes from jabber.altlinux.org (194.107.17.137): icmp_seq=5 ttl=58 time=31.4 ms | |||
64 bytes from jabber.altlinux.org (194.107.17.137): icmp_seq=6 ttl=58 time=31.6 ms | |||
^C | |||
--- altlinux.org ping statistics --- | |||
6 packets transmitted, 6 received, +1 errors, 0% packet loss, time 5010ms | |||
rtt min/avg/max/mdev = 31.359/31.523/31.637/0.101 ms</syntaxhighlight> | |||
Для остановки используйте <Ctrl>+<C>. | |||
== Конфигурирование интерфейса == | |||
Варианты управления сетевыми настройками интерфейсов в ОС «Альт»: | |||
* [[Etcnet]] — настройки берутся исключительно из файлов находящихся в каталоге настраиваемого интерфейса {{path|/etc/net/ifaces/<интерфейс>}}. Настройки сети могут изменяться либо в [[ЦУС]] (модуль [[Alterator-net-eth|Ethernet-интерфейсы]]), либо напрямую через редактирование файлов {{path|/etc/net/ifaces/<интерфейс>}}. | |||
* [[NetworkManager|Network Manager]] — обеспечивает базовые операции с сетевыми интерфейсами. Управлять настройками можно через графический интерфейс (nm-applet) или консольный инструмент {{cmd|nmcli}}. Файлы с настройками находятся в каталоге {{path|/etc/NetworkManager/system-connections}}. | |||
* [[Systemd-networkd|systemd-networkd]] — системная служба для управления сетевыми настройками. Её задачей является обнаружение и настройка сетевых устройств по мере их появления, а также создание виртуальных сетевых устройств. Настройки находятся в каталоге {{path|/etc/systemd/network/}}. При стандартной установке ОС «Альт» эта служба (пакет {{pkg|systemd-networkd}}) не устанавливается. | |||
В модуле [[ЦУС]] [[Alterator-net-eth|Ethernet-интерфейсы]] можно выбрать, какой именно интерфейс какой подсистемой обслуживается. | |||
=== Название интерфейсов Ethernet === | |||
Эссе на тему имён: https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/<br> | |||
Частичное изложение статьи на русском: [[NetworkDevicesName]]. | |||
Вкратце. Ядро именует интерфейсы в виде eth0, eth1 и так далее, но делает это случайным образом, если сетевых карт более одной (есть исключения, зависящие от драйвера сетевой карты, либо от последовательности загрузки драйверов, если сетевые карты разные). С некоторых пор разработчики systemd, которые подмяли под себя в том числе и [[udev]], решили именовать интерфейсы иначе, надеясь на то, что имена будут постоянными (они ошиблись: есть зависимость от ядра {{altbug|28955#c32}}, есть зависимость от физического количества сетевых карт). | |||
Если не хочется использовать псевдопостоянные имена интерфейсов вида enp*, можно настроить переименование интерфейсов посредством [[udev]]. Это или механизм link-файлов, или обычные правила [[udev]]. Для генерации правил именования в зависимости от MAC-адреса существует пакет {{pkgL|udev-rule-generator-net}}, который создаёт файл {{path|/etc/udev/rules.d/70-persistent-net.rules}}. При этом использовать имена вида ethN не рекомендуется из-за того, что может получиться коллизия ({{altbug|32167}}, {{pkgL|udev-rule-generator-net}} использует etherN начиная {{since|1.5-alt1}}). | |||
=== Etcnet === | |||
Более подробно про настройку сети с помощью [[Etcnet]] можно [[Etcnet|почитать тут]]. | |||
Настройки сети могут изменяться либо в [[ЦУС]] (модуль [[Alterator-net-eth|Ethernet-интерфейсы]]), либо напрямую через редактирование файлов {{path|/etc/net/ifaces/<интерфейс>}}. | |||
Файлы настройки сети для интерфейса enp0s3: | |||
<syntaxhighlight lang="bash"># ls -1 /etc/net/ifaces/enp0s3 | |||
ipv4address | |||
ipv4route | |||
options | |||
resolv.conf</syntaxhighlight> | |||
где: | |||
* файл {{path|ipv4address}} — содержит IP-адрес с длиной маски; | |||
* файл {{path|ipv4route}} — содержит маршрут по умолчанию; | |||
* файл {{path|options}} — содержит настройки конфигурации; | |||
* файл {{path|resolv.conf}} — содержит DNS-сервер. | |||
Пример содержимого файла {{path|/etc/net/ifaces/enp0s3/options}}: | |||
<syntaxhighlight lang="ini"> | |||
BOOTPROTO=dhcp | |||
TYPE=eth | |||
NM_CONTROLLED=no | |||
DISABLED=no | |||
CONFIG_WIRELESS=no | |||
SYSTEMD_BOOTPROTO=dhcp4 | |||
CONFIG_IPV4=yes | |||
SYSTEMD_CONTROLLED=no | |||
ONBOOT=yes | |||
CONFIG_IPV6=no | |||
</syntaxhighlight> | |||
Параметр ''BOOTPROTO'' отвечает за способ получения сетевой картой сетевого адреса и может принимать значения: | |||
* <tt>static</tt> — адреса и маршруты будут взяты из файлов {{path|ipv4address}} и {{path|ipv4route}}; | |||
* <tt>dhcp</tt> — интерфейс будет сконфигурирован по DHCP; | |||
* <tt>ipv4ll</tt> — интерфейс будет сконфигурирован с помощью IPv4LL (link-local). Это значит, что из сети 169.254.0.0/16 (169.254.0.1-169.254.255.254) будет подобран ещё не использованный адрес и назначен на интерфейс. | |||
Для настройки статического IP-адреса для интерфейса enp0s3 необходимо изменить запись <tt>BOOTPROTO=dhcp</tt> на <tt>BOOTPROTO=static</tt> в файле {{path|/etc/net/ifaces/enp0s3/option}}. | |||
Затем нужно задать IP-адрес и маску сети, например 192.168.0.48/255.255.255.0, для этого в файл {{path|/etc/net/ifaces/enp0s3/ipv4address}} запишем параметры соединения: | |||
<syntaxhighlight lang="bash"># echo 192.168.0.48/24 > /etc/net/ifaces/enp0s3/ipv4address</syntaxhighlight> | |||
{{Note| Если файл не существовал, он будет создан, иначе — его содержимое будет перезаписано.}} | |||
Если сетевая карта предполагает наличие двух IP-адресов, то в файл {{path|ipv4address}} следует добавить ещё один адрес (обратите внимание на то, что используется ">>" вместо ">"; с ">" файл перезапишется, с ">>" вывод предыдущей команды будет дописан в конец файла): | |||
<syntaxhighlight lang="bash"># echo 192.168.0.148/24 >> /etc/net/ifaces/enp0s3/ipv4address</syntaxhighlight> | |||
Далее запишем в файл {{path|/etc/net/ifaces/enp0s3/ipv4route}} имя шлюза по умолчанию (например, 192.168.0.1): | |||
<syntaxhighlight lang="bash"># echo default via 192.168.0.1 > /etc/net/ifaces/enp0s3/ipv4route</syntaxhighlight> | |||
Если необходимо, можно создать файл с описанием dns-сервера {{path|/etc/net/ifaces/enp0s3/resolv.conf}}: | |||
<syntaxhighlight lang="bash"># echo nameserver 192.168.0.9 > /etc/net/ifaces/enp0s3/resolv.conf</syntaxhighlight> | |||
Если у вас два dns (второй, например, 192.168.1.9), то его описание также нужно добавить в этот файл: | |||
<syntaxhighlight lang="bash"># echo nameserver 192.168.1.9 >> /etc/net/ifaces/enp0s3/resolv.conf</syntaxhighlight> | |||
Для применения настроек необходимо перезапустить сеть: | |||
<syntaxhighlight lang="bash"># systemctl restart network</syntaxhighlight> | |||
IP-адрес, маску и шлюз можно изменить командами <tt>ip addr {add|change|replace|del } …</tt> и <tt>ip route {add|del|change|append|replace} …</tt>. Например: | |||
<syntaxhighlight lang="bash"># addr add 192.168.0.140/24 dev enp0s3 | |||
# ip route add dev enp0s3 192.168.0.240</syntaxhighlight> | |||
Однако эти команды изменяют конфигурацию сети до ближайшей перезагрузки компьютера. Для постоянного изменения нужно отредактировать файлы, о которых говорилось выше. | |||
=== Network Manager === | |||
Более подробно про настройку сети с помощью [[NetworkManager]] можно [[NetworkManager|почитать тут]]. | |||
Пример настройки сетевого интерфейса enp0s3 в Network Manager, если он раньше управлялся Etcnet: | |||
# Внести изменения в файл {{path|/etc/net/ifaces/enp0s3/options}}: | |||
#: <syntaxhighlight lang="ini"> | |||
BOOTPROTO=static | |||
TYPE=eth | |||
NM_CONTROLLED=yes | |||
DISABLED=yes | |||
CONFIG_WIRELESS=no | |||
SYSTEMD_BOOTPROTO=static | |||
CONFIG_IPV4=yes | |||
SYSTEMD_CONTROLLED=no | |||
ONBOOT=yes | |||
CONFIG_IPV6=no | |||
</syntaxhighlight> | |||
# Удалить файл {{path|/etc/net/ifaces/enp0s3/ipv4address}}: | |||
#:<syntaxhighlight lang="bash"># rm -rf /etc/net/ifaces/enp0s3/ipv4address</syntaxhighlight> | |||
# Перезапустить службы {{cmd|network}} {{cmd|NetworkManager}}: | |||
#:<syntaxhighlight lang="bash"># systemctl restart network | |||
# systemctl restart NetworkManager</syntaxhighlight> | |||
# Просмотреть статус интерфейсов: | |||
#:<syntaxhighlight lang="bash">$ nmcli general status | |||
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN | |||
подключено полностью missing включено missing включено</syntaxhighlight> | |||
# Создать новое подключение с именем native_enp0s3 с DHCP: | |||
#:<syntaxhighlight lang="bash"># nmcli connection add con-name "native_enp0s3" type ethernet ifname enp0s3 | |||
Подключение «native» (f3635967-1d55-47c9-8ed2-e68d737c572d) успешно добавлено.</syntaxhighlight> | |||
# Активировать подключение: | |||
#:<syntaxhighlight lang="bash"># nmcli connection up native_enp0s3 | |||
Подключение успешно активировано (активный путь D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/4)</syntaxhighlight> | |||
# Просмотреть состояние подключения: | |||
#:<syntaxhighlight lang="bash">$ nmcli connection show native_enp0s3</syntaxhighlight> | |||
Если необходимо, изменить подключение native_enp0s3 с DHCP на Static: | |||
<syntaxhighlight lang="bash"># nmcli connection modify native_enp0s3 connection.autoconnect yes ipv4.method manual ipv4.address 192.168.0.40/24 ipv4.gateway 192.168.0.1 ipv4.dns 192.168.0.4 ipv4.dns-search test.alt | |||
# nmcli connection up native_enp0s3</syntaxhighlight> | |||
где: | |||
* <tt>connection.autoconnect yes</tt> — поднимать соединение при загрузке системы; | |||
* <tt>ipv4.method manual</tt> — соединение статическое; | |||
* <tt>ipv4.addresses</tt> — IP-адрес и маска; | |||
* <tt>ipv4.gateway</tt> — IP-адрес шлюза; | |||
* <tt>ipv4.dns</tt> — IP-адрес DNS-сервера; | |||
* <tt>ipv4.dns-search</tt> — домен поиска. | |||
Содержимое конфигурационного файла {{path|/etc/NetworkManager/system-connections/native_enp0s3.nmconnection}}: | |||
<syntaxhighlight lang="ini"> | |||
[connection] | |||
id=native_enp0s3 | |||
uuid=bfafb5ea-6915-4f89-844c-d53b19477d80 | |||
type=ethernet | |||
interface-name=enp0s3 | |||
timestamp=1697205960 | |||
[ethernet] | |||
[ipv4] | |||
address1=192.168.0.41/24,192.168.0.1 | |||
dns=192.168.0.4; | |||
dns-search=test.alt; | |||
method=manual | |||
[ipv6] | |||
addr-gen-mode=default | |||
method=auto | |||
[proxy] | |||
</syntaxhighlight> | |||
=== Systemd-networkd === | |||
Более подробно про настройку сети можно [[Systemd-networkd|почитать тут]]. | |||
Для использования службы systemd-networkd следует остановить все остальные службы управления сетевыми интерфейсами: | |||
<syntaxhighlight lang="bash"># systemctl disable --now network NetworkManager && systemctl enable --now systemd-networkd</syntaxhighlight> | |||
== Проверка подключения == | |||
Если у вас возникли проблемы с подключением к сети, необходимо убедиться, что: | |||
# Сетевой интерфейс [[#Сетевые карты|обнаружен и включён]]. | |||
# Есть подключение к сети: подключён сетевой кабель или есть подключение к беспроводной сети. | |||
# Сетевому интерфейсу присвоен [[#Получение информации о настройках сети|IP-адрес]]. | |||
# Правильно настроена [[#Шлюз по умолчанию|таблица маршрутизации]]. | |||
# Доступен локальный IP-адрес ([[#Ping|пропинговать]], например, шлюз по умолчанию). | |||
# Доступен публичный IP-адрес ([[#Ping|пропинговать]], например, 8.8.8.8 — DNS-сервер Google Public DNS). | |||
# Работает [[Ресолвер|разрешение доменных имён]] ([[#Ping|пропинговать]], например, altinux.org). | |||
{{Category navigation|title=Использование оборудования|category=использование оборудования|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 18:30, 7 июля 2024
Общая информация о сетевых настройках системы
Имя компьютера
Имя хоста хранится в файле /etc/hostname. В файле также может храниться доменное имя системы, если таковое имеется.
Просмотреть имя компьютера можно, выполнив команду:
$ hostname
pbs.test.alt
либо
$ cat /etc/hostname
pbs
Изменение имени компьютера:
# hostnamectl set-hostname new.test.alt
Утилита hostname позволяет задать имя компьютера временно, до первой перезагрузки:
# hostname new.test.alt
Сетевые карты
Список доступных сетевых карт:
$ lspci | grep -i 'net'
00:14.3 Network controller: Intel Corporation Alder Lake-P PCH CNVi WiFi (rev 01)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (16) I219-V (rev 01)
Более подробная информация о сетевых картах:
$ lspci -v | grep -i 'net' -A 6
00:14.3 Network controller: Intel Corporation Alder Lake-P PCH CNVi WiFi (rev 01)
Subsystem: Intel Corporation Wi-Fi 6 AX201 160MHz
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at 601d1cc000 (64-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: iwlwifi
--
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (16) I219-V (rev 01)
Subsystem: Lenovo Device 50a0
Flags: bus master, fast devsel, latency 0, IRQ 166
Memory at ae400000 (32-bit, non-prefetchable) [size=128K]
Capabilities: <access denied>
Kernel driver in use: e1000e
Обратите внимание, последняя строка это модуль ядра, который использует ваша сетевая карта.
Просмотреть модель сетевого адаптера и используемый драйвер также можно с помощью команды inxi (должен быть установлен пакет inxi):
$ inxi -N
Network:
Device-1: Intel Alder Lake-P PCH CNVi WiFi driver: iwlwifi
Device-2: Intel Ethernet I219-V driver: e1000e
Чтобы проверить, был ли драйвер загружен, можно выполнить команду dmesg:
# dmesg | grep iwlwifi
[ 6.400593] iwlwifi 0000:00:14.3: enabling device (0000 -> 0002)
[ 6.423137] iwlwifi 0000:00:14.3: loaded firmware version 72.daa05125.0 so-a0-hr-b0-72.ucode op_mode iwlmvm
[ 6.492488] iwlwifi 0000:00:14.3: Detected Intel(R) Wi-Fi 6 AX201 160MHz, REV=0x370
…
[ 6.688421] iwlwifi 0000:00:14.3 wlp0s20f3: renamed from wlan0
# dmesg | grep e1000e
[ 6.268828] e1000e: Intel(R) PRO/1000 Network Driver
…
[ 6.701757] e1000e 0000:00:1f.6 enp0s31f6: renamed from eth0
[ 10.215301] e1000e 0000:00:1f.6 enp0s31f6: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
Rx/Tx
Udev назначает имена сетевых интерфейсов в соответствии со схемой именования, в которой тип устройства обозначается двухбуквенным префиксом: en (проводной/Ethernet), wl (беспроводной/WLAN) или ww (WWAN).
Смена имени интерфейса описана в разделе Именование сетевых интерфейсов.
Имена как проводных, так и беспроводных интерфейсов можно узнать, выполнив команду ip link:
$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> 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: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 9c:2d:cd:6f:c4:a3 brd ff:ff:ff:ff:ff:ff
3: wlp0s20f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
link/ether 3c:21:9c:ae:56:d3 brd ff:ff:ff:ff:ff:ff
Префиксом lo обозначается петлевое устройство, которое не используется для сетевых соединений.
Включение и выключение интерфейса производится командой ip link set интерфейс up.
Получение информации о сетевых настройках
IP-адрес
Для получения информации о сетевом адресе компьютера, воспользуемся командой ip addr show либо кратким вариантом этой же команды ip a:
$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> 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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:87:a2:24 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.123/24 brd 192.168.0.255 scope global noprefixroute enp0s3
valid_lft forever preferred_lft forever
inet6 fd47:d11e:43c1:0:a00:27ff:fe87:a224/64 scope global dynamic mngtmpaddr
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe87:a224/64 scope link
valid_lft forever preferred_lft forever
где:
- enp0s3 — имя сетевого интерфейса;
- link/ether 08:00:27:87:a2:24 — MAC-адрес сетевой карты;
- inet 192.168.0.123/24 — IP-адрес.
Если сетевой кабель не будет физически подключен к разъему сетевой карты, в выводе команды ip a появится слово NO-CARRIER:
$ ip a
…
2: enp0s3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 08:00:27:87:a2:24 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.123/24 brd 192.168.0.255 scope global noprefixroute enp0s3
Команда ethtool имя_интерфейса покажет некоторые характеристики, с которыми работает сетевая карта:
# ethtool enp0s3
Settings for enp0s3:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
MDI-X: on (auto)
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
Посредством команды ethtool также можно изменять эти характеристики.
Шлюз по умолчанию
Таблица маршрутизации определяет, можно ли связаться с удалённым хостом напрямую или нужно использовать какой-то шлюз (маршрутизатор). Если подходящего маршрута в таблице нет, то используется шлюз по умолчанию.
Команда ip route show (или ее краткий вариант ip r) покажет шлюз:
$ ip route show
default via 192.168.0.1 dev enp0s3 proto static metric 100
192.168.0.0/24 dev enp0s3 proto kernel scope link src 192.168.0.123 metric 100
Ping
Для проверки достижимости узла используется утилита ping:
$ ping altlinux.org
PING altlinux.org (194.107.17.137) 56(84) bytes of data.
64 bytes from jabber.altlinux.org (194.107.17.137): icmp_seq=1 ttl=58 time=31.6 ms
64 bytes from jabber.altlinux.org (194.107.17.137): icmp_seq=2 ttl=58 time=31.6 ms
64 bytes from jabber.altlinux.org (194.107.17.137): icmp_seq=3 ttl=58 time=31.6 ms
64 bytes from jabber.altlinux.org (194.107.17.137): icmp_seq=4 ttl=58 time=31.4 ms
64 bytes from jabber.altlinux.org (194.107.17.137): icmp_seq=5 ttl=58 time=31.4 ms
64 bytes from jabber.altlinux.org (194.107.17.137): icmp_seq=6 ttl=58 time=31.6 ms
^C
--- altlinux.org ping statistics ---
6 packets transmitted, 6 received, +1 errors, 0% packet loss, time 5010ms
rtt min/avg/max/mdev = 31.359/31.523/31.637/0.101 ms
Для остановки используйте <Ctrl>+<C>.
Конфигурирование интерфейса
Варианты управления сетевыми настройками интерфейсов в ОС «Альт»:
- Etcnet — настройки берутся исключительно из файлов находящихся в каталоге настраиваемого интерфейса /etc/net/ifaces/<интерфейс>. Настройки сети могут изменяться либо в ЦУС (модуль Ethernet-интерфейсы), либо напрямую через редактирование файлов /etc/net/ifaces/<интерфейс>.
- Network Manager — обеспечивает базовые операции с сетевыми интерфейсами. Управлять настройками можно через графический интерфейс (nm-applet) или консольный инструмент nmcli. Файлы с настройками находятся в каталоге /etc/NetworkManager/system-connections.
- systemd-networkd — системная служба для управления сетевыми настройками. Её задачей является обнаружение и настройка сетевых устройств по мере их появления, а также создание виртуальных сетевых устройств. Настройки находятся в каталоге /etc/systemd/network/. При стандартной установке ОС «Альт» эта служба (пакет systemd-networkd) не устанавливается.
В модуле ЦУС Ethernet-интерфейсы можно выбрать, какой именно интерфейс какой подсистемой обслуживается.
Название интерфейсов Ethernet
Эссе на тему имён: https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
Частичное изложение статьи на русском: NetworkDevicesName.
Вкратце. Ядро именует интерфейсы в виде eth0, eth1 и так далее, но делает это случайным образом, если сетевых карт более одной (есть исключения, зависящие от драйвера сетевой карты, либо от последовательности загрузки драйверов, если сетевые карты разные). С некоторых пор разработчики systemd, которые подмяли под себя в том числе и udev, решили именовать интерфейсы иначе, надеясь на то, что имена будут постоянными (они ошиблись: есть зависимость от ядра altbug #28955#c32, есть зависимость от физического количества сетевых карт).
Если не хочется использовать псевдопостоянные имена интерфейсов вида enp*, можно настроить переименование интерфейсов посредством udev. Это или механизм link-файлов, или обычные правила udev. Для генерации правил именования в зависимости от MAC-адреса существует пакет udev-rule-generator-net, который создаёт файл /etc/udev/rules.d/70-persistent-net.rules. При этом использовать имена вида ethN не рекомендуется из-за того, что может получиться коллизия (altbug #32167, udev-rule-generator-net использует etherN начиная с версии 1.5-alt1 ).
Etcnet
Более подробно про настройку сети с помощью Etcnet можно почитать тут.
Настройки сети могут изменяться либо в ЦУС (модуль Ethernet-интерфейсы), либо напрямую через редактирование файлов /etc/net/ifaces/<интерфейс>.
Файлы настройки сети для интерфейса enp0s3:
# ls -1 /etc/net/ifaces/enp0s3
ipv4address
ipv4route
options
resolv.conf
где:
- файл ipv4address — содержит IP-адрес с длиной маски;
- файл ipv4route — содержит маршрут по умолчанию;
- файл options — содержит настройки конфигурации;
- файл resolv.conf — содержит DNS-сервер.
Пример содержимого файла /etc/net/ifaces/enp0s3/options:
BOOTPROTO=dhcp
TYPE=eth
NM_CONTROLLED=no
DISABLED=no
CONFIG_WIRELESS=no
SYSTEMD_BOOTPROTO=dhcp4
CONFIG_IPV4=yes
SYSTEMD_CONTROLLED=no
ONBOOT=yes
CONFIG_IPV6=no
Параметр BOOTPROTO отвечает за способ получения сетевой картой сетевого адреса и может принимать значения:
- static — адреса и маршруты будут взяты из файлов ipv4address и ipv4route;
- dhcp — интерфейс будет сконфигурирован по DHCP;
- ipv4ll — интерфейс будет сконфигурирован с помощью IPv4LL (link-local). Это значит, что из сети 169.254.0.0/16 (169.254.0.1-169.254.255.254) будет подобран ещё не использованный адрес и назначен на интерфейс.
Для настройки статического IP-адреса для интерфейса enp0s3 необходимо изменить запись BOOTPROTO=dhcp на BOOTPROTO=static в файле /etc/net/ifaces/enp0s3/option.
Затем нужно задать IP-адрес и маску сети, например 192.168.0.48/255.255.255.0, для этого в файл /etc/net/ifaces/enp0s3/ipv4address запишем параметры соединения:
# echo 192.168.0.48/24 > /etc/net/ifaces/enp0s3/ipv4address
Если сетевая карта предполагает наличие двух IP-адресов, то в файл ipv4address следует добавить ещё один адрес (обратите внимание на то, что используется ">>" вместо ">"; с ">" файл перезапишется, с ">>" вывод предыдущей команды будет дописан в конец файла):
# echo 192.168.0.148/24 >> /etc/net/ifaces/enp0s3/ipv4address
Далее запишем в файл /etc/net/ifaces/enp0s3/ipv4route имя шлюза по умолчанию (например, 192.168.0.1):
# echo default via 192.168.0.1 > /etc/net/ifaces/enp0s3/ipv4route
Если необходимо, можно создать файл с описанием dns-сервера /etc/net/ifaces/enp0s3/resolv.conf:
# echo nameserver 192.168.0.9 > /etc/net/ifaces/enp0s3/resolv.conf
Если у вас два dns (второй, например, 192.168.1.9), то его описание также нужно добавить в этот файл:
# echo nameserver 192.168.1.9 >> /etc/net/ifaces/enp0s3/resolv.conf
Для применения настроек необходимо перезапустить сеть:
# systemctl restart network
IP-адрес, маску и шлюз можно изменить командами ip addr {add|change|replace|del } … и ip route {add|del|change|append|replace} …. Например:
# addr add 192.168.0.140/24 dev enp0s3
# ip route add dev enp0s3 192.168.0.240
Однако эти команды изменяют конфигурацию сети до ближайшей перезагрузки компьютера. Для постоянного изменения нужно отредактировать файлы, о которых говорилось выше.
Network Manager
Более подробно про настройку сети с помощью NetworkManager можно почитать тут.
Пример настройки сетевого интерфейса enp0s3 в Network Manager, если он раньше управлялся Etcnet:
- Внести изменения в файл /etc/net/ifaces/enp0s3/options:
BOOTPROTO=static TYPE=eth NM_CONTROLLED=yes DISABLED=yes CONFIG_WIRELESS=no SYSTEMD_BOOTPROTO=static CONFIG_IPV4=yes SYSTEMD_CONTROLLED=no ONBOOT=yes CONFIG_IPV6=no
- Удалить файл /etc/net/ifaces/enp0s3/ipv4address:
# rm -rf /etc/net/ifaces/enp0s3/ipv4address
- Перезапустить службы network NetworkManager:
# systemctl restart network # systemctl restart NetworkManager
- Просмотреть статус интерфейсов:
$ nmcli general status STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN подключено полностью missing включено missing включено
- Создать новое подключение с именем native_enp0s3 с DHCP:
# nmcli connection add con-name "native_enp0s3" type ethernet ifname enp0s3 Подключение «native» (f3635967-1d55-47c9-8ed2-e68d737c572d) успешно добавлено.
- Активировать подключение:
# nmcli connection up native_enp0s3 Подключение успешно активировано (активный путь D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/4)
- Просмотреть состояние подключения:
$ nmcli connection show native_enp0s3
Если необходимо, изменить подключение native_enp0s3 с DHCP на Static:
# nmcli connection modify native_enp0s3 connection.autoconnect yes ipv4.method manual ipv4.address 192.168.0.40/24 ipv4.gateway 192.168.0.1 ipv4.dns 192.168.0.4 ipv4.dns-search test.alt
# nmcli connection up native_enp0s3
где:
- connection.autoconnect yes — поднимать соединение при загрузке системы;
- ipv4.method manual — соединение статическое;
- ipv4.addresses — IP-адрес и маска;
- ipv4.gateway — IP-адрес шлюза;
- ipv4.dns — IP-адрес DNS-сервера;
- ipv4.dns-search — домен поиска.
Содержимое конфигурационного файла /etc/NetworkManager/system-connections/native_enp0s3.nmconnection:
[connection]
id=native_enp0s3
uuid=bfafb5ea-6915-4f89-844c-d53b19477d80
type=ethernet
interface-name=enp0s3
timestamp=1697205960
[ethernet]
[ipv4]
address1=192.168.0.41/24,192.168.0.1
dns=192.168.0.4;
dns-search=test.alt;
method=manual
[ipv6]
addr-gen-mode=default
method=auto
[proxy]
Systemd-networkd
Более подробно про настройку сети можно почитать тут.
Для использования службы systemd-networkd следует остановить все остальные службы управления сетевыми интерфейсами:
# systemctl disable --now network NetworkManager && systemctl enable --now systemd-networkd
Проверка подключения
Если у вас возникли проблемы с подключением к сети, необходимо убедиться, что:
- Сетевой интерфейс обнаружен и включён.
- Есть подключение к сети: подключён сетевой кабель или есть подключение к беспроводной сети.
- Сетевому интерфейсу присвоен IP-адрес.
- Правильно настроена таблица маршрутизации.
- Доступен локальный IP-адрес (пропинговать, например, шлюз по умолчанию).
- Доступен публичный IP-адрес (пропинговать, например, 8.8.8.8 — DNS-сервер Google Public DNS).
- Работает разрешение доменных имён (пропинговать, например, altinux.org).