Настройка CentOS 7 после установки. Centos 7 настройка
Настройка сети в CentOS 7
В данном материале я затрону актуальную тему, с которой начинается практически любая первоначальная работа с сервером. Настройка основных параметров сети в CentOS — ip адрес, dhcp, ipv6, dns, hostname, статические маршруты, сетевые карты и другие network параметры. Двигаться по теме будем шаг за шагом от простого к сложному, разбирая все нюансы по порядку и отвечая на наиболее популярные вопросы.
Сетевые настройки на сервере 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 eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> 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<link> ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet) RX packets 319 bytes 36709 (35.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 256 bytes 148817 (145.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) 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 адрес. Для этого идем в директорию /etc/sysconfig/network-scripts и открываем на редактирование файл ifcfg-eth0. Этот файл имеет примерно следующее содержание:
По настройкам из этого файла мы получаем ip адрес по dhcp. Чтобы вручную прописать статический ip, приводим файл к следующему содержанию:
Мы изменили параметры:
BOOTPROTO | с dhcp на none |
DNS1 | указали dns сервер |
IPADDR0 | настроили статический ip адрес |
PREFIX0 | указали маску подсети |
GATEWAY0 | настроили шлюз по-умолчанию |
Чтобы изменения вступили в силу, необходимо перечитать сетевые настройки:
# /etc/init.d/network restart Restarting network (via systemctl): [ OK ]Проверяем, применилась ли новая конфигурация сети:
# ifconfig: eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> 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<link> 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». Сохраняем файл и перезапускаем сеть:
Затем проверяем, получил ли наш 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:
Все строки с ::: это 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 = 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<UP,BROADCAST,RUNNING,MULTICAST> 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 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 0 lo: flags=73<UP,LOOPBACK,RUNNING> 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Все порты ipv4. Все в порядке, наша задача выполнена.
Как изменить hostname в CentOS 7
По-умолчанию, во время установки CentOS ставит имя хоста localhost.localdomain. Если вы его не поменяли, то можно это сделать позже. Для начала давайте проверим, какое имя хоста у вас установлено. Делается это с помощью команды в консоли hostname, либо с помощью uname:
# hostname localhost.localdomain # uname -n localhost.localdomainДля того, чтобы изменить имя хоста в CentOS, необходимо отредактировать файл /etc/hostname. Проверим его содержимое:
Отредактируем этот файл, чтобы изменить hostname:
# mcedit /etc/hostname centos.localhostСохраняем файл и проверяем:
# hostname centos.localhostЕсть готовая команда, которая сразу устанавливает необходимое имя сервера:
# hostnamectl set-hostname centos.localhostВсе в порядке, мы изменили имя хоста на centos.localhost
Установить шлюз по-умолчанию в CentOS 7
Если по каким-то причинам при настройке сетевых параметров у вас не установился шлюз по-умолчанию, то сделать это можно вручную. Для начала проверим, какой шлюз по-умолчанию установлен в системе в данный момент:
# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 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 установлен неверный шлюз, то можно это изменить. Устанавливаем шлюз по-умолчанию:
Network Manager в CentOS 7
В CentOS по-умолчанию имеется служба, которая управляет всеми сетевыми подключениями — NetworkManager. Она постоянно контролирует сетевые настройки и с помощью демона по управлению конфигурациями вносит соответствующие изменения в активные сетевые устройства. Она поддерживает стандартные файлы конфигураций ifcfg.
Список сетевых утилит и приложений:
NetworkManager | Стандартный networking daemon |
nmtui | Простой текстовый интерфейс (TUI) для NetworkManager |
nmcli | Утилита, работающая в командной строке, которая позволяет пользователям и скриптам взаимодействовать с NetworkManager |
control-center | Утилита с графическим интерфейсом оболочки GNONE |
nm-connection-editor | GTK+ 3 приложения, необходимые для некоторых задач, не поддерживаемых control-center |
Пользователи не взаимодействуют с NetworkManager в CentOS напрямую, для этого используются графические и утилиты командной строки. Одной из таких утилит является system config network tui.
System config network tui в CentOS 7
Для управления сетевыми настройками в CentOS можно воспользоваться графической утилитой nmtui. Проверить ее наличие в системе очень просто. Достаточно запустить ее в консоли:
# nmtui
Если она у вас не установлена, то исправить это очень просто. Устанавливаем в CentOS system config network tui:
# yum install NetworkManager-tuiС помощью tui можно указать любые сетевые настройки, которые мы делали раньше через командную строку и редактирование конфигурационных файлов. Давайте сделаем это. Вызываем программу:
# nmtuiВыбираем первый пункт 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 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В данном случае у нас один маршрут для адреса 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.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Все в порядке, маршрут добавлен. Но после перезагрузки этот статический маршрут будет удален. Чтобы этого не произошло и добавленные маршруты сохранялись, необходимо их записать в специальный файл. В папке /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<UP,BROADCAST,RUNNING,MULTICAST> 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 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 0 lo: flags=73<UP,LOOPBACK,RUNNING> 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Добавим к интерфейсу eno16777728 еще один ip адрес 192.168.159.120:
# ifconfig eno16777728:1 192.168.159.120 upПроверим, что получилось:
# ifconfig eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> 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 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 0 eno16777728:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> 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<UP,LOOPBACK,RUNNING> 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 inet inet 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Если сообщений об ошибке нет, значит все в порядке, модуль загрузился. Если же модуль не найден, необходимо пересобрать модули ядра, включив поддержку необходимого модуля. Проверим на всякий случай, загрузился ли модуль:
# lsmod | grep 8021q 8021q 29022 0 garp 14384 1 8021q mrp 18542 1 8021qВсе в порядке, модуль 8021q загружен, добавим его в автозагрузку:
# echo 8021q >> /etc/modules-load.d/8021q.confТеперь создаем файл конфигурации для vlan в /etc/sysconfig/network-scripts:
# mcedit ifcfg-eth0.2000 VLAN=yes DEVICE=eth0.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 eth0.2000'.Только после того, как я исправил, все заработало как надо. Так что сохраняем и активируем интерфейс:
# ifup eth0.2000 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)Проверяем наш vlan:
# ip l ls 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether 00:15:5d:01:0f:06 brd ff:ff:ff:ff:ff:ff 3: eth0.2000@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT link/ether 00:15:5d:01:0f:06 brd ff:ff:ff:ff:ff:ffВсе в порядке, тегированный интерфейс поднят. По аналогии можно создать еще несколько подобных интерфейсов, не забывая изменять им имена и адреса.
На этом мой объемный материал на тему настройки сети в CentOS закончен. Буду очень рад комментариям, замечаниям, поправкам. Они наверняка будут. Создавая подобные материалы я в первую очередь учусь сам и подтягиваю свои знания в предметной области. Тут могут быть где-то ошибки и описки, хотя я и проверяю все на живых системах во время написания руководств, но все равно возможны неточности и опечатки.
Помогла статья? Есть возможность отблагодарить автора
Дополнительные материалы по CentOS
Рекомендую полезные материалы по CentOS: |
|
|
|
|
serveradmin.ru
Настройка CentOS 7 после установки
После установки CentOS 7 необходимо добавить пакеты и установить дополнительные драйверы.
Для работы с ifconfig и прочими сетевыми утилитами необходимо установить пакет net-tools.
# yum -y install net-tools.x86_64Для просмотра установленных устройств, командой lspci необходимо установить пакет pciutils
# yum install pciutilsДобавление устройств
При использовании старых устройств на чипсете Nvidia с процессорами AMD Athlon x2 64не определяется встроенная сетевая карта. Посмотрим вывод команды
# lspci -nn | grep -i net > 00:07.0 Bridge [0680]: NVIDIA Corporation MCP61 Ethernet [10de:03ef] (rev a2)Добавляем репозиторий
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpmИ устанавливаем драйвер
# yum install kmod-forcedetАналогичная ситуация и с сетевыми картами Intel
# lspci -nn | grep -i net > 01:07.0 Ethernet controller [0200]: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 [8086:1229] (rev 05)Репозиторий уже подключен, просто устанавливаем драйвер
#yum install kmod-e100Сетевый интерфейсы
CentOS7 имя сетевого интерфейса имеет вид “enpXsX” вместо привычного “ethX”. Для того, чтобы изменить имя интерфейса на стандартное “ethX”, необходимо отредактировать grub файл:
#mcedit /etc/default/grubИщем строку “GRUB_CMDLINE_LINUX” и добавляем следующее: «net.ifnames=0 biosdevname=0»Строка будет иметь вид вроде этого:
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos_route/root rd.lvm.lv=centos_route/swap rhgb quiet net.ifnames=0 biosdevname=0"Обновим конфигурацию загрузчика grub при помощи команды grub2-mkconfig :
# grub2-mkconfig -o /boot/grub2/grub.cfgПереименуем файл настройки сетевого интерфейса:
# mv /etc/sysconfig/network-scripts/ifcfg-enp0s1 /etc/sysconfig/network-scripts/ifcfg-eth0Заменим в самом файле имя интерфейса с NAME=enp0s1 на NAME=eth0:
#mcedit /etc/sysconfig/network-scripts/ifcfg-eth0Перезагружаем систему.
Для создания виртуальных интерфейсов копируем конфигурационный файл основного
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0Заменим в самом файле имя интерфейса с NAME=eth0 на NAME=eth0:0 :
#mcedit /etc/sysconfig/network-scripts/ifcfg-eth0:0Чтобы изменения вступили в силу — перегрузите сетевые сервисы при помощи команды:
# service network restartНастройка Firewall на основе iptables
по умолчанию используется другой фаервол: firewalld. Рассмотрим процесс отключения firewalld и установки IPTABLES.
Выключим Firewalld службу.
#systemctl mask firewalldОстановим Firewalld Service.
#systemctl stop firewalldУстановим iptables.
#yum install iptables-servicesВключим IPtables при загрузке системы:
#systemctl enable iptablesЗапускаем службу
#systemctl start iptablesУстанавливаем Shorewall
# wget http://www.invoca.ch/pub/packages/shorewall/RPMS/ils-7/SRPMS/shorewall-5.0.11.0-1.el7.src.rpm # rpm -ivh shorewall-5.0.11.0-1.el7.src.rpmили
# wget http://www.shorewall.org/pub/shorewall/5.0/shorewall-5.0.11/shorewall-5.0.11-0base.noarch.rpm
# wget http://www.shorewall.org/pub/shorewall/5.0/shorewall-5.0.11/shorewall-core-5.0.11-0base.noarch.rpm# wget http://www.shorewall.org/pub/shorewall/5.0/shorewall-5.0.11/shorewall-init-5.0.11-0base.noarch.rpm# rpm -ivh shorewall-core-5.0.11-0base.noarch.rpm# yum install shorewall-5.0.11-0base.noarch.rpmЧитайте другие интересные статьи
adminunix.ru
Настройка сервера CentOS 7 на VDS
У меня имеется свежеустановленный сервер CentOS 7 на VDS с виртуализацией KVM. Я расскажу о том, как сделать базовую настройку сервера для использования его в любом качестве на ваше усмотрение. Это может быть web сервер,vpn сервер, сервер мониторинга. Я расскажу о начальных настройках системы CentOS, которые повышают безопасность и удобство работы с сервером. Отмечу, что в 7-й версии системы произошли некоторые изменения по сравнению с предыдущими версиями.
Введение
Для настройки практически любого сервера требуется выполнить ряд стандартных шагов, которые мало чем отличаются в различных ситуациях. Какой бы функционал вы не готовили, вам придется настроить правильное время и включить его автообновление. Без установки сетевых настроек я вообще не представляю работу современного сервера. В голову не приходит ни один пример. Один и тот же набор настроек практически на автомате выполняется после установки. Своими наработками по этой теме я хочу поделиться с вами — то, что я в первую очередь настраиваю на новоиспеченном сервере centos.
Начальная настройка CentOS 7
Итак, у нас имеется: # uname -a Linux zeroxzed.ru 3.10.0-123.20.1.el7.x86_64 #1 SMP Thu Jan 29 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/LinuxПервым делом обновим базовую систему:
# yum -y updateДля удобства администрирования, я всегда устанавливаю Midnight Commander, или просто mc:
# yum -y install mcДальше нам пригодятся сетевые утилиты. В минимальной настройке вы будете удивлены, когда наберете команду:
# ifconfigИ увидите ответ:
-bash: ifconfig: command not foundПо крайней мере я, когда впервые это увидел, прилично удивился. Подумал, что ошибся в написании команды, перепроверил все несколько раз, но без результата. Оказалось, что надо отдельно установить пакет для выполнения ifconfig и прочих сетевых утилит.
Вместо ifconfig в CentOS 7 теперь утилита ip. Я не понимаю, зачем пилить отдельные программы для управления сетевыми настройками, если ifconfig и так отлично справляется с задачей. К тому же мне всегда нравилось, что в различных дистрибутивах линукс все примерно одинаковое. С помощью ifconfig можно настроить сеть не только в linux, но и в freebsd. Это удобно. А когда в каждом дистрибутиве свой инструмент это неудобно. Так что предлагаю установить привычный ifconfig.
Сделаем это:
# yum -y install net-tools.x86_64Теперь, чтобы у нас работали команды nslookup или, к примеру, host необходимо установить пакет bind-utils. Если этого не сделать, то на команду:
# nslookupБудет вывод:
-bash: nslookup: command not foundТак что устанавливаем bind-utils:
# yum -y install bind-utilsОтключаем SELinux. Его использование и настройка отдельный разговор. Сейчас я не буду этим заниматься. Так что отключаем:
# mcedit /etc/sysconfig/selinuxменяем значениеSELINUX=disabledЧтобы изменения вступили в силу, перезагружаемся:
# rebootУказываем сетевые параметры
Теперь произведем настройку сети в CentOS. Для этого открываем файл /etc/sysconfig/network-scripts/ifcfg-eth0
# mcedit /etc/sysconfig/network-scripts/ifcfg-eth0В поле IPADDR вводим свой адрес, в NETMASK маску сети, в GATEWAY шлюз, DNS1 адрес днс сервера. Сохраняем файл и перезапускаем сеть для применения настроек:
# /etc/init.d/network restartНастраиваем firewall
Очень подробно вопрос настройки iptables в CentOS 7 я рассмотрел отдельно. Сейчас мы быстро и просто настроим firewall. В CentOS 7 в качестве фаервола выступает iptables. По-умолчанию он запущен. Чтобы посмотреть текущие правила, нужно ввести команду:
# iptables -L -v -nСразу хочу предупредить, что не имея доступа к консоли сервера, настраивать firewall плохая идея. Даже если вы очень хорошо понимаете что делаете и проделывали подобное много раз, все равно есть шанс остаться без доступа к серверу. Так что первым делом перед настройкой iptables проверяем доступ к консоли через KVM или физически.
В 7-й версии CentOS для управления iptables разработан новый инструмент под названием firewalld и все управление производится через него. Я не понял зачем это сделали, и не могу сказать, удобнее с ним стало или нет. По мне, так удобнее использовать одни и те же наработки по iptables. Мигрируя от сервера к серверу и от дистрибутива к дистрибутиву, я просто редактирую скрипт настроек фаервола.
Но CentOS зачем-то придумали firewalld, в Ubuntu стоит ufw, но суть одна и та же — это утилиты для конфигурирования iptables, который один и тот же во всех дистрибутивах. Я привык управлять iptables через самописный скрипт, который переношу от сервера к серверу и редактирую под конкретные потребности. Этим скриптом я и поделюсь. Так что для начала остановим и отключим firewalld:
# systemctl stop firewalld # systemctl disable firewalld rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service' rm '/etc/systemd/system/basic.target.wants/firewalld.service'Установим утилиты для iptables:
# yum -y install iptables-servicesВключим автозапуск iptables:
# systemctl enable iptablesТеперь создадим файл /etc/iptables_rules.sh следующего содержания:
#!/bin/bash # # Объявление переменных export IPT="iptables" # Интерфейс который смотрит в интернет export WAN=eth0 export WAN_IP=149.154.71.205 # Очистка всех цепочек iptables $IPT -F $IPT -F -t nat $IPT -F -t mangle $IPT -X $IPT -t nat -X $IPT -t mangle -X # Установим политики по умолчанию для трафика, не соответствующего ни одному из правил $IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP # разрешаем локальный траффик для loopback $IPT -A INPUT -i lo -j ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT # Разрешаем исходящие соединения самого сервера $IPT -A OUTPUT -o $WAN -j ACCEPT # Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении. # Пропускать все уже инициированные соединения, а также дочерние от них $IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT # Пропускать новые, а так же уже инициированные и их дочерние соединения $IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT # Разрешить форвардинг для уже инициированных и их дочерних соединений $IPT -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT # Включаем фрагментацию пакетов. Необходимо из за разных значений MTU $IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu # Отбрасывать все пакеты, которые не могут быть идентифицированы # и поэтому не могут иметь определенного статуса. $IPT -A INPUT -m state --state INVALID -j DROP $IPT -A FORWARD -m state --state INVALID -j DROP # Приводит к связыванию системных ресурсов, так что реальный # обмен данными становится не возможным, обрубаем $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP $IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP # Открываем порт для ssh $IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT # Открываем порт для DNS $IPT -A INPUT -i $WAN -p udp --dport 53 -j ACCEPT # Открываем порт для NTP $IPT -A INPUT -i $WAN -p udp --dport 123 -j ACCEPT # Логирование # Все что не разрешено, но ломится отправим в цепочку undef $IPT -N undef_in $IPT -N undef_out $IPT -N undef_fw $IPT -A INPUT -j undef_in $IPT -A OUTPUT -j undef_out $IPT -A FORWARD -j undef_fw # Логируем все из undef $IPT -A undef_in -j LOG --log-level info --log-prefix "-- IN -- DROP " $IPT -A undef_in -j DROP $IPT -A undef_out -j LOG --log-level info --log-prefix "-- OUT -- DROP " $IPT -A undef_out -j DROP $IPT -A undef_fw -j LOG --log-level info --log-prefix "-- FW -- DROP " $IPT -A undef_fw -j DROP # Записываем правила /sbin/iptables-save > /etc/sysconfig/iptablesВ принципе, добавить нечего, в файле даны все комментарии. В таком виде, логи всего заблокированного будут писаться в файл /var/log/messages и записей там будет очень много. Так что в обычной работе эти строки нужно закомментировать, и использовать только во время отладки. Более подробное описание правил и примеры настроек firewall в случае, когда ваш сервер является шлюзом локальной сети, приведено по ссылке в начале раздела.
Делаем файл c правилами исполняемым и запускаем:
# chmod 0740 /etc/iptables_rules.sh # /etc/iptables_rules.shПроверяем, применились ли правила:
# iptables -L -v -nПри каждом запуске файла с правилами iptables, все изменения записываются в файл /etc/sysconfig/iptables и применяются при загрузке системы.
Настройка SSH в CentOS 7
Дальше внесем некоторые изменения в работу ssh для увеличения безопасности. По-умолчанию, сервис работает на 22 порту и если все оставить как есть, то мы получим огромное количество попыток авторизоваться. Боты сканят непрерывно интернет и подбирают пароли к ssh. Чтобы обезопасить себя от сканов простых ботов, изменим порт, на котором работает ssh. Можно выбрать любой пятизначный номер, это не принципиально. От автоматического сканирования это защитит. Повесим демон ssh на 25333 порт. Для этого редактируем файл /etc/ssh/sshd_config
# mcedit /etc/ssh/sshd_configРаскомментируем строку Port 22 и заменим значение 22 на 25333.Так же я обычно разрешаю подключаться по ssh пользователю root. Мне так удобнее. Проблем с этим у меня никогда не возникало. Если вы считаете, что это не безопасно, не трогайте эту настройку. Чтобы разрешить пользователю root подключаться по ssh, раскомментируйте строку PermitRootLogin yes.
Сохраняем файл. Теперь обязательно изменяем настройки iptables, добавляем в разрешенные подключения вместо 22 порта 25333. Если этого не сделать, то после перезапуска sshd мы потеряем удаленный доступ к серверу. Итак, открываем /etc/iptables_rules.sh и меняем в строке
$IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT22 на 25333 и исполняем файл. Наше текущее соединение не оборвется, так как оно уже установлено, но заново подключиться по ssh к 22 порту уже н получится.
Перезапускаем sshd:
# systemctl restart sshdПроверяем какой порт слушает sshd:
# netstat -tulpn | grep sshd tcp 0 0 0.0.0.0:25333 0.0.0.0:* LISTEN 1799/sshd tcp6 0 0 :::25333 :::* LISTEN 1799/sshdЕсли вывод такой же как у меня, то все в порядке, теперь к ssh можно подключаться по 25333 порту.
Настраиваем время
Узнать, какое время на сервере можно с помощью команды date:
# dateЧтобы сменить часовой пояс, необходимо выбрать подходящий файл часовой зоны в /usr/share/zoneinfo. В случае, если у вас часовой пояс Москвы, выполните следующее:
# mv /etc/localtime /etc/localtime.bak # ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtimeУстанавливаем утилиту синхронизации времени в CentOS:
# yum install -y ntpРазово синхронизируем время:
# /usr/sbin/ntpdate pool.ntp.orgЕсли ntpdate не работает, посмотрите материал, может это ваш случай. Запустим демон синхронизации и запишем его запуск в автозагрузку:
# systemctl start ntpd # systemctl enable ntpd ln -s '/usr/lib/systemd/system/ntpd.service' '/etc/systemd/system/multi-user.target.wants/ntpd.service'Теперь наши часы будут автоматически синхронизироваться с сервером времени.
Более подробно об этой теме написано отдельно в моем материале — установка, настройка и синхронизация времени в CentOS.
Добавление репозиториев
Для инсталляции различного софта необходимо подключить репозитории в CentOS. Наиболее популярные это EPEL и rpmforge, поэтому добавим их. Сначала ставим EPEL. С ним все просто, он добавляется из стандартного репозитория:
# yum -y install epel-releaseУстанавливаем rpmforge:
# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt # yum -y install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpmУстановка iftop, atop, htop на CentOS 7
И напоследок добавим несколько полезных утилит, которые могут пригодиться в процессе эксплуатации сервера.
iftop показывает в режиме реального времени загрузку сетевого интерфейса, может запускаться с различными ключами, не буду останавливаться на этом подробно, в интернете есть информация на эту тему. Ставим:
# yum -y install iftopИ два интересных диспетчера задач, я чаще всего пользуюсь htop, но иногда пригодится и atop. Ставим оба, сами посмотрите, разберетесь, что вам больше нравится, подходит:
# yum -y install htop # yum -y install atopВот как выглядит htop:
На этом у меня все. Базовая настройка CentOS 7 закончена, можно приступать к установке и настройке основного функционала.
Заключение
Мы выполнили некоторые начальные шаги по настройке, которые я обычно делаю при подготовке сервера. Я не претендую на абсолютную истину, возможно что-то упускаю или делаю не совсем верно. Буду рад разумным и осмысленным комментариям и замечаниям с предложениями.
Полезно после настройки сразу же подключить сервер к системе мониторинга. Либо настроить ее, если у вас еще нет. У меня есть подробный цикл статей по настройке мониторинга:
- Пример настройки сервера мониторинга zabbix, либо только подключение centos к мониторингу путем установки на него агента.
- Настройка email оповещений zabbix через сторонний smtp сервер.
- Подробный мониторинг web сервера на базе nginx + php-fpm.
- Система мониторинга сайта на базе zabbix.
- Наблюдение за mysql репликацией в zabbix.
Видео по настройке CentOS 7
7works.ru
CentOS 7 — настройка сети — Персональный IT-блог
Настройку сети в CentOS 7 можно осуществить несколькими способами, я расскажу о довольно простом и быстром. Предполагается, что вы еще не настроили сеть при установке операционной системы (или установлен DHCP). Сначала посмотрим список доступных интерфейсов:
#ip link list 1: lo: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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. Далее требуется отредактировать файл скрипта для сетевого интерфейса. При загрузке сетевого сервиса, параметры для сети берутся именно оттуда. Расположение файла скрипта: /etc/sysconfig/network-scripts/ifcfg-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, но я предпочитаю использовать этот.
ishankulov.ru
Настройка сети в CentOS 7
Настройка сети в CentOS 7
После процесса установки операционной системы CentOS 7, который описан в соответствующей статье, необходимо выполнить ряд базовых настроек. Одна из которых — настройка сетевых подключений. Рассмотрим по порядку данную операцию.
У начинающих пользователей Linux могут возникнуть затруднения на самом первом этапе — не получится проверить текущее состояние сети командой ifconfig (будет выдаваться сообщение — команда не найдена). Это не проблема, это особенность работы CentOS, поэтому данную команду необходимо запускать от суперпользователя (администратора) командой:
su —
Причина заключается в том, что обычные пользователи системы и 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-ом.
Для проверки текущих сетевых настроек стоит использовать команду:
ip a
При работе в ОС семейства 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»
Комментарии выполненных действий:
DEVICE=<name> | Имя физического устройства |
BOOTPROTO=<none|bootp|dhco> | Используемый протокол.none — Не используем никакой протокол при загрузкеbootp — Используем BOOTP протоколdhcp — Используем DHCP |
ONBOOT=<yes|no> | Активировать ли устройство во время загрузки |
IPADDR=<address> | IP адрес |
GATEWAY=<address> | IP адрес шлюза |
NETMASK=<mask> | Значение сетевой маски |
Настройке сети
Выполняем редактирование сетевого конфигурационного файла:
# vi /etc/sysconfig/network
Вводим следующие данные:
NETWORKING=»yes»HOSTNAME=»Имя.Вашего.Сервера» или рабочей станции
Для корректного применения настроек (чтобы они вступили в силу) выполняем перезапуск сети:
# /etc/init.d/network restart
Если изменения в файле /etc/sysconfig/network не требуются, тогда можно рестартануть только интерфейс :
# ifdown eth0 && ifup eth0
www.gotoadm.ru
Настройка сети CentOS 7 | Losst
Не всегда после установки CentOS сеть полностью настроена и готова к работе, даже если вы используете проводное подключение могут возникнуть некоторые сложности. Тем не менее CentOS - это серверный дистрибутив и правильная работа и настройка сети здесь имеет первостепенное значение. На домашнем компьютере ситуация такая же, чем скорее появится сеть - тем лучше.
В этой статье мы рассмотрим как выполняется настройка сети CentOS 7. Мы разберем настройку сети через графический интерфейс с помощью NetworkManager, настройку с помощью службы инициализации сети CentOS, а также ручную настройку в терминале. Обратите внимание, что эта статья охватывает только проводное и Wifi подключение, информации про ppp вы здесь не найдете.
Содержание статьи:
Как работает сеть?
Перед тем как переходить к самим настройкам, важно понять как работает сеть. Мы не будем рассматривать очень сложные вещи, только основные моменты. Вы, наверное, уже знаете, что все данные в сети передаются в виде пакетов. Какого бы размера не были данные, они делятся на пакеты фиксированного размера и передаются к цели.
Для идентификации компьютеров в сети используются IP адреса. Компьютер должен знать куда нужно передать пакет и кто его отправил. Поэтому в глобальной сети все IP адреса уникальны. Но невозможно подключить все компьютеры к одной общей сети, потому что IP адресов на всех не хватит. Поэтому были созданы локальные сети.
К каждой обычной локальной сети может быть подключено 256 компьютеров с IP адресами от 0 до 255. Из этого выплывает еще один термин - маска подсети, она указывает какая часть IP адреса относится к локальной сети. Например, в большинстве случаев маска сети будет 255.255.255.0, это значит, что в нашей сети будет меняться только последняя цифра IP адреса, такой тип наиболее распространен. Если наш IP 192.168.1.2, то компьютеры из нашей сети будут иметь адреса 192.168.1.1 и до 192.168.1.255.
Следующий важный для нас параметр, это компьютер, с помощью которого мы можем получить доступ к внешней сети, он называется шлюзом или Gateway. В каждой сети, подключенной к интернету есть шлюз.
Последнее, на чем осталось остановиться вид адресов сайтов. Как я уже сказал, все компьютеры имеют IP адрес и доступ к ним осуществляется именно по нему. Но в адресной строке браузера мы видим понятное имя, а не сложные цифры. Для преобразования имени в цифры IP адреса используется служба DNS. Ее нам тоже предстоит настроить. В случае если компьютер получает все эти параметры по DHCP нам достаточно только включить службу. Но если нужна ручная настройка сети из консоли centos 7, то каждый из параметров нужно указать вручную. А теперь перейдем к практике.
Настройка сети в GUI с помощью Network Manager
На данный момент самый удобный инструмент для настройки сети в графическом интерфейсе, здесь поддерживается не только конфигурация проводного соединения, но и работа с Wifi и даже создание точки доступа. Вы можете воспользоваться апплетом на панели инструментов.
Или откройте "Параметры системы" затем пункт сеть. Для настройки сетевого подключения по протоколу Ethernet (проводное) выберите пункт "Проводные" и переключите выключатель в положение On:
Если провод подключен, и вы собираетесь использовать DHCP то подключение настроится автоматически.
Настройка статического IP адреса
Если нужно настроить статический IP адрес, то тут ситуация немного сложнее. Нажмите небольшую кнопку со значком шестеренки:
Затем перейдите в раздел IPv4. Затем нужно указать несколько полей, которые обычно система получает по протоколу DHCP, но поскольку вы хотите настраивать IP адрес вручную, то и все остальное тоже нужно настроить вручную. Первым делом необходимо в поле "Адреса" выбрать вместо "Автоматически DHCP", "Вручную".
Затем нам нужно указать ряд параметров. В предыдущем разделе мы подробно рассмотрели каждый из них, зачем они нужны и какие значения указать. Например, установим IP адрес 192.168.1.4, тогда маска сети будет 255.255.255.0 и, допустим, что IP адрес нашего маршрутизатора, подключенного к внешней сети будет 192.168.1.1:
Готово. Вам осталось сохранить настройки и перезапустить подключение. Дальше все будет работать так, как вы настроили, если, конечно, все было настроено правильно. Избегайте использования уже занятых IP адресов и обязательно укажите правильный шлюз.
Настройка сети через консоль с помощью networking
Кроме NetworkManager, сетями управляет служба Networking. Она интегрирована с NetworkManager и позволяет настроить все необходимые вам параметры с помощью редактирования конфигурационных файлов. Сначала нам нужно посмотреть список сетевых интерфейсов:
sudo ls /sys/class/net/
У меня имя сетевого интерфейса enp2s0f0. Именно на его примере дальше будет выполняться подключение к сети centos 7. Все настройки для сети Networking хранятся в каталоге /etc/sysconfig/network-scripts/. Для нашего сетевого интерфейса конфигурационный файл будет называться /etc/sysconfig/network-scripts/ifcfg-enp2s0f0.
Давайте сначала рассмотрим основные параметры, которые вам придется рассмотреть:
- TYPE - тип соединения, проводное (Ethernet), беспроводное(Wired) и т д;
- BOOTPROTO - способ получения IP адреса, static, dhcp или none;
- NAME - имя соединения;
- DEVICE - имя сетевого интерфейса;
- ONBOOT - необходимо ли запускать при старте системы;
- IPADDR - IP адрес, который будет использован для этого компьютера;
- GATEWAY - шлюз для доступа к интернету;
- NETMASK - маска сети;
- DNS1 - сервер для разрешения доменных имен DNS.
Фактически вы уже знаете большинство этих параметров. Теперь рассмотрим какой набор нужно задать для каждого способа получения IP адреса.
Настройка получения IP по DHCP
Настройка сети dhcp centos предусматривает использование значения BOOTPROTO dhcp, остальные параметры задавать необязательно:
TYPE=EthernetBOOTPROTO=dhcpNAME=enp2s0f0UUID=9c3362c0-a615-4504-bb07-f2951f3810ddDEVICE=enp2s0f0ONBOOT=yes
Теперь сохраните изменения и перезапустите сеть. Все должно заработать.
Настройка сети со статическим IP
Для установки статического IP адреса нужно задать значение BOOTPROTO - static, а также указать IP адрес, шлюз, маску сети и DNS. Вот пример конфигурации сети CentOS для нашего интерфейса:
TYPE=EthernetBOOTPROTO=dhcpNAME=enp2s0f0UUID=9c3362c0-a615-4504-bb07-f2951f3810ddDEVICE=enp2s0f0ONBOOT=yesIPADDR=192.168.1.2NETMASK=255.255.255.0GATEWAY=192.168.1.1DNS1=8.8.8.8
Укажите свои значения и сохраните настройки. Для перезагрузки сети используйте команду:
sudo systemctl restart networking
Затем вам останется проверить работу сети. Если все было сделано правильно сеть будет работать.
Выводы
В этой статье мы рассмотрели как в centos 7 настроить сеть. Если у вас есть возможность выполнять настройку в графическом интерфейсе, то проблем вообще возникнуть не должно. С настройкой в консоли придется разобраться, но в остальном там тоже нет ничего сверхсложного. Надеюсь, эта статья была вам полезной.
losst.ru
Начальная настройка сервера CentOS 7
Для настройки практически любого сервера требуется выполнить ряд стандартных шагов, которые мало чем отличаются в различных ситуациях. Какой бы функционал вы не готовили, вам придется настроить правильное время и включить его автообновление. Без установки сетевых настроек я вообще не представляю работу современного сервера. В голову не приходит ни один пример. Один и тот же набор настроек практически на автомате выполняется после установки. Своими наработками по этой теме я хочу поделиться с вами — то, что я в первую очередь настраиваю на новоиспеченном сервере centos.
Начальная настройка CentOS 7
Первым делом обновим базовую систему:
# yum -y updateДля удобства администрирования, я всегда устанавливаю Midnight Commander, или просто mc:
# yum -y install mcДальше нам пригодятся сетевые утилиты. В минимальной настройке вы будете удивлены, когда наберете команду:
# ifconfigИ увидите ответ:
-bash: ifconfig: command not foundПо крайней мере я, когда впервые это увидел, прилично удивился. Подумал, что ошибся в написании команды, перепроверил все несколько раз, но без результата. Оказалось, что надо отдельно установить пакет для выполнения ifconfig и прочих сетевых утилит.
Вместо ifconfig в CentOS 7 теперь утилита ip. Я не понимаю, зачем пилить отдельные программы для управления сетевыми настройками, если ifconfig и так отлично справляется с задачей. К тому же мне всегда нравилось, что в различных дистрибутивах линукс все примерно одинаковое. С помощью ifconfig можно настроить сеть не только в linux, но и в freebsd. Это удобно. А когда в каждом дистрибутиве свой инструмент это неудобно. Так что предлагаю установить привычный ifconfig.
Сделаем это:
# yum -y install net-tools.x86_64Теперь, чтобы у нас работали команды nslookup или, к примеру, host необходимо установить пакет bind-utils. Если этого не сделать, то на команду:
# nslookupБудет вывод:
-bash: nslookup: command not foundТак что устанавливаем bind-utils:
# yum -y install bind-utilsОтключаем SELinux. Его использование и настройка отдельный разговор. Сейчас я не буду этим заниматься. Так что отключаем:
# mcedit /etc/sysconfig/selinuxменяем значениеSELINUX=disabledЧтобы изменения вступили в силу, перезагружаемся:
# rebootМожно без перезагрузки применить отключение SElinux:
# setenforce 0Установка iftop, atop, htop на CentOS 7
И напоследок добавим несколько полезных утилит, которые могут пригодиться в процессе эксплуатации сервера.
iftop показывает в режиме реального времени загрузку сетевого интерфейса, может запускаться с различными ключами, не буду останавливаться на этом подробно, в интернете есть информация на эту тему.
Ставим:
# yum -y install iftopИ два интересных диспетчера задач, я чаще всего пользуюсь htop, но иногда пригодится и atop. Ставим оба, сами посмотрите, разберетесь, что вам больше нравится, подходит.
Для начала добавим EPEL repository и обновляем пакеты:
# yum -y install epel-release# yum -y updateСтавим:
# yum -y install htop # yum -y install atopВот как выглядит htop:
Рекомендую еще установить пару нужных и полезных программ, которые часто необходимы, но отсутствуют в минимальной установке — wget и bzip2.
# yum -y install wget bzip2Установка редактора nano на CentOS
Сперва, отмечаем, что nano это консольный текстовый редактор для Unix и Unix подобных операционных систем, основных на библиотеке curses. Он позволяет создавать и редактировать уже имеющиеся файлы.
# yum install nanoДля запуска редактора, прописываете
# nano имя файлаЕсли файла еще не существует, тогда вы прописываете полный путь и он будет создан в нужном вам месте.
Редактор nano считается одним из самых удобных и простых, поэтому получил популярность среди новичков.
Далее, укажем основные рабочие характеристики редактора.
Верхняя строчка редактора nano содержит: текущую версию программы, имя файла, который редактируется. Далее идет непосредственно окно, с содержанием редактируемого файла. Две строчки внизу показывают часто используемые комбинации клавиш.
Например: для поиска определенного параметра, изначально используете Ctrl+W, после в появившейся строке внизу прописываете искомый параметр и enter.
Для выхода из файла, нажимаете Ctrl+X. Далее, подтверждаете внесенные изменения через: y или n (от слов yes и no соответственно) и enter.
На этом у меня все. Базовая настройка CentOS 7 закончена, можно приступать к установке и настройке основного функционала.
mozgovoy.in.ua