Зачастую случается так, что надо переконфигурировать свойства сетевого интерфейса на лету и нет надобности сохранять изменения в конфиги. Или еще хуже, вы новичек и после установки операционной системы из семейства 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, то все просто:
- Сначала переводим сетевой интерфейс в состояние отключено ifconfig eth0 down
- Задаем новый 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 пробовать подгружать модули самому если они есть в системе, возможно даже компилировать ядро с необходимыми модулями.