Который описан в соответствующей статье, необходимо выполнить ряд базовых настроек. Одна из которых — настройка сетевых подключений. Рассмотрим по порядку данную операцию.
У начинающих пользователей 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’ :
В данном материале я затрону актуальную тему, с которой начинается практически любая первоначальная работа с сервером. Настройка основных параметров сети в CentOS - ip адрес, dhcp, ipv6, dns, hostname, статические маршруты, сетевые карты и другие network параметры.
Двигаться по теме будем шаг за шагом от простого к сложному, разбирая все нюансы по порядку и отвечая на наиболее популярные вопросы.
- Сетевые настройки на сервере CentOS 7
- Как получить сетевые настройки по DHCP
- Как настроить DNS в CentOS 7
- Как отключить ipv6 в CentOS 7
- Как изменить hostname в CentOS 7
- Установить шлюз по-умолчанию в CentOS 7
- Network Manager в CentOS 7
- System config network tui в CentOS 7
- Как добавить статический маршрут в CentOS 7
- Как настроить 2 IP адреса на одном интерфейсе
- Как сделать перезапуск сети в CentOS 7
- Как узнать IP адрес в CentOS 7
- Что делать, если CentOS не видит сетевую карту?
- Что делать, если сеть недоступна в CentOS?
- Использование сетевых утилит traceroute, dig в CentOS
- Настройка 802.1Q VLAN в CentOS 7
Сетевые настройки на сервере CentOS 7
Первый раз с сетевыми настройками сервера CentOS мы сталкиваемся, когда производим установку. На экране первоначальной настройки есть отдельный пункт, касающийся настройки сетевых интерфейсов:
Зайдя в него мы видим список подключенных сетевых карт. Каждую из них можно включить соответствующим ползунком (пункт 1 на картинке). При активировании интерфейса он автоматически получает настройки по dhcp. Результат работы dhcp можно посмотреть тут же. Если вас не устраивают эти настройки, их можно отредактировать, нажав configure (пункт 3 на картинке). Здесь же можно задать hostname (пункт 2 на картинке):
Открыв окно дополнительный настроек Ehernet, вы сможете изменить имя сетевого интерфейса, указать настройки IP (пункт 1 на картинке), выбрать ручные настройки (пункт 2 на картинке), назначить ip адрес (пункт 3 на картинке), установить dns сервер (пункт 4 на картинке) и сохранить сетевые настройки (пункт 5 на картинке):
После выполнения остальных настроек начнется установка. После установки у вас будет сервер с указанными вами сетевыми настройками.
Теперь рассмотрим другую ситуацию. Сервер, а соответственно и конфигурацию сети, производили не вы, а теперь вам надо ее посмотреть либо изменить. В вашем распоряжении консоль сервера, в ней и будем работать. Если у вас установка производилась с дистрибутива minimal , то при попытке посмотреть сетевые настройки с помощью команды ifconfig в консоли вы увидите следующее:
Bash: ifconfig: command not found
или в русской версии:
Bash: ifconfig команда не найдена
Для работы с ifconfig и прочими сетевыми утилитами необходимо установить пакет net-tools . Сделаем это:
# yum -y install net-tools.x86_64
Теперь можно увидеть настройки сети:
# ifconfig
eno16777728: flags=4163
mtu 1500
inet 192.168.159.129
RX packets 319 bytes 36709 (35.8 KiB)
TX packets 256 bytes 148817 (145.3 KiB)lo: flags=73
mtu 65536
inet6::1 prefixlen 128 scopeid 0x10
RX packets 6 bytes 624 (624.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6 bytes 624 (624.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0Если у вас нет желания устанавливать дополнительный пакет, то можно воспользоваться более простой командой ip с параметрами:
# ip addr
1: lo:
mtu 65536 qdisc noqueue state UNKNOWN
inet 127.0.0.1/8 scope host lo
inet6::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777728:mtu 1500 qdisc pfifo_fast state UP qlen 1000
inet 192.168.159.129 /24 brd 192.168.159.255 scope global dynamic eno16777728
valid_lft 1709sec preferred_lft 1709sec
inet6 fe80::20c:29ff:fe7d:593f/64 scope link
valid_lft forever preferred_lft foreverМы увидели конфигурацию сети, теперь давайте ее отредактируем. Допустим, нам нужно сменить ip адрес. Для этого идем в директорию /etc/sysconfig/network-scripts и открываем на редактирование файл ifcfg-eth0 . Этот файл имеет примерно следующее содержание:
По настройкам из этого файла мы получаем ip адрес по dhcp. Чтобы вручную прописать статический ip, приводим файл к следующему содержанию:
Мы изменили параметры:
BOOTPROTOс dhcp на noneDNS1 указали dns сервер IPADDR, настроили статический ip адрес PREFIX, указали маску подсети GATEWAY. настроили шлюз по-умолчанию
Чтобы изменения вступили в силу, необходимо перечитать сетевые настройки:
Restarting network (via systemctl): [ OK ]
Проверяем, применилась ли новая конфигурация сети:
# ifconfig:
eno16777728: flags=4163
mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
inet6 fe80::20c:29ff:fe7d:593f prefixlen 64 scopeid 0x20
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 672 bytes 71841 (70.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 572 bytes 290861 (284.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0Все в порядке, новые настройки сетевого интерфейса установлены.
Как получить сетевые настройки по DHCP
Теперь рассмотрим обратную ситуацию. Допустим, у вас сетевая карта имеет какие-то настройки, установленные вручную. Но вы хотите, чтобы ваш компьютер получал настройки сети по dhcp в качестве клиента. Для этого вам нужно произвести операцию, обратную той, что мы делали раньше. То есть открываем файл /etc/sysconfig/network-scripts/ifcfg-eth0 и удаляем там строки с параметрами DNS, IPADDR, PREFIX, GATEWAY а в параметре BOOTPROTO указываем значение «dhcp» . Сохраняем файл и перезапускаем сеть:
# /etc/init.d/network restart
Затем проверяем, получил ли наш client по dhcp настройки.
Как настроить DNS в CentOS 7
Текущие настройки dns сервера в CentOS можно посмотреть в двух местах:
- В файле с настройками сетевой карты ifcfg-eth0, которым мы ранее неоднократно редактировали.
- В файле /etc/resolv.conf
Зачем они сейчас в двух местах, я не знаю, но раньше настройки dns сервера в каких-то дистрибутивах, не помню уже точно каких, указывались только в resolv.conf, но в какой-то момент это изменилось. И все сетевые настройки стали храниться в одном файле вместе с адресом, шлюзом, маской и прочим. Если сейчас отредактировать файл resolv.conf и внести туда какие-то dns сервера, то после перезагрузки они будут заменены на значения из файла ifcfg-eth0.
Так что для того, чтобы установить параметры dns сервера, нужно отредактировать файл сетевых настроек ifcfg-eth0, добавив туда столько серверов, сколько требуется.
Например так:
DNS1="192.168.159.2"
DNS2="8.8.8.8"
DNS3="8.8.4.4"Для применения настроек сохраняем файл и перезапускаем сеть, все как обычно. После перезагрузки сервера настройки dns будут записаны в файл resolv.conf
# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.159.2
nameserver 8.8.8.8
nameserver 8.8.4.4Как отключить ipv6 в CentOS 7В настоящее время активного использования протокола ipv6 нет и в обычной работе он не нужен. Хотя нас уже много лет пугают, что свободных ip адресов уже практически не осталось, но на деле пока еще всем хватает. Так что с точки зрения практических соображений ipv6 в настоящее время на сервере не нужен и его можно отключить.
Перед отключением ipv6 необходимо на всякий случай проверить, какие программы его используют в своей работе. Это нужно для того, чтобы избежать ошибок в их работе, предварительно отключив ipv6 в конфигурациях. Для того, чтобы увидеть, какие программы висят на ipv6 интерфейсе воспользуемся командой netstat:
# netstat -tulnp
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2317/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1333/sshd
tcp6 0 0::1:25:::* LISTEN 2317/master
tcp6 0 0:::22:::* LISTEN 1333/sshd
udp 0 0 0.0.0.0:49252 0.0.0.0:* 694/avahi-daemon: r
udp 0 0 0.0.0.0:123 0.0.0.0:* 715/chronyd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 694/avahi-daemon: r
udp 0 0 127.0.0.1:323 0.0.0.0:* 715/chronyd
udp6 0 0:::123:::* 715/chronyd
udp6 0 0::1:323:::* 715/chronydВсе строки с::: это ipv6 протокол. В моем случае это sshd, postfix и chronyd. Отключим им ipv6 и оставим только ipv4.
Начнем с sshd. Открываем файл настроек /etc/ssh/sshd_config и находим строки:
#AddressFamily any
#ListenAddress 0.0.0.0Раскомментируем их и изменим. Должно получиться вот так:
AddressFamily inet
ListenAddress 0.0.0.0Теперь открываем файл настроек постфикс /etc/postfix/main.cf. Ищем там строку:
#inet_protocols = all
Меняем на:
Inet_protocols = ipv4
Отключаем ipv6 в chronyd. Для этого создаем файл /etc/sysconfig/chronyd и добавляем строку:
OPTIONS=-4
Теперь отключаем ipv6 в CentOS. Открываем файл /etc/sysctl.conf и добавляем туда строки:
Net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1Редактируем файл /etc/sysconfig/network , добавляя туда:
NETWORKING_IPV6=no
IPV6INIT=noПерезагружаемся и проверяем результат:
# reboot# ifconfig
eno16777728: flags=4163
mtu 1500
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 2301 bytes 243024 (237.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2138 bytes 1327955 (1.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73
mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0Нигде нет упоминания про inet6 и адреса формата ipv6. Значит все в порядке, мы отключили ipv6 в CentOS. Теперь проверим список открытых портов:
# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2291/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1322/sshd
udp 0 0 0.0.0.0:123 0.0.0.0:* 2453/chronyd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 697/avahi-daemon: r
udp 0 0 127.0.0.1:323 0.0.0.0:* 2453/chronyd
udp 0 0 0.0.0.0:57259 0.0.0.0:* 697/avahi-daemon: rВсе порты ipv4. Все в порядке, наша задача выполнена.
Как изменить hostname в CentOS 7
По-умолчанию, во время установки CentOS ставит имя хоста localhost.localdomain . Если вы его не поменяли, то можно это сделать позже. Для начала давайте проверим, какое имя хоста у вас установлено. Делается это с помощью команды в консоли hostname , либо с помощью uname :
# hostname
localhost.localdomain# uname -n
localhost.localdomain
Для того, чтобы изменить имя хоста в CentOS, необходимо отредактировать файл /etc/hostname . Проверим его содержимое:
# cat /etc/hostname
localhost.localdomain
Отредактируем этот файл, чтобы изменить hostname:
# mcedit /etc/hostname
centos.localhost
Сохраняем файл и проверяем:
# hostname
centos.localhost
Все в порядке, мы изменили имя хоста на centos.localhost
Установить шлюз по-умолчанию в CentOS 7
Если по каким-то причинам при настройке сетевых параметров у вас не установился шлюз по-умолчанию, то сделать это можно вручную. Для начала проверим, какой шлюз по-умолчанию установлен в системе в данный момент:
# netstat -nr
Kernel IP routing table
0.0.0.0 149.154.71.254 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
149.154.70.0 0.0.0.0 255.255.254.0 U 0 0 0 eth0
192.168.1.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0Строка с Destination 0.0.0.0 определяет адрес шлюза. Если у вас ее нет, либо в поле Gateway установлен неверный шлюз, то можно это изменить. Устанавливаем шлюз по-умолчанию:
Route add default gw 192.168.0.1Network Manager в CentOS 7
В CentOS по-умолчанию имеется служба, которая управляет всеми сетевыми подключениями - NetworkManager . Она постоянно контролирует сетевые настройки и с помощью демона по управлению конфигурациями вносит соответствующие изменения в активные сетевые устройства. Она поддерживает стандартные файлы конфигураций ifcfg.
Список сетевых утилит и приложений:
NetworkManager Стандартный networking daemon nmtui
Простой текстовый интерфейс (TUI) для NetworkManager nmcli
Утилита, работающая в командной строке, которая позволяет пользователям и скриптам взаимодействовать с NetworkManagercontrol-center
Утилита с графическим интерфейсом оболочки GNONEnm-connection-editor GTK+ 3 приложения, необходимые для некоторых задач, не поддерживаемых control-center
Пользователи не взаимодействуют с NetworkManager в CentOS напрямую, для этого используются графические и утилиты командной строки. Одной из таких утилит является system config network tui .
System config network tui в CentOS 7
Для управления сетевыми настройками в CentOS можно воспользоваться графической утилитой nmtui .
Проверить ее наличие в системе очень просто.
Достаточно запустить ее в консоли:
Если она у вас не установлена, то исправить это очень просто. Устанавливаем в CentOS system config network tui:
# yum install NetworkManager-tui
С помощью tui можно указать любые сетевые настройки, которые мы делали раньше через командную строку и редактирование конфигурационных файлов. Давайте сделаем это. Вызываем программу:
Выбираем первый пункт Edit a connection , затем выбираем сетевой интерфейс и жмем «Edit»:
Здесь мы можем изменить имя сетевой карты, mac адрес, указать тип сетевых настроек - ручной или dhcp, указать вручную ip адрес, адрес шлюза, днс сервера, добавить маршруты и некоторые другие настройки:
После завершения редактирования сохраняем настройки, нажимая ОК.
Если в первом экране утилиты выбрать пункт Set System Hostname , то можно быстро указать имя хоста. Результат будет такой же, как мы делали раньше в консоли.Как добавить статический маршрут в CentOS 7
Для управления маршрутизацией в CentOS может понадобиться добавить статический маршрут. Сделать это достаточно просто с помощью консольной команды. Для начала проверим существующие маршруты, используя netstat :
# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt IfaceВ данном случае у нас один маршрут для адреса 0.0.0.0/0.0.0.0 шлюз используется 192.168.159.2, он же шлюз по-умолчанию. То есть по сути, статических маршрутов никаких нет. Добавим один из них.
Допустим, у нас есть подсеть 192.168.8.0 маска 255.255.255.0, трафик в эту подсеть маршрутизирует шлюз 192.168.159.5 Добавляем маршрут:
# route add -net 192.168.8.0/24 gw 192.168.159.5
Проверяем, появился ли добавленный маршрут в таблицу маршрутизации :
# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.159.2 0.0.0.0 UG 0 0 0 eno16777728
192.168.159.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777728Все в порядке, маршрут добавлен. Но после перезагрузки этот статический маршрут будет удален. Чтобы этого не произошло и добавленные маршруты сохранялись, необходимо их записать в специальный файл. В папке /etc/sysconfig/network-scripts создаем файл с именем route-eth0 следующего содержания:
# mcedit /etc/sysconfig/network-scripts/route-eth0
192.168.8.0/24 via 192.168.159.5
Перезагружаемся и проверяем, на месте ли маршрут:
# reboot# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.159.2 0.0.0.0 UG 0 0 0 eno16777728
192.168.8.0 192.168.159.5 255.255.255.0 UG 0 0 0 eno16777728
192.168.159.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777728Все в порядке, статический маршрут добавлен.
Как настроить 2 IP адреса на одном интерфейсе
Если у вас появилась необходимость настроить 2 IP адреса на одном интерфейса в CentOS, то сделать это достаточно просто. Воспользуемся командой ifconfig. Для начала проверим список сетевых интерфейсов:
# ifconfig
eno16777728: flags=4163
mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX errors 0 dropped 0 overruns 0 frame 0
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73
mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX errors 0 dropped 0 overruns 0 frame 0
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0Добавим к интерфейсу eno16777728 еще один ip адрес 192.168.159.120:
# ifconfig eno16777728:1 192.168.159.120 up
Проверим, что получилось:
#ifconfig
eno16777728: flags=4163mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 254 bytes 30173 (29.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 204 bytes 27658 (27.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0eno16777728:1: flags=4163
mtu 1500
inet 192.168.159.120 netmask 255.255.255.0 broadcast 192.168.159.255
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)lo: flags=73
mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX packets 11 bytes 940 (940.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11 bytes 940 (940.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0Все в порядке, мы добавили второй ip адрес на один и тот же интерфейс. Но после перезагрузки дополнительный адрес не сохранится. Чтобы его сохранить, необходимо создать файл настроек интерфейса в папке /etc/sysconfig/network-scripts
# mcedit /etc/sysconfig/network-scripts/ifcfg-eno16777728:1
DEVICE=eno16777728:1
BOOTPROTO=static
IPADDR=192.168.159.120
NETMASK=255.255.255.0
ONBOOT=yesСохраняем файл, перезагружаемся и проверяем, что получилось. Второй ip адрес должен быть на месте.
Как сделать перезапуск сети в CentOS 7
Ранее я уже касался этого вопроса, но на всякий случай повторим отдельно. Допустим, вы внесли некоторые изменения в конфигурацию сети. Как применить эти настройки, не перезагружая сервер? Очень просто. Для перезапуска сети в CentOS достаточно воспользоваться командой:
# /etc/init.d/network restart
Служба NetworkManager перечитает все сетевые настройки и применит изменения.
Как узнать IP адрес в CentOS 7
Для того, чтобы быстро узнать текущий IP адрес в CentOS необходимо воспользоваться следующими командами:
# ifconfig | grep inet
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
inet 127.0.0.1 netmask 255.0.0.0Либо второй вариант определения локального ip адреса:
# ip addr | grep inetinet 127.0.0.1/8 scope host lo
inet 192.168.159.129 /24 brd 192.168.159.255 scope global eno16777728Обе команды позволяют быстро узнать свой ip адрес.
Что делать, если CentOS не видит сетевую карту?
Вы установили сервер, загрузились и обнаружили, что в системе нет ни одной сетевой карты. Что в таком случае делать? Первым делом посмотрите вывод команды dmesg и поищите там поминание о своей карте. Возможно, она в системе есть, просто не активирована. Активировать ее можно с помощью nmtui , а котором я рассказывал выше.
Там есть пункт меню Activate connection , нужно в него зайти и активировать вашу сетевую карту. После этого ее можно будет настраивать.
Если же вашей сетевой карты нет в системе, то нужно поискать в интернете по модели информацию об этой сетевой карте. Возможно в репозиториях будут драйвера для нее. Это достаточно распространенная ситуация. Чаще всего драйвера найдутся и их необходимо будет правильно установить.
Есть еще вероятность, что вы не увидите своей карточки при выводе команды ifconfig, если в эту карту не воткнут сетевой провод. Чтобы наверняка посмотреть все интерфейсы, необходимо использовать ключ -a:
# ifconfig -a
Есть еще один способ поискать сетевую карту в системе. Установите пакет pciutils :
# yum -y install pciutils
И посмотрите вывод команды:
# lspci | grep Ethernet
Если сетевая карта видится системой, то должно быть что-то в этом роде:
02:00.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
Если в выводе пусто, значит сетевая карта не определена.
Что делать, если сеть недоступна в CentOS?
Допустим, вы пытаетесь пинговать какой-то адрес, например 8.8.8.8 и получаете ответ, что сеть не доступна:
# ping 8.8.8.8
А в ответ получаете:
Connect: Network is unreachable
Такая ситуация может возникнуть, если у вас не установлен шлюз по-умолчанию. Добавить его можно с помощью команды:
# route add default gw 192.168.0.1
Если дело не в шлюзе, то нужно проверить настройки сетевых адаптеров. Если нет ни одного активного адаптера, то вы так же будете получать сообщение о том, что сеть не работает. Необходимо, чтобы в системе был правильно настроен хотя бы один сетевой адаптер. Как это сделать, написано выше.
Использование сетевых утилит traceroute, dig в CentOS
Для диагностики сетевых подключений в CentOS полезно использовать специальные утилиты. Но если вы использовали установку minimal, то их скорее всего в системе не будет. К примеру, популярная утилита traceroute при попытке ее запуска выдаст сообщение:
# traceroute ya.ru
bash: traceroute: command not foundЕе нужно установить отдельно из репозитория:
# yum -y install traceroute
То же самое с популярной программой dig для работы с dns серверами и записями:
# dig ya.ru
bash: dig: command not foundЧтобы эта сетевая утилита заработала, необходимо установить пакет bind-utils :
# yum -y install bind-utilsНастройка 802.1Q VLAN в CentOS 7
Для поднятия тегированного интерфейса на CentOS нужно в первую очередь проверить поддержку ядром 8021q :
# modprobe 8021q
Если сообщений об ошибке нет, значит все в порядке. Если же модуль не найден, необходимо пересобрать модули ядра, включив поддержку необходимого модуля.
Теперь создаем файл конфигурации для vlan в /etc/sysconfig/network-scripts:
# mcedit ifcfg-vlan4000
VLAN=yes
DEVICE=eno16777728.2000
BOOTPROTO=static
ONBOOT=yes
TYPE=Vlan
IPADDR=192.168.100.2
NETMASK=255.255.255.0Обращаю внимание на выделенное жирным. Во всех инструкциях в интернете, что мне попались, этот параметр был указан как TYPE=Ethernet , но с такой настройкой интерфейс с vlan не поднимался, появлялась ошибка:
Error: no device found for connection ‘System vlan4000’.
Только после того, как я исправил, все заработало как надо. Так что сохраняем и активируем интерфейс:
# ifup vlan4000
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
Проверяем наш vlan:
# ip l ls
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: eno16777728:mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:0c:29:7d:59:3f brd ff:ff:ff:ff:ff:ff
3: vlan4000@eno16777728:mtu 1500 qdisc noqueue state UP mode DEFAULT
link/ether 00:0c:29:7d:59:3f brd ff:ff:ff:ff:ff:ffВсе в порядке, тегированный интерфейс поднят. По аналогии можно создать еще несколько подобных интерфейсов, не забывая изменять им имена и адреса.
На этом мой объемный материал на тему настройки сети в CentOS закончен.
Буду очень рад комментариям, замечаниям, поправкам. Они наверняка будут. Создавая подобные материалы я в первую очередь учусь сам и подтягиваю свои знания в предметной области. Тут могут быть где-то ошибки и описки, хотя я и проверяю все на живых системах во время написания руководств, но все равно возможны неточности и опечатки.
За статью огромнейшее спасибо: http://serveradmin.ru
Настройку сети в 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
Если у вас остались вопросы или нужны уточнения - пожалуйста, или оставьте комментарий.
Значение слова неудачный
Обзор Samsung Galaxy A7 (2017): не боится воды и экономии Стоит ли покупать samsung a7
Делаем бэкап прошивки на андроиде
Как настроить файл подкачки?
Установка режима совместимости в Windows