Настройка сети в Ubuntu и CentOS
В большинстве мест где я бываю есть wifi-роутеры и все что надо для подключения - пароль на wifi. Но есть пару менее дружелюбных мест, где нету своего DHCP и DNS сервера и все приходиться настраивать вручную.
Многие linux-дистрибутивы и среды рабочего стола имеют свои gui-инструменты для настройки сети, но есть и общий набор конфигурационных файлов и утилит - вот про них и пойдет речь в этой заметке.
В минимальный набор настроек для работы сети необходимо
- IP-адрес для хоста и маска подсети
- маршрут по-умолчанию (шлюз)
- указать используемый DNS-сервер
ifconfig eth0 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255 # или ip address add 192.168.1.2/24 dev eth0 broadcast 192.168.1.255
Вместо интерфейса eth0 может быть любой другой, например, wlan0.
Узнать действующие сетевые интерфейсы можно с помощью
ifconfig -a # или еще один вариант для ubuntu nmcli dev
Укажем шлюз
route add default gw 192.168.1.1
Указанные настройки, с помощью выше приведенных способов, сохраняться только на момент работы системы, после перезагрузки все пропадет. Команды ifconfig, ip, route доступны в Ubuntu и CentOS.
Теперь рассмотрим как сохраняются настройки в разных дистрибутивах.
Ubuntu (debian-base)
Под Ubuntu скрипт /etc/init.d/networking читает конфигурации из директории /etc/network/, в частности /etc/network/interfaces.
Пример файла
auto eth0 ifcae eth0 inet static address 192.168.1.2 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1
Вместо static, может быть dynamic - означает, что настройки будут получены от DHCP-сервера.
Для применения настроек
# если не установлен Network Manager sudo /etc/init.d/networking restart # если установлен Network Manager sudo /etc/init.d/network-manager restart
CentOS (redhat-base)
В CentOS файл с конфигурациями сетевых настроек находиться в /etc/sysconfig/network-scripts/ifcfg-ethN, где N - номер интерфейса (число от 0 и выше).
DEVICE=eth0 BOOTPROTO=none ONBOOT=yes HWADDR=xx:xx:xx:xx:xx:xx TYPE=Ethernet IPADDR=192.168.1.2 NETMASK=255.255.255.0
Вместо BOOTPROTO=none, может быть BOOTPROTO=dhcp - означает, что настройки будут получены от DHCP-сервера.
Шлюз и имя хоста настраивается в /etc/sysconfig/network
NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=hostname GATEWAY=192.168.1.1
Для применения настроек
ifdown eth0 ifup eth0 # или service network restart
Указание DNS-сервера
Определение DNS-серверов, для преобразования доменов в IP-адреса, находиться в /etc/resolv.cfg(перезаписываться, если используется DHCP-сервер).
search skynet nameserver 8.8.8.8 nameserver 8.8.4.4
- search skynet - суффикс, добавляемый к не полностью введенному hostname, например,
ping ftp => ftp.skynet
. - nameserver 8.8.8.8 - DNS-сервер, к которому будут идти все запросы
- nameserver 8.8.4.4 - запасной DNS-сервер, к которому будут идти запросы в случаи отказа первого
Кроме опроса DNS-сервера, возможен запрос к локальному хранилищу записей, за это отвечает файл/etc/nsswitch.conf, в котором две основные записи
hosts: files dns networks: files
отвечают за определение, откуда резолвить имена хостов и сетей
- files - означает брать из /etc/hosts
- dns - по запросу к DNS-серверу, указанному в /etc/resolv.cfg
Иногда бывает, что надо указать явно ip dns-сервера, например, если dns-сервер провайдера работает не стабильно (как у Укртелекома ;) ), для этого, под ubuntu, подправим файл /etc/dhcp/dhclient.conf:
- удалим domain-name-servers из request
- добавим prepend domain-name-servers 8.8.8.8;
Проверим
nslookup proft.me
Тестирование скорости соединения
Для проверки скорости соединения между двумя хостами есть утилита iperf.
Под Ubuntu устанавливаеться так
sudo apt-get install iperf
Под CentOS нужно подключить RPMforge-репозиторий и установить как обычно
sudo yum install iperf
На одной машине запустим iperf как сервер на порте 1234
iperf -s -p 1234
На другой запустим как клиент и подключимся к серверу
iperf -c 192.168.1.2 -p 1234
Поокончанию тестирования можно увидить скорость между этими двумя хостами.
Комментариев нет:
Отправить комментарий