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

Для
систематизирования информации по настройке сети в ОС Linux было решено
написать эту заметку. Здесь в доступной форме описан процесс настройки
сетевого интерфейса на примере ОС Ubuntu. Также данное руководство
поможет «поднять» локальную сеть и на любом другом дистрибутиве Linux.
Содержание
Наверх
Для просмотра текущих параметров сети и состояния сетевых интерфейсов в ОС Линукс существует команда:
# sudo ifconfig
Пример вывода: eth0Link encap:Ethernet HWaddr 00:11:5b:91:25:3e
Для просмотра абсолютно всех сетевых интерфейсов запускаем команду с ключом -a:inet addr:192.168.1.18 Bcast:192.168.255.255 Mask:255.255.0.0
inet6 addr: fe80::211:5bff:fe91:253e/64 Диапазон:Ссылка
ВВЕРХ BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:648009 errors:0 dropped:0 overruns:0 frame:0
TX packets:1075413 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:1000
RX bytes:70177943 (70.1 MB) TX bytes:1536487024 (1.5 GB)
Прервано:19 Base address:0xd000
lo Link encap:Локальная петля (Loopback)inet6 addr: fe80::211:5bff:fe91:253e/64 Диапазон:Ссылка
ВВЕРХ BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:648009 errors:0 dropped:0 overruns:0 frame:0
TX packets:1075413 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:1000
RX bytes:70177943 (70.1 MB) TX bytes:1536487024 (1.5 GB)
Прервано:19 Base address:0xd000
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Диапазон:Узел
ВВЕРХ LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:106 errors:0 dropped:0 overruns:0 frame:0
TX packets:106 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:0
RX bytes:13776 (13.7 KB) TX bytes:13776 (13.7 KB)
inet6 addr: ::1/128 Диапазон:Узел
ВВЕРХ LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:106 errors:0 dropped:0 overruns:0 frame:0
TX packets:106 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:0
RX bytes:13776 (13.7 KB) TX bytes:13776 (13.7 KB)
# sudo ifconfig -a
Из приведенного примера видно, что на компьютере используется два сетевых интерфейса: eth0 и lo.Интерфейс lo
— это локальная петля, которая имеет IP-адрес 127.0.0.1 и предназначена
для сетевого доступа к своему же компьютеру. Далее этот интерфейс
рассматриваться не будет, так как для эффективной работы не требует
дополнительной настройки.
Интерфейс eth0 - это Ethernet сетевая карта, которая имеет сетевые параметры: IP-адрес - 192.168.1.18, маску сети - 255.255.0.0 и MAC-адрес - 00:11:5b:91:25:3e. Значение RUNNING показывает, что в данный момент сетевой интерфейс eth0 работает.
Для просмотра типа соединения, скорости и поддерживаемых параметров сетевым интерфейсом eth0 набираем команду:
# sudo ethtool eth0
Вывод: Supported ports: [ TP MII ]
Supported link modes:10baseT/Half 10baseT/Full
Advertised link modes: 10baseT/Half 10baseT/Full
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pg
Wake-on: d
Current message level: 0x000000c5 (197)
Link detected: yes
ИзSupported link modes:10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: YesAdvertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: YesSpeed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pg
Wake-on: d
Current message level: 0x000000c5 (197)
Link detected: yes
вывода видно, что сетевой интерфейс eth0 работает на скорости 100Мб/с с
включенным полным дуплексом (Full Duplex). Полный дуплекс от
полудуплекса (Half Duplex) отличается тем, что первый обеспечивает
передачу данных в обе стороны одновременно, а второй осуществляет
передачу входящих и исходящих данных поочередно.
Наверх
Для остановки сетевого интерфейса eth0 существует команда:
# sudo ifconfig eth0 down
Командулегко запомнить, так как после названия самой команды идет имя
интерфейса и после действие, которое нужно произвести над ним (down или
up).
Для возобновления работы сетевого интерфейса eth0:
# sudo ifconfig eth0 up
Чтобы перезапустить все сетевые интерфейсы ОС вводим команду: # sudo /etc/init.d/networking restart
Эта строка запускает bash-скрипт networking, перезапускающий сетевые интерфейсы системы.Так же по аналогии производится остановка всех интерфейсов:
# sudo /etc/init.d/networking stop
и их запуск: # sudo /etc/init.d/networking start
Наверх
Чтобы изменить сетевые настройки в ОС Linux можно пойти двумя путями:
- использовать команды для присвоения параметров сетевых интерфейсов;
- отредактировать конфигурационный файл, содержащий параметры сетевых интерфейсов.
- Настройка сети с помощью команд.
Чтобы настроить сетевой интерфейс, не влезая в дебри конфигурационного файла, нужно воспользоваться специальными командами.
Чтобы задать основной IP-адрес и маску сети для интерфейса eth0:
# sudo ifconfig eth0 192.168.0.1 netmask 255.255.255.0Для присвоения дополнительного IP-адреса интерфейсу eth0:
# sudo ifconfig eth0:0 10.10.0.1 netmask 255.255.255.0
- Настройка сети с помощью редактирования конфигурационного файла.
Редактировать будем конфигурационный файл /etc/network/interfaces. Чтобы вывести на экран содержимое конфига, набираем команду:
# sudo nano /etc/network/interfacesЕсли
локальная сеть, к которой подключаемся, подразумевает ручную настройку
IP-адреса, то содержимое конфигурационного файла должно выглядеть
примерно так:
auto loПервые строки оставляем как есть, так как их дополнительная настройка не требуется.
iface lo inet loopbackauto eth0
iface eth0 inet static
address 192.168.1.18
netmask 255.255.0.0
gateway 192.168.1.253
Строка auto eth0 говорит, что сетевой интерфейс eth0 должен стартовать при загрузке ОС.
Вторая строка iface eth0 inet static говорит, что сетевому интерфейсу eth0 IP-адрес задается вручную.
Строка address 192.168.1.18
говорит, что сетевому интерфейсу eth0 назначен IP-адрес 192.168.1.18
(этот сетевой адрес взят для примера и на его месте может быть любой
другой).
Строка netmask 255.255.0.0 говорит, что маска сети является 255.255.0.0.
Последняя строчка gateway 192.168.1.253
показывает, что сетевым шлюзом является компьютер с IP-адресом
192.168.1.253. Эта строка может отсутствовать, так как ее наличие в
конфигурационном файле зависит от параметров локальной сети, к которой
подключается настраиваемый компьютер.
Если в подключаемой локальной сети используется автоматическая раздача сетевых настроек DHCP-сервером, то конфигурационный файл /etc/network/interfaces должен быть приведен к виду:
auto lo
iface lo inet loopbackauto eth0
iface eth0 inet dhcp
Наверх
Настройка DNS-сервера.
Также во многих случаях для правильной работы локальной сети на
настраиваемом компьютере потребуется ввести IP-адрес используемого
DNS-сервера.
Для этого нужно открыть конфигурационный файл командой:
# sudo nano /etc/resolv.conf
Вывод: # Generated by NetworkManager
nameserver 192.168.1.253
Строка nameserver 192.168.1.253 говорит, что в качестве DNS-сервера используется компьютер с IP-адресом 192.168.1.253.nameserver 192.168.1.253
Смена MAC-адреса сетевой карты.
Чтобы временно поменять MAC-адрес сетевой карты eth0 нужно воспользоваться командой:# sudo ifconfig eth0 hw ether 00:01:02:03:04:05
Последнее число - это новый MAC-адрес. Для смена MAC-адреса навсегда нужно в конфигурационном файле /etc/network/interfaces к настройкам сетевого интерфейса добавить строку с новым MAC-адресом:
auto eth0
iface eth0 inet dhcp
pre-up ifconfig eth0 hw ether 00:01:02:03:04:05Смены скорости сетевого интерфейса.
Для строгого задания скорости сетевой карты:# sudo ethtool -s eth0 speed 100 duplex full autoneg off
# Принудительно задать скорость сетевому интерфейсу 100Mbit и режим Full Duplex и отключить автоматическое определение
# sudo ethtool -s eth0 speed 10 duplex half autoneg off
# Принудительно задать скорость сетевому интерфейсу 10Mbit и режим Half Duplex и отключить автоматическое определение