Почему centos 7 не видится в сети. Применяем новые настройки сети

Пользователи Linux, избалованные дистрибутивами наподобие Ubuntu, практически не сталкиваются с проблемой настройки сети. Интернет подключается автоматически в момент установки дистрибутива. Система сама находит сетевое оборудование и производит его настройку. Примерно так же, как это происходит в операционной системе Windows сравнительно поздних выпусков.

В Centos дело обстоит иначе – юзеру или администратору приходится поработать мозгами и ручками. Связано это с практичностью и минимализмом дистрибутива в некоторых его аспектах. А также тем, что он рассчитан на сравнительно узкий круг подготовленных пользователей. Данную ОС особенно любят системные администраторы в офисах и на производстве. На протяжении нашего короткого рассказа мы обсудим, как в Centos осуществляется настройка сети.

Разумеется, наш рассказ не будет всеохватным, мы остановимся только на основных моментах, а тонкую регулировку параметров оставим на потом. Многие пользователи сталкиваются с препятствиями уже на первом этапе: терминал реагирует на ifconfig ошибкой. Мол, нет такой команды и все тут. Ifconfig необходимо запускать от имени администратора системы с префиксом «su -».

Более подробно о конфигурировании

Вся настройка сети в CentOs сводится к редактированию конфигурационных файлов с именами, начинающимися на «ifcfg-».

Начнем с редактирования файла ifcfg-eth0, расположенного по адресу /etc/sysconfig/network-scripts/. Сделать это можно при помощи редактора vi или любого другого. Имеется две основные разновидности настроек сети в CentOs – на базе протокола DHCP и для статического IP-адреса. В первом случае содержимое данного файла конфигурации нужно будет сделать таким:

В случае использования DHCP эти строки будут выглядеть так:

Есть еще один файл конфигурации, который нужно править при настройке сети в CentOs. Это файл /etc/sysconfig/network. Сюда нужно ввести такие строки:

Обязательно следует выполнить рестарт сетевого интерфейса. Делается это так:

Указания на DNS задаются в файле под именем /etc/resolv.conf. Сведения о DNS вводятся в данный файл в таком формате:

Вот, пожалуй, и все, что нужно знать и уметь для первоначальной настройки сети в CentOs. То есть ничего особенно сурового. Приведем еще команду, используемую для отключения сетевого интерфейса.

Настройку сети в CentOS 7 можно осуществить несколькими способами, я расскажу о довольно простом и быстром. Предполагается, что вы еще не настроили сеть при установке операционной системы (или установлен DHCP). Сначала посмотрим список доступных интерфейсов:

#ip link list 1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp0s25: mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether 00:1f:29:3d:96:9f brd ff:ff:ff:ff:ff:ff

Если у вас одна сетевая карта, то, скорее всего, вы увидите похожий вывод. Первый интерфейс — loopback , второй — интерфейс нужной сетевой карточки. Чаще всего имя интерфейса — eth0 , но бывает и как у меня — enp0s25 . Далее требуется отредактировать файл скрипта для сетевого интерфейса. При загрузке сетевого сервиса, параметры для сети берутся именно оттуда. Расположение файла скрипта: . Имя файла состоит из «ifcfg» и имени интерфейса. В моем случае это enp0s25 , вам нужно подставить свое. В файле уже указаны различные значения, можно смело все удалять и указывать свои параметры.

Откроем файл /etc/sysconfig/network-scripts/ifcfg-enp0s25 любимым текстовым редактором или текстовым редактором vi .

#vi /etc/sysconfig/network-scripts/ifcfg-enp0s25

Для настройки получения сетевых реквизитов по DHCP достаточно указать:

TYPE="Ethernet" DEVICE="enp0s25" BOOTPROTO="DHCP" DEFROUTE="yes" ONBOOT="yes"

Для настройки работы интерфейса со статическим адресом, запишем в файл следующее (тут же можно указать серверы DNS):

TYPE="Ethernet" DEVICE="enp0s25" BOOTPROTO="none" DEFROUTE="yes" ONBOOT="yes" IPADDR="192.168.0.10" NETMASK="255.255.255.0" GATEWAY="192.168.0.1" DNS1="192.168.0.1" DNS2="8.8.8.8"

Параметры сети указывайте свои. Ниже кратко опишу, что значит каждый пункт:

TYPE - тип соединения, в случае с обычной проводной сетью указывать «Ethernet»

