Настройка сети
Автоматическое определение параметров сети
Может быть, всё уже работает?
Если система подключена к сети Ethernet, в которой есть DHCP-сервер, весьма вероятно, что конфигурация сетевых настроек уже была выполнена автоматически. Если это так, то различные сетевые команды с установочного носителя (например: ssh, scp, ping, irssi, wget, links и многие другие) сразу же будут работать.
Определение имен сетевых интерфейсов
Команда ifconfig
Если сеть была настроена, команда ifconfig должна отобразить один или несколько сетевых интерфейсов (кроме lo). В примере ниже показан eth0:
root #
ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:BA:8F:61:7A inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::50:ba8f:617a/10 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1498792 errors:0 dropped:0 overruns:0 frame:0 TX packets:1284980 errors:0 dropped:0 overruns:0 carrier:0 collisions:1984 txqueuelen:100 RX bytes:485691215 (463.1 Mb) TX bytes:123951388 (118.2 Mb) Interrupt:11 Base address:0xe800
В результате перехода на предсказуемые имена для сетевых интерфейсов название интерфейса может отличаться от старого соглашения о именовании (eth0). В последних установочных носителях сетевые интерфейсы могут отображаться по-другому, например eno0, ens1 или enp5s0. Поищите интерфейс в выводе команды ifconfig IP-адрес которого связан с локальной сетью.
Если в выводе ifconfig нет интерфейсов, попробуйте использовать ту же команду с параметром
-a
. Это параметр выводит все обнаруженные системой сетевые интерфейсы, независимо от их состояния. Если ifconfig -a не даёт никаких результатов, значит либо аппаратное обеспечение неисправно, либо драйвер для сетевого интерфейса не был загружен в ядро. Обе ситуации не рассматриваются данным Руководством. Обратитесь в #gentoo (webchat) для поддержки.Команда ip
Взамен ifconfig для определения сетевых интерфейсов можно использовать ip. В следующем примере показан вывод ip addr (вывод с другой системы, так что показанная информация отличается от предыдущего примера):
root #
ip addr
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether e8:40:f2:ac:25:7a brd ff:ff:ff:ff:ff:ff inet 10.0.20.77/22 brd 10.0.23.255 scope global eno1 valid_lft forever preferred_lft forever inet6 fe80::ea40:f2ff:feac:257a/64 scope link valid_lft forever preferred_lft forever
В приведённом выше примере имя интерфейса следует непосредственно после номера: это eno1.
В оставшейся части данного документа будет считаться, что рабочий сетевой интерфейс называется eth0.
Дополнительно: настройка прокси
Если доступ к Интернету осуществляется через прокси-сервер, необходимо указать настройки прокси во время установки. Указать прокси очень просто: определите переменную, содержащую информацию о прокси-сервере.
Certain text-mode web browsers such as links can also make use of environment variables that define web proxy settings; in particular for the HTTPS access it also will require the https_proxy environment variable to be defined. While Portage will be influenced without passing extra run time parameters during invocation, links will require proxy settings to be set.
В большинстве случаев, достаточно указать переменные с использованием имени сервера. В этом примере мы предположим, что прокси-сервером является proxy.gentoo.org, доступным на порту 8080.
The
#
symbol in the following commands is a comment. It has een added for clarity only and does not need to be typed when entering the commands.Определение HTTP-прокси (для HTTP- и HTTPS-трафика):
root #
export http_proxy="http://proxy.gentoo.org:8080" # Применяется для portage и ссылок
root #
export https_proxy="http://proxy.gentoo.org:8080" # Применяется только для ссылок
Если для HTTP-прокси требуется аутентификация, установить имя пользователя и пароль с помощью следующей команды:
root #
export http_proxy="http://username:password@proxy.gentoo.org:8080" # Применяется для portage и ссылок
root #
export https_proxy="http://username:password@proxy.gentoo.org:8080" # Применяется только для ссылок
Start links using the following parameters for proxy support:
user $
links -http-proxy ${http_proxy} -https-proxy ${https_proxy}
Настройка FTP-прокси:
root #
export ftp_proxy="ftp://proxy.gentoo.org:8080" # Применяется для portage и ссылок
Start links using the following parameter for a FTP proxy:
user $
links -ftp-proxy ${ftp_proxy}
Настройка RSYNC-прокси:
root #
export RSYNC_PROXY="proxy.gentoo.org:8080" # Применяется для portage; ссылки не поддерживают прокси rsync
Проверка сети
Попробуйте проверить DNS-сервер своего провайдера (его адрес можно найти в /etc/resolv.conf) и любой веб-сайт. Эта проверка покажет, что сеть функционирует в полном объёме, и сетевые пакеты достигают сети, разрешение имён работает правильно и так далее.
root #
ping -c 3 www.gentoo.org
Если всё работает правильно, то оставшуюся часть главы можно пропустить и перейти сразу к следующему шагу (Подготовка дисков).
Автоматическая конфигурация сети
Если сеть не работает с первого раза, то в некоторых установочных носителях есть утилиты net-setup (для обычных и беспроводных сетей), pppoe-setup (для пользователей ADSL) или pptp (для пользователей PPTP).
Если же в установочном носителе нет этих утилит, продолжайте чтение с раздела Ручная конфигурация сети.
- Пользователям обычной сети Ethernet следует продолжить чтение с раздела По умолчанию: использование net-setup
- Пользователям ADSL следует продолжить чтение с раздела Альтернатива: использование PPP
- Пользователям PPTP следует продолжить чтение с раздела Альтернатива: использование PPTP
По умолчанию: использование net-setup
Простейшим способом настроить сеть (если она не была настроена автоматически) является запуск сценария net-setup:
root #
net-setup eth0
net-setup задаст несколько вопросов о сетевом окружении. Когда всё будет готово, сетевое подключение должно заработать. Проверьте подключение, как это было показано выше. Если все проверки успешны, поздравляем! Пропустите оставшуюся часть раздела и продолжите с раздела Подготовка дисков.
Если сеть всё равно не работает, продолжайте чтение с раздела Ручная конфигурация сети.
Альтернатива: использование PPP
На случай, когда для подключения к Интернету требуется PPPoE, для упрощения настройки в установочный CD любой версии были добавлены программы, включая ppp. Для настройки подключения воспользуйтесь сценарием pppoe-setup. Во время настройки будут запрошены устройство Ethernet, к которому подключен ADSL-модем, имя и пароль, IP-адреса DNS-серверов и, если требуется, базовая настройка брандмауэра.
root #
pppoe-setup
root #
pppoe-start
Если что-то пошло не так, то повторно проверьте правильность имени и пароля в файлах /etc/ppp/pap-secrets или /etc/ppp/chap-secrets и убедитесь, что используется правильное устройство Ethernet. Если устройство Ethernet не существует, проверьте, загружены ли необходимые сетевые модули. В этом случае перейдите к разделу Ручная конфигурация сети, в котором описан процесс загрузки подходящих модулей.
Если всё работает, то продолжайте чтение с раздела Подготовка дисков.
Альтернатива: использование PPTP
Для обеспечения работы PPTP на установочном CD присутствует сценарий pptpclient. Но сначала убедитесь, что конфигурация правильная. Отредактируйте /etc/ppp/pap-secrets или /etc/ppp/chap-secrets так, что бы в них была правильная комбинация имени и пароля:
root #
nano -w /etc/ppp/chap-secrets
При необходимости проверьте /etc/ppp/options.pptp:
root #
nano -w /etc/ppp/options.pptp
Когда всё будет сделано, запустите pptp (вместе с параметрами, которые могут быть установлены в options.pptp) для подключения к серверу:
root #
pptp <server ipv4 address>
Продолжайте чтение с раздела Подготовка дисков.
Ручная конфигурация сети
Загрузка сетевых модулей ядра
Когда установочный CD загружается, он пытается обнаружить все устройства и пытается загрузить подходящие модули ядра (драйверы) для их поддержки. В подавляющем большинстве случаев этого достаточно. Тем не менее, в некоторых случаях он может не загрузить нужные драйвера для сетевого оборудования.
Если net-setup или pppoe-setup завершились ошибкой, возможно, что сетевая карта не была найдена. Это означает, что может понадобиться загрузить соответствующие модули ядра вручную.
Чтобы узнать, какие есть модули ядра для сетей, используйте команду ls:
root #
ls /lib/modules/`uname -r`/kernel/drivers/net
Если драйвер сетевого устройства присутствует, то для его загрузки используйте modprobe. Например, для загрузки модуля pcnet32:
root #
modprobe pcnet32
Чтобы проверить, определилась ли сетевая карта, наберите ifconfig. Если сетевая карта определилась, то результат будет выглядеть так (опять же, eth0 это только пример):
root #
ifconfig eth0
eth0 Link encap:Ethernet HWaddr FE:FD:00:00:00:00 BROADCAST NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Если показано сообщение об ошибке, то сетевая карта не определена:
root #
ifconfig eth0
eth0: error fetching interface information: Device not found
Имена доступных сетевых интерфейсов в системе можно увидеть через файловую систему /sys:
root #
ls /sys/class/net
dummy0 eth0 lo sit0 tap0 wlan0
В примере выше найдено 6 интерфейсов. eth0, скорее всего, проводной Ethernet-адаптер, а wlan0 — беспроводной.
Исходя из того, что сетевая карта была обнаружена, повторите net-setup или pppoe-setup снова (скорее всего они будут работать), но, для тех, кто хочет сделать всё самостоятельно, мы опишем, как настроить сеть вручную.
Выберите один из следующих разделов, в зависимости от настроек сети:
- Использование DHCP для автоматической настройки IP
- Подготовка беспроводного доступа, если используется беспроводная сеть
- Сетевая терминология объясняет основные понятия сети
- Использование ifconfig и route объясняет, как настроить сеть вручную
Использование DHCP
DHCP (Dynamic Host Configuration Protocol) позволяет автоматически получать данные о сети (IP-адрес, маску подсети, широковещательный адрес, шлюз, сервера имен и прочее). Данный сценарий возможен только в том случае, если в сети присутствует DHCP-сервер (или если Интернет-провайдер предоставляет службу DHCP). Чтобы сетевой интерфейс получал эти сведения автоматически, используйте dhcpcd:
root #
dhcpcd eth0
Некоторые сетевые администраторы требуют, чтобы имя узла и домена, назначенное сервером DHCP, использовались самой системой. В этом случае используйте:
root #
dhcpcd -HD eth0
Если это сработало (попробуйте опросить командой ping какой-нибудь сервер в Интернете, например, 8.8.8.8 компании Google или 1.1.1.1 Cloudflare), то всё установлено, и можно продолжать. Пропустите оставшуюся часть раздела и приступайте к Подготовке дисков.
Подготовка беспроводного доступа
Поддержка команды iw может быть архитектурно-зависимой. Если команда недоступна, проверьте, доступен ли пакет net-wireless/iw для данной архитектуры. Команда iw будет не доступна, если пакет net-wireless/iw не был установлен.
Беспроводные карты (стандарта 802.11) перед использованием необходимо предварительно настроить. Для отображения текущих настроек можно воспользоваться командой iw, вывод которой может быть таким:
root #
iw dev wlp9s0 info
Interface wlp9s0 ifindex 3 wdev 0x1 addr 00:00:00:00:00:00 type managed wiphy 0 channel 11 (2462 MHz), width: 20 MHz (no HT), center1: 2462 MHz txpower 30.00 dBm
Чтобы проверить текущее подключение:
root #
iw dev wlp9s0 link
Not connected.
или
root #
iw dev wlp9s0 link
Connected to 00:00:00:00:00:00 (on wlp9s0) SSID: GentooNode freq: 2462 RX: 3279 bytes (25 packets) TX: 1049 bytes (7 packets) signal: -23 dBm tx bitrate: 1.0 MBit/s
Некоторые беспроводные карты могут иметь имена wlan0 или ra0 вместо wlp9s0. Запустите ip link, чтобы определить правильное имя устройства.
В большинстве случаев, для подключения необходимо только два параметра: ESSID (название беспроводной сети) и ключ WEP (необязательно).
- Сперва удостоверьтесь, что интерфейс включён:
root #
ip link set dev wlp9s0 up
- Чтобы подключиться к открытой сети с именем GentooNode:
root #
iw dev wlp9s0 connect -w GentooNode
- Чтобы подключиться с шестнадцатеричным ключом WEP, добавьте к нему префикс
d:
:
root #
iw dev wlp9s0 connect -w GentooNode key 0:d:1234123412341234abcd
- Чтобы подключиться с ключом ASCII WEP:
root #
iw dev wlp9s0 connect -w GentooNode key 0:some-password
Если в беспроводной сети применяются протоколы WPA или WPA2, то необходимо использовать wpa_supplicant. Больше информации по настройке беспроводной сети в Gentoo Linux можно прочитать в разделе Беспроводная сеть Руководства Gentoo.
Для подтверждения беспроводных настроек используйте iw dev wlp9s0 link. Как только беспроводная сеть заработает, продолжите настройку сетевых параметров, как описано в следующем разделе (Сетевая терминология) или с помощью инструмента net-setup, как описано ранее.
Сетевая терминология
Если IP-адрес, широковещательный адрес, сетевая маска и сервера имён известны, то пропустите этот раздел и продолжайте с Использование ifconfig и route.
Если вышеперечисленные попытки были неудачными, то придётся настроить сеть вручную. Это совсем нетрудно. Однако для этого понадобятся некоторые знания и основные понятия в области сетевой терминологии. Прочитав данный раздел, вы узнаете, что такое шлюз, зачем нужна маска подсети, как формируется широковещательный адрес и почему системе нужны серверы имён.
В сети узлы идентифицируются по их IP-адресам (Internet Protocol адрес). Такой адрес воспринимается как сочетание четырех чисел от 0 до 255 (по крайней мере, при при использовании IP версии 4). В действительности IPv4-адрес состоит из 32 бит (единиц и нулей). Давайте рассмотрим пример:
IP-адрес (числа): 192.168.0.2
IP-адрес (биты): 11000000 10101000 00000000 00000010
-------- -------- -------- --------
192 168 0 2
В IPv6, преемнике IPv4, используется 128 бит (единиц и нулей). Данный раздел посвящён исключительно адресам IPv4.
Такой IP-адрес уникален для узла в рамках всех доступных сетей (то есть каждый доступный узел в сети должен иметь уникальный IP-адрес). Для того, чтобы различать узлы, находящиеся внутри и извне сети, IP-адрес состоит из двух частей: сетевой части и части узла.
Разделение записывается с помощью маски подсети — набора единиц и следующих за ними нулей. Часть IP-адреса, которая может быть отображена на единицы, является сетевой частью, другая часть — узла. Обычно, маска подсети записываться в виде IP-адреса.
IP-адрес: 192 168 0 2
11000000 10101000 00000000 00000010
Маска: 11111111 11111111 11111111 00000000
255 255 255 0
+--------------------------+--------+
Сеть Узел
Другими словами, 192.168.0.14 является частью сети, а 192.168.1.2 таковым не является.
Широковещательный адрес — это IP-адрес, у которого сетевая часть такая же, как у сети, а в часть узла записаны единицы. Каждый узел в сети прослушает этот IP-адрес. Он предназначен для широковещательной рассылки пакетов.
IP-адрес: 192 168 0 2
11000000 10101000 00000000 00000010
Широковещательный адрес: 11000000 10101000 00000000 11111111
192 168 0 255
+--------------------------+--------+
Сеть Узел
Чтобы иметь возможность выходить в глобальную сеть, каждый компьютер в сети должен знать, через какой узел происходит подключение к Интернету. Этот узел называется шлюзом. Так как это обычный узел, у него есть обычный IP-адрес (например, 192.168.0.1).
Ранее мы говорили, что каждый узел имеет свой собственный IP-адрес. Для того, чтобы связываться с узлом по имени (вместо IP-адреса) нам нужен сервис, который переводит имя (например, dev.gentoo.org) в IP-адрес (например, 64.5.62.82). Такой сервис называется службой имён. Чтобы использовать этот сервис, необходимо определить сервера имён в файле /etc/resolv.conf.
В некоторых случаях шлюз также может выполнять функцию сервера имён. В противном случае сервера имён, предоставляемые провайдером, должны быть указаны в этом файле.
Соберём всю информацию, которая нам понадобится далее:
Сетевой параметр | Пример |
---|---|
IP-адрес системы | 192.168.0.2 |
Маска подсети | 255.255.255.0 |
Широковещательный адрес | 192.168.0.255 |
Шлюз | 192.168.0.1 |
Сервер(ы) имён | 195.130.130.5, 195.130.130.133 |
Использование ifconfig и route
При использовании утилит из пакета sys-apps/net-tools, настройка сети обычно состоит из трёх шагов:
- Назначение IP-адреса с помощью команды ifconfig
- Настройка маршрутизации с помощью команды route
- Размещение IP-адресов серверов имён (DNS) в /etc/resolv.conf
Для назначения необходимы сам IP-адрес, широковещательный адрес и маска подсети. Выполните следующую команду, заменив ${IP_ADDR} на правильный IP-адрес, ${BROADCAST} — на широковещательный адрес и ${NETMASK} — на маску подсети:
root #
ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up
Для того, чтобы настроить маршрутизацию используя route, подставьте вместо ${GATEWAY} IP-адрес шлюза:
root #
route add default gw ${GATEWAY}
Теперь откройте /etc/resolv.conf, используя текстовый редактор:
root #
nano -w /etc/resolv.conf
Укажите сервера имён, используя следующий пример в качестве шаблона, и замените ${NAMESERVER1} и ${NAMESERVER2} на подходящие адреса. Вы можете добавить более одного сервера имён:
/etc/resolv.conf
Шаблон по умолчанию /etc/resolv.confnameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}
Вот и всё. Теперь проверьте сеть, выполнив команду ping для какого-нибудь сервера в Интернете (например Google 8.8.8.8 или Cloudflare 1.1.1.1). Если всё работает, то поздравляем с настройкой сети. Продолжайте чтение с раздела Подготовка дисков.