Настройка сетевых интерфейсов в Unix из командной строки

logoЗачастую случается так, что надо переконфигурировать свойства сетевого интерфейса на лету и нет надобности сохранять изменения в конфиги. Или еще хуже, вы новичек и после установки операционной системы из семейства unix, по каким-то непонятным для вас причинам нет сети.


Для этих случаев есть замечательная команда ifconfig. Данную команду следует запускать от привилигированного пользователя (root ну или через команду sudo).

В разных unix системах по умолчанию настроен разный уровень безопасности, так что в данной статье мы будем считать что запускаем команду от пользователя root. Для этого откроем терминал и выполним команду su –, и введем пароль root’a. Если у вас настроен sudo то достаточно перед каждое командой вводить sudo, затем пароль root’a.

Вот что мы примерно увидим, если запустим команду:

root@m1k:~# ifconfig
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:48919720 errors:0 dropped:0 overruns:0 frame:0
TX packets:48919720 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3287891938 (3.0 GiB)  TX bytes:3287891938 (3.0 GiB)

eth0      Link encap:Ethernet  HWaddr 00:02:a5:4e:8a:8a
inet addr:192.168.0.17  Bcast:192.168.0.255  Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:52460230 errors:0 dropped:0 overruns:0 frame:0
TX packets:56189774 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3633036433 (3.3 GiB)  TX bytes:3233022839 (3.0 GiB)

Здесь lo – локальный интерфейс компьютера, eth0 – сетевая, где и будем менять настройки.

В основном настройка сетевых интерфейсов сводится к тому, чтобы поменять ip адрес сетевой карты и прописанию маршрута по умолчанию.

Итак, если у вас команда ifconfig показала хоть какую-то информацию о сетевой eth0 или ethX, то все просто:

  1. Сначала переводим сетевой интерфейс в состояние отключено ifconfig eth0 down
  2. Задаем новый ip (192.168.1.13) и маску сети (255.255.255.0) ifconfig eth0 192.168.1.13 netmask 255.255.255.0 up

Команды в любой unix будут аналогичные, вот только названия интерфейсов будут разные. Проверяем, что получилось

root@m1k:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:02:a5:4e:8a:8a
inet addr:192.168.1.13  Bcast:192.168.0.255  Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:52643616 errors:0 dropped:0 overruns:0 frame:0
TX packets:56536121 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3645205530 (3.3 GiB)  TX bytes:3746508842 (3.4 GiB)

Адрес изменился, значит все ok.
Осталось только прописать новый шлюз по умолчанию (192.168.1.1).
В linux это делается командой:

root@m1k:~# route add default gw 192.168.1.1

Во freebsd и других unix like ОС, все тоже самое но не надо указывать обозначение gw

root@m1k:~# route add default 192.168.1.1

Посмотреть текущие маршруты в linux командой route

root@m1k:~# route
Kernel IP routing table
Destination     Gateway         Genmask       Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
loopback        *               255.0.0.0       U     0      0        0 lo
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth1

Во freebsd командой netstat -rn.

Вот в принципе и все. Но не всегда так гладко проходит, как написано в данной статье. Иногда команда ifconfig возвращает только данные о локальном интерфейсе lo и нет никаких данных как называется необходимый вам сетевой интерфейс. Тут вариантов 2. Либо в конфигурационных файлах вашей ОС нет никаких данных о ip адресе вашей сетевой, поэтому сетевая и находится в неактивном состоянии. Попробуйте запустить команду dmesg и внимательно изучить, то место где будут загружаться сетевые интерфейсы,  уж название сетевой карты вы точно получите. Либо худший вариант что может быть – ваша ОС не загрузила модули сетевой карты компьютера.. Тут тоже надо смотреть вывод dmesg пробовать подгружать модули самому если они есть в системе, возможно даже компилировать ядро с необходимыми модулями.

Запись опубликована в рубрике FreeBSD, Linux, Команды Unix с метками , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *