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


Сегодня хочу рассказать о настройке сети в linux, а именно в Debian GNU/Linux, хотя описанные здесь методы подойдут и для других дистрибутивов, таких как - Ubuntu, Mint и всех базирующихся на них. В первую очередь нам необходимо понять, а какие у нас сейчас в системе есть интерфейсы и сконфигурированы ли они. Для этого мы используем замечательную программу ifconfig. Эта программа присутствует наверное во всех дистрибутивах и имеет простой синтаксис, с которым справится даже новичок.
И так говорим:
server:~# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:1c:c4:74:c3:77
BROADCAST 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:1000
RX bytes:4160 (4.0 KiB) TX bytes:0 (0.0 B)
Interrupt:16

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:560 (560.0 B) TX bytes:560 (560.0 B)


Видим, что у нас два интерфейса: eth0 и lo. lo интерфейс - это интерфейс обратной петли (loopback), используется операционной системой для "замыкания на самого себя" - необходим для работы некоторых служб. Адрес у этого интерфейса всегда 127.0.0.1/255.0.0.0. При установке ситемы этот интерфейс как правило настраивается автоматически. Единственное, что нужно добавить запись в таблицу маршрутизации, чтобы интерфейс использовался в качестве маршрута к узлу 127.0.0.1. Для этого вводим следующую команду:
server:~# route add 127.0.0.1 lo


Но, если мы теперь перезагрузимся маршрут исчезнет, т.к. ядро не знает, что нужно было добавить его при загрузке. Нам необходимо сказать ядру, что и куда нужно прописать.

Создаем в каталоге /etc/init.d/ файл с именем route с таким содержимым:
#!/bin/bash
/sbin/route add 127.0.0.1 lo

делаем файл исполняемым:
chmod +x /etc/init.d/route

добавляем скрипт в автозагрузку:
update-rc.d route defaults


Также мы видим интерфейс eth0 он не имеет никаких сетевых настроек, т.к. он не сконфигурировани и не активизирован. Настроим его для работы в предполагаемой сети с доступом в интернет. В Debian интерфейсы настриваются в файле /etc/network/interfaces.

Говорим:
server:~# nano /etc/network/interfaces


и дописываем в конец следующее:
auto eth0
iface eth0 inet static
address 192.168.0.5
netmask 255.255.255.0
gateway 192.168.0.1


здесь параметр gateway - это адрес нашего шлюза и маршрут по умолчанию, без него мы не сможем ходить в интернет.


Перезапустим сеть:
server:~# /etc/init.d/networking restart


смотрим таблицу маршрутизации:
server:~# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags Iface
127.0.0.1 0.0.0.0 255.255.255.255 UH lo
192.168.0.0 0.0.0.0 255.255.255.0 U eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG eth0

видим, что маршрут по умолчанию через наш шлюз присутствует.

Теперь нам необходимо добавить днс-серверы. Адреса серверов необходимо добавить в /etc/resolv.conf, если такого файла нет его нужно создать:
nano /etc/resolv.conf

со следующим содержимым:
nameserver 192.168.0.1
nameserver 192.168.0.2

если в вашей сети нет днс-сервера, то нужно добавить адрес сервера провайдера или общедоступный сервер - например от goolge.

Если в вашей сети есть dhcp-сервер, то в файле /etc/network/inerfaces нужно просто написать:
iface eth0 inet dhcp

Ну вот, мы настроили сетевые интерфейсы для работы в нашей сети.

http://www.artcom-ufa.ru/posts/2011/07/20/nastroika-seti-v-linux

Обновлено: 13.03.2015