DEVICE - имя интерфейса (сетевой карты), отображаемое в системе

BOOTPROTO - определяем, какой протокол требуется использовать для получения сетевых параметров. Возможные варианты:

«none» - не загружать параметры сети с сервера

«DHCP» - использовать протокол DHCP

«BOOTP» - использовать протокол BOOTP

DEFROUTE - указываем, что данный сетевой интерфейс будет использоваться по умолчанию

ONBOOT - требуется ли использовать данный скрипт при загрузке

IPADDR - ip-адрес в локальной сети

NETMASK - маска сети

GATEWAY - шлюз сети (часто — адрес роутера)

DNS1 - ip-адрес первого сервера DNS

DNS2 - ip-адрес второго сервера DNS. Тут я обычно указываю DNS-сервер Google

После сохранения изменений в файле, обязательно перезапускаем сетевой сервис:

#systemctl restart network

Существуют и другие способы настройки сети в CentOS 7, но я предпочитаю использовать этот.

Добрый день!

Настройка сети в CentOS выполняется очень просто. Необходимо отредактировать один файл и перезапустить сетевую службу. Но обо всем по порядку.

Сетевые настройки в CentOS лежат в папке:

/etc/sysconfig/network-scripts/

Для каждой сетевой карты создается свой файл настроек: ifcfg-eth0, ifcfg-eth1 .... ifcfg-eth99. Для первой или единственной сетевой карты файл конфигурации будет называться ifcfg-eth0. Для того, чтобы его отредактировать, введите в консоли:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

Нажмите кнопку "i" для перехода в режим редактирования и внесите в файл одну из конфигураций ниже.

Настройка сети со статическим IP

Типовая конфигурация будет выглядеть так:

DEVICE="eth0" //имя сетевой карты
TYPE=Ethernet //тип сетевой карты
BOOTPROTO=none //протокол автоматической настройки (например DHCP)
ONBOOT="yes" //включать при загрузке системы
IPADDR=177 . 61.211.162 //Статический IP
NETMASK=255.255.192.0 //Маска подсети
GATEWAY=177.61.192.1 //Основной шлюз
DNS1=8 . 8.8.8 //DNS сервер
DNS2=8 . 8.4.4

Если ваш CentOS сервер работает внутри домашней локальной сети, то маску подсети и шлюз можно посмотреть на любой другой машине с Windows или Linux. IP адрес можно взять любой свободный. Если же сервер подключен к провайдеру или установлен в дата-центре, все настройки необходимо запросить у провайдера.

Настройка сети с динамическим IP

Очень редко приходится настраивать сеть в CentOS с динамическим IP, но я выложу настройки на всякий случай:

DEVICE="eth0" //имя сетевой карты
TYPE=Ethernet //тип сетевой карты
BOOTPROTO="dhcp" //протокол автоматической настройки
ONBOOT="yes" //включить при загрузке системы

Применяем новые настройки сети

После того, как вы внесете все необходимые изменения в файл ifcfg-eth0, нажмите кнопку "Esc" для выхода из режима редактирования, потом введите ":wq" для выхода из редактора с сохранением и нажмите "Enter".

Теперь проверьте настройки основного конфигурационного файла:

vi /etc/sysconfig/network

Там должно быть следующее содержимое:

NETWORKING=yes
HOSTNAME=dev.сайт
//имя вашего хоста

Для того, чтобы изменения начали действовать, необходимо перезагрузить сетевой интерфейс:

/etc/init.d/network restart

Если у вас остались вопросы или нужны уточнения - пожалуйста, или оставьте комментарий.

Однако, чтобы их решить раз и навсегда рекомендуем, при технической возможности, выделить IP-АТС белый IP.

Внимание: делайте это если вы хорошо понимаете, что такое безопасность (Прочитать можно ) и с iptables на ТЫ.

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


1. Определение сетевой карты в системе.

После того как вставили сетевую карту и загрузились, вводим команду: ifconfig. Если сетевая определилась, то мы увидим например такое:

….



RX packets:222424 errors:0 dropped:0 overruns:0 frame:0
TX packets:3456 errors:0 dropped:0 overruns:0 carrier:0

RX bytes:45173795 (43.0 MiB) TX bytes:380609 (371.6 KiB)
Interrupt:225

2. Настройка IP адреса

Это значит, что сетевая карта определилась, но пока не имеет IP адреса. Вставляем провод от провайдера для настройки внешнего IP. Например, провайдер выдал нам такие настройки:

