
Для систематизирования информации по настройке сети в ОС Linux было решено написать эту заметку. Здесь в доступной форме описан процесс настройки сетевого интерфейса на примере ОС Ubuntu. Также данное руководство поможет «поднять» локальную сеть и на любом другом дистрибутиве Linux.
Для просмотра текущих параметров сети и состояния сетевых интерфейсов в ОС Линукс существует команда:
Для просмотра абсолютно всех сетевых интерфейсов запускаем команду с ключом -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 набираем команду:
Из вывода видно, что сетевой интерфейс eth0 работает на скорости 100Мб/с с включенным полным дуплексом (Full Duplex). Полный дуплекс от полудуплекса (Half Duplex) отличается тем, что первый обеспечивает передачу данных в обе стороны одновременно, а второй осуществляет передачу входящих и исходящих данных поочередно.
Команду легко запомнить, так как после названия самой команды идет имя интерфейса и после действие, которое нужно произвести над ним (down или up).
Для возобновления работы сетевого интерфейса eth0:Эта строка запускает bash-скрипт networking, перезапускающий сетевые интерфейсы системы.
Так же по аналогии производится остановка всех интерфейсов:Настроить сеть можно одним из вышеприведенных способов. Эти два способа абсолютно взаимозаменяемые. Кому как привычнее.
Чтобы настроить сетевой интерфейс, не влезая в дебри конфигурационного файла, нужно воспользоваться специальными командами.
Чтобы задать основной IP-адрес и маску сети для интерфейса eth0:Редактировать будем конфигурационный файл /etc/network/interfaces. Чтобы вывести на экран содержимое конфига, набираем команду:
Если локальная сеть, к которой подключаемся, подразумевает ручную настройку IP-адреса, то содержимое конфигурационного файла должно выглядеть примерно так:
Первые строки оставляем как есть, так как их дополнительная настройка не требуется.
Строка 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 должен быть приведен к виду:
Так же во многих случаях для правильной работы локальной сети на настраиваемом компьютере потребуется ввести IP-адрес используемого DNS-сервера.
Для этого нужно открыть конфигурационный файл командой:Строка nameserver 192.168.1.253 говорит, что в качестве DNS-сервера используется компьютер с IP-адресом 192.168.1.253.
Чтобы временно поменять MAC-адрес сетевой карты eth0 нужно воспользоваться командой:
Для смена MAC-адреса навсегда нужно в конфигурационном файле /etc/network/interfaces к настройкам сетевого интерфейса добавить строку с новым MAC-адресом:
1 Ноябрь, 20:27
огромное спасибо за статью! в линукс недавно, оч помогло, не подскажете, если сетевых в компьютере две, у одной сетевой dns-server 192.168.0.9, а у другой например 192.168.1.9, корректно будет в одном файле resolv.conf написать
nameserver 192.168.0.9
nameserver 192.168.1.9
Поймут сетевухи кому какой dns?
И можно ли в линукс назначить сетевой карточке какое-то имя, например eth0 это loc, а eth1 это prov?
1 Ноябрь, 21:07 (Комментарий автора)
1. DNS можно указать оба, но сетевым следует указать маски сети 255.255.255.0. Тогда они будут ходить по своим DNS`ам.
2. Про названия сетевых не знаю. Думаю, что можно, это же Linux!!
2 Ноябрь, 00:44
выключаем интерфейс
ifconfig eth0 down
даем команду
ifrename -i eth0 -n новое_имя (например local)
ifconfig local up
потом в вашем линуксе наверно надо будет в файле /etc/network/interfaces некоторые eth0 поменять на local, у меня просто альт, и этого файла вообще нет, у меня /etc/net/ifaces/папки_с_интерфейсами, и вот у меня надо папку eth0 переименовать в local, ну и потом
service network restart :)
2 Ноябрь, 05:45 (Комментарий автора)
Нужно будет добавить в статью, спасибо))
14 Май, 14:36
Думаю стоит попровить строку: sudo ifconfig eth0:0 10.10.0.1 netmask 255.255.255.0
у алиаса не может быть маски /24 (255.255.255.0), это не ошибка, т.к. в любом случае интерфейсу eth0:0 будет присвоена маска /32 (255.255.255.255)
В вашем случае будет: sudo ifconfig eth0:0 10.10.0.1/32
16 Май, 09:02
Черт, Вы перевернули все мое сознание. Придется переделывать настройки сетевого интерфейса на компьютере, которые работали уже почти 2 года.
Почему тогда командой ifconfig показывается та маска, которую я установил?