ip: 123.45.45.2
gw: 123.45.45.1
netmask: 255.255.255.252
dns: 123.45.44.1

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

Начинаем править конфиг:

nano /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
HWADDR=00:e0:4c:33:59:b0
IPADDR=123.45.45.2
NETMASK=255.255.255.252

Теперь перезапускаем наш eth1 интерфейс:

# ifdown eth1
# ifup eth1

Смотрим, что ip-адрес правильный:

# ifconfig
….
eth1 Link encap:Ethernet HWaddr 00:E0:4C:33:59:B0
inet addr:123.45.45.2 Bcast:123.45.45.3 Mask:255.255.255.252
inet6 addr: fe80::2e0:4cff:fe33:59b0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:228286 errors:0 dropped:0 overruns:0 frame:0
TX packets:3508 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:46361012 (44.2 MiB) TX bytes:389499 (380.3 KiB)
Interrupt:225

Теперь проверяем доступность шлюза провайдера. То что он выдал, надо еще проверить:

# ping 123.45.45.1
PING 123.45.45.1 (123.45.45.1) 56 (84) bytes of data.
64 bytes from 123.45.45.1: icmp_seq=1 ttl=64 time=0.127 ms
64 bytes from 123.45.45.1: icmp_seq=2 ttl=64 time=0.127 ms

--- 123.45.45.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.127/0.127/0.127/0.000 ms

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

# route add -host 87.250.250.203 gw 123.45.45.1

Проверяем, что маршрут добавился
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
87.250.250.203 123.45.45.1 255.255.255.255 UGH 0 0 0 eth1
192.168.192.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
123.45.45.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
0.0.0.0 192.168.192.1 0.0.0.0 UG 0 0 0 eth0

Выполням ping 87.250.250.203 и traceroute 87.250.250.203, удостоверяемся, что все проходит удачно. Для гарантии добавьте маршруты до DNS сервера, который будет использоваться и еще какой-нибудь узел в интернете. Если все пингуется, значит наш gw пускает в интернет. Теперь можно сменить маршрут по умолчанию на новый, а старый закомментировать.

# nano /etc/sysconfig/network-scripts/ifcfg-eth0
# Broadcom Corporation NetXtreme BCM5723 Gigabit Ethernet PCIe
DEVICE=eth0
BOOTPROTO=none
HWADDR=2c:41:38:87:88:43
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.192.87
#GATEWAY=192.168.192.1
TYPE=Ethernet

# nano /etc/sysconfig/network-scripts/ifcfg-eth1
# Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
HWADDR=00:e0:4c:33:59:b0
IPADDR=123.45.45.2
NETMASK=255.255.255.252
GATEWAY=123.45.45.1

Если все сделано верно, то выполняем перезагрузку всех сетевых интерфейсов
# service network restart

Внимание: убедитесь, что правила iptables позволяют сделать подключение из чужой сети. Временно выключить защиту можно командой: service iptables stop
И если все прошло гладко, то вы уже сможете подключится через внешний IP.

Внимание: возможны отличия в конфигурации, внимательно подходите к этому вопросу, если сервер находится далеко и нет KVM.

3. Настройка роутинга

Итак, мы добавили второй интерфейс, настроили его. Теперь может встать задача, настройки маршрутизации трафика до определенного хоста или сети через старый шлюз (например, там трафик дешевле). Для этого необходимо прописать маршрут. Это делается командой route.
#route add -host 95.11.13.5 gw 192.168.192.1 dev eth0

Делаем ping и traceroute (mtr) до хоста 95.11.13.5. Видим, что трафик идет через указанный шлюз.

Примечание: часто думают, что на этом настройка закончена, но после перезагрузки или рестарта сетевых интерфейсов маршруты слетают. Тут и добавка в rc.local может не помочь
Правильно прописать маршруты «навсегда» так.
Создаем файл:

#nano /etc/sysconfig/network-scripts/route-eth0
ADDRESS0=95.11.13.5
GATEWAY0=192.168.192.1
NETMASK0=255.255.255.255

Сохраняем. Теперь после service network restart данный маршрут пропишется автоматически.

Примечание: ethX тот, который находится в одной сети с шлюзом, через который мы хотим пустить трафик

Который описан в соответствующей статье, необходимо выполнить ряд базовых настроек. Одна из которых — настройка сетевых подключений. Рассмотрим по порядку данную операцию.

У начинающих пользователей Linux могут возникнуть затруднения на самом первом этапе — не получится проверить текущее состояние сети командой ifconfig (будет выдаваться сообщение — команда не найдена). Это не проблема, это особенность работы CentOS, поэтому данную команду необходимо запускать от суперпользователя (администратора) командой:

Причина заключается в том, что обычные пользователи системы и root пользователь имеют различные переменные окружения PATH (вы можете посмотреть PATH пользователя при помощи echo $PATH). После ввода команды Linux, оболочка будет искать пользовательский PATH, чтобы попытаться найти команду для запуска. Она начинает поиск в каждой директории указанной в PATH, пока цель не будет найдена. Команды обычных пользователей обычно расположены в /usr/local/bin, /usr/bin и /bin. А команды пользователя root распологаются в основном в /usr/local/sbin, /usr/sbin, /sbin и корневой PATH это отражает. Поэтому, когда вы становитесь суперпользователем при помощи «su -«, то вы также принимаете и новый путь PATH к основным командам. А используя только ‘su’, сохраняется пользовательский путь PATH по умолчанию, следовательно, при попытке выполнить программу расположенную в /usr/local/sbin, /usr/sbin, /sbin выдаст результат: ‘command not found’ error. Для более детального объяснения, смотрите справочную страницу (man bash), особенно раздел login shells. Таким образом, вы или должны указывать полный путь к команде (пример — /sbin/ifconfig) при использовании ‘su’, либо использовать ‘su -‘, когда становитесь root-ом.

Для проверки текущих сетевых настроек стоит использовать команду:

При работе в ОС семейства Linux, необходимо знать и понимать, что все аппаратные и программные устройства, а также различные параметры самой операционной системы и программ хранятся в конфигурационных файлах. Таким образом, конфигурационные файлы интерфейсов управляют программными интерфейсами отдельных сетевых устройств. При загрузке ОС происходит считывание этих файлов и информации в ней, на основе которой и происходит определение необходимых (используемых и настроенных) интерфейсов, а также их запуск.

Такие файлы обычно называются ifcfg-<имя> , где <имя> относится к имени устройства, которое управляется этим конфигурационным файлом. Как было сказано выше — все интерфейсы и параметры ОС хранятся в различных специализированных файлах, что дает администратору удобною и гибкую возможность настройки параметров ОС и оборудования.

Настройка сетевого интерфейса

Настроим сетевой интерфейс путем редактирования конфигурационного файла, который расположен в директории /etc/sysconfig/network-scripts/

В моем случае кабель подключен в первый (и единственный) сетевой адаптер, который называется в системе eth0 . Выполним редактирование соответствующего файла:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

Напоминаю, чтобы внести изменения в содержание файла в редакторе vi — необходимо:

  • нажать клавишу «i» или «Insert»
  • для выхода из режима редактирования — «esc»
  • для сохранения внесенных изменений — «Shift+:» затем «wq» и нажать «Enter»

Для сети со статическим IP адресом:

DEVICE=»eth0″
BOOTPROTO=»none»
ONBOOT=»yes»
IPADDR=»192.168.1.100″
NETMASK=»255.255.255.0″
GATEWAY=»192.168.1.1″

Для сети с использованием DHCP:

DEVICE=»eth0″
BOOTPROTO=»dhcp»
ONBOOT=»yes»

Комментарии выполненных действий:

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

Выполняем редактирование сетевого конфигурационного файла:

# vi /etc/sysconfig/network

Вводим следующие данные:

NETWORKING=»yes»
HOSTNAME=»Имя.Вашего.Сервера» или рабочей станции

Для корректного применения настроек (чтобы они вступили в силу) выполняем перезапуск сети:

# /etc/init.d/network restart

Если изменения в файле /etc/sysconfig/network не требуются, тогда можно рестартануть только интерфейс:

# ifdown eth0 && ifup eth0

Также стоит знать, что настройку сети можно выполнить более быстро , выполним данные команды:

ifconfig eth0 192.168.Х.Х netmask 255.255.255.0

Для отключения сетевого интерфейса выполните:

Если же вы хотите, чтобы настройки были получены автоматически по DHCP, то выполните следующую команду:

В данном случае, чтобы прекратить работу сетевого интерфейса необходимо будет завершить работу программы dhclient:

НО! При настройке сети подобным образом, после перезагрузки конфигурирование придется производить заново.

Настройка DNS

Открываем файл ‘resolv.conf’ :

Статьи по теме: