- Основные настройки сети в CentOS
- Включать интерфейс при загрузке
- Установка статического IP
- Изменить IP
- Изменить маску
- Добавить IP
- Получить DHCP адрес
- Сбросить IP
- Узнать Gateway
- Установка ifconfig
- Открытые порты
- Открыть порт
- hostname
- Шаг 1. Проверка текущего hostname
- Шаг 2. Смена hostname
- NetworkManager
- network
- Виртуальный интерфейс
- Создать новый сетевой адаптер
- Список адаптеров
- Ошибки и предупреждения
Основные настройки сети в CentOS
Обычно неактивный интерфейс выделен серым цветом а активный зелёным.
NAME UUID TYPE DEVICE enp0s3 64486a76-a4b0-4693-9110-205da942c9c5 ethernet — enp0s8 fc26857f-4cb0-3756-a7fa-95ec246b3981 ethernet enp0s8
Включить интерфейс можно командой
Включать интерфейс при загрузке
Чтобы не включать сетевой интерфейс каждый раз вручную можно в настройках прописать ONBOOT=yes
Как вариант можно перейти в
И отредактировать с помощью vi файл ifcfg-ИМЯ_ИНТЕРФЕЙСА — например ifcfg-enp0s3
sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
Либо под root использовать sed
sudo sed -i s / ONBOOT=no / ONBOOT=yes / /etc/sysconfig/network-scripts/ifcfg-enp0s3
Если команда выше вам не до конца понятна — изучите статью «Основы sed»
Проверить получилось ли изменить ONBOOT на yes можно командой
Подробную информацию о каждом сетевом интерфейсе можно получить выполнив nmcli connection show имя_интерфейса
nmcli connection show ens192
connection.id: ens192 connection.uuid: 5c2584c5-7d87-4826-ba2a-79713eb62a9a connection.stable-id: — connection.type: 802-3-ethernet connection.interface-name: ens192 connection.autoconnect: yes connection.autoconnect-priority: 0 connection.autoconnect-retries: -1 (default) connection.multi-connect: 0 (default) connection.auth-retries: -1 connection.timestamp: 1618914913 connection.read-only: no connection.permissions: — connection.zone: — connection.master: — connection.slave-type: — connection.autoconnect-slaves: -1 (default) connection.secondaries: — connection.gateway-ping-timeout: 0 connection.metered: unknown connection.lldp: default connection.mdns: -1 (default) connection.llmnr: -1 (default) 802-3-ethernet.port: — 802-3-ethernet.speed: 0 802-3-ethernet.duplex: — 802-3-ethernet.auto-negotiate: no 802-3-ethernet.mac-address: — 802-3-ethernet.cloned-mac-address: — 802-3-ethernet.generate-mac-address-mask:— 802-3-ethernet.mac-address-blacklist: — 802-3-ethernet.mtu: auto 802-3-ethernet.s390-subchannels: — 802-3-ethernet.s390-nettype: — 802-3-ethernet.s390-options: — 802-3-ethernet.wake-on-lan: default 802-3-ethernet.wake-on-lan-password: — ipv4.method: auto ipv4.dns: — ipv4.dns-search: — ipv4.dns-options: «» ipv4.dns-priority: 0 ipv4.addresses: — ipv4.gateway: —
Установка статического IP
NAME UUID TYPE DEVICE enp0s3 64486a76-a4b0-4693-9110-205da942c9c5 ethernet enp0s3 enp0s8 fc26857f-4cb0-3756-a7fa-95ec246b3981 ethernet enp0s8
Настроим статический IP адрес для enp0s8
Настройки сети хранятся в директории
Отредактировать нужно файл ifcfg-enp0s8
Основные параметры:
TYPE — тип соединения, проводное (Ethernet), беспроводное(Wired) и т д;
BOOTPROTO — способ получения IP адреса, static, dhcp или none;
NAME — имя соединения;
DEVICE — имя сетевого интерфейса;
ONBOOT — необходимо ли запускать при старте системы;
IPADDR — IP адрес, который будет использован для этого компьютера;
GATEWAY — шлюз для доступа к интернету;
NETMASK — маска сети;
DNS1 — сервер для разрешения доменных имен DNS.
sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
Для DHCP, который, скорее всего, стоит по умолчанию будет что-то
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=enp0s8 UUID=939a0551-f5b5-46d8-87fe-24e5e7b1a0c1 DEVICE=enp0s8 ONBOOT=yes
Нужно именить BOOTPROTO на none и добавить несколько строк
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none # Server IP # IPADDR=192.168.56.130 # Subnet # PREFIX=24 # Defautl Gateway # GATEWAY=192.168.56.1 # DNS Servers # DNS1=8.8.8.8 DNS2=1.1.1.1 DNS3=192.168.56.1 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=enp0s3 UUID=40a957b1-90fd-428c-9e99-df7849e1d104 DEVICE=enp0s3 ONBOOT=yes
sudo systemctl restart network
Изменить IP
Быстро изменить IP можно с помощью ifconfig
Сперва нужно установить пакет содержащий ifconfig — по инструкции
sudo ifconfig enp0s8 192.168.56.111
Вместо enp0s8 введите нужный интерфейс
Вместо 192.168.56.111 введите IP, который хотите установить
Если ваш IP был получен от DHCP сервера — сообщите ему о смене выполнив
Изменённый таким образом IP адрес будет сброшен DHCP сервером на тот, который ему больше нравится после первой перезагрузки.
Если нужно поменять ещё и маску подсети — выполните
sudo ifconfig enp0s8 192.168.56.111 netmask 255.255.255.0
Изменить маску
Если нужно поменять только маску подсети — выполните
sudo ifconfig enp0s8 netmask 255.255.255.0
Добавить IP
Добавить IP на интерфейс можно командой
ip addr add 172.17.67.3/16 dev enp0s8
IP адрес добавлен динамически — то есть после перезагрузки он пропадёт
Удалить этот IP адрес можно командой
ip addr del 172.17.67.3/16 dev enp0s8
Получить DHCP адрес
Если нужно явно запросить у DHCP адрес выполните
Вместо enp0s8 введите имя нужного адаптера
Сбросить IP
Если IP получен по DHCP можно освободиться от него выполнив
Вместо enp0s8 введите имя нужного адаптера. Эту команду обычно нужно выполнять тем, кто делал сброс адреса.
Узнать Gateway
Чтобы узнать текущий IP адрес шлюза (gateway) выполните
default via 10.0.2.1 dev enp0s3 proto dhcp metric 100
Установка ifconfig
yum whatprovides ifconfig
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: ftp.funet.fi * epel: www.nic.funet.fi * extras: ftp.funet.fi * updates: ftp.funet.fi base/7/x86_64/filelists_db | 7.2 MB 00:00:01 epel/x86_64/filelists_db | 12 MB 00:00:03 extras/7/x86_64/filelists_db | 224 kB 00:00:00 ssh-products/x86_64/filelists_db | 89 kB 00:00:00 updates/7/x86_64/filelists_db | 3.4 MB 00:00:01 net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools Repo : base Matched from: Filename : /sbin/ifconfig
ifconfig входит, например, в состав net-tools
sudo yum install net-tools
Открытые порты
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
Выдаст все порты, поэтому если нужно проверить какой-то определённый удобно применить grep
tcp LISTEN 0 128 [::]:1234 [::]:* users:((«andrei»,pid=5226,fd=14))
Открыть порт
Чтобы открыть порт XXXX в firewall выполните
sudo firewall-cmd —add-port=XXXX/tcp —permanent
sudo firewall-cmd —reload
hostname
Шаг 1. Проверка текущего hostname
Чтобы получить информацию о хосте выполните
Static hostname: localhost.localdomain Icon name: computer-vm Chassis: vm Machine ID: a714bee8007d114a84177dbb15072f2e Boot ID: b02d9498c1764a338c781672aac1be29 Virtualization: kvm Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-1160.el7.x86_64 Architecture: x86-64
Нужная информация находится в первой строке
Static hostname: localhost.localdomain
Шаг 2. Смена hostname
Так как CentOS 7 поддреживает только Fully Qualified Domain Names (FQDNs), советую тщательно проверить hostname, который вы планируете использовать.
- Строчные буквы от a до z
- Цифры от 0 до 9
- Точки и дефисы
- Hostnames может быть от 2 до 63 символов
- Hostnames должен начинаться и заканчиваться цифрой или буквой
hostnamectl set-hostname my.new-hostname.server
NetworkManager
Проверить статус можно командой
systemctl status NetworkManager
● NetworkManager.service — Network Manager Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2021-02-18 17:30:13 EET; 1 months 30 days ago Docs: man:NetworkManager(8) Main PID: 841 (NetworkManager) Tasks: 5 CGroup: /system.slice/NetworkManager.service ├─ 841 /usr/sbin/NetworkManager —no-daemon └─9599 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-ens192.pid -lf /var/lib/NetworkManager/dhclient-5c2584c5-7d87-4826-ba2a-79713eb62a9a-ens192.lease -cf /var/lib/Net. Jul 17 11:09:40 localhost.localdomain NetworkManager[841]: [1618907115.2914] dhcp4 (ens192): gateway 10.1.103.254 Jul 17 11:09:40 localhost.localdomain NetworkManager[841]: [1618907115.2914] dhcp4 (ens192): lease time 7200 Jul 17 11:09:40 localhost.localdomain NetworkManager[841]: [1618907115.2915] dhcp4 (ens192): nameserver ‘10.10.10.1’ Jul 17 11:09:40 localhost.localdomain NetworkManager[841]: [1618907115.2915] dhcp4 (ens192): nameserver ‘10.1.0.2’ Jul 17 11:09:40 localhost.localdomain NetworkManager[841]: [1618907115.2915] dhcp4 (ens192): domain name ‘urn.su’ Jul 17 11:09:40 localhost.localdomain NetworkManager[841]: [1618907115.2915] dhcp (ens192): domain search ‘urn.su.’ Jul 17 11:09:40 localhost.localdomain NetworkManager[841]: [1618907115.2915] dhcp (ens192): domain search ‘hel.fi.urn.su.’ Jul 17 11:09:40 localhost.localdomain NetworkManager[841]: [1618907115.2915] dhcp (ens192): domain search ‘ad.urn.su.’ Jul 17 11:09:40 localhost.localdomain NetworkManager[841]: [1618907115.2915] dhcp4 (ens192): state changed bound -> bound Jul 17 11:09:40 localhost.localdomain dhclient[9599]: bound to 10.1.102.211 — renewal in 2903 seconds.
network
Проверить статус можно командой
● network.service — LSB: Bring up/down networking Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled) Active: active (exited) since Tue 2021-04-20 12:57:04 EEST; 7min ago Docs: man:systemd-sysv-generator(8) Process: 13493 ExecStop=/etc/rc.d/init.d/network stop (code=exited, status=0/SUCCESS) Process: 13652 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=0/SUCCESS) Jul 17 11:09:40 localhost.localdomain systemd[1]: Starting LSB: Bring up/down networking. Jul 17 11:09:40 localhost.localdomain network[13652]: Bringing up loopback interface: [ OK ] Jul 17 11:09:40 localhost.localdomain network[13652]: Bringing up interface ens192: Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5) Jul 17 11:09:40 localhost.localdomain network[13652]: [ OK ] Jul 17 11:09:40 localhost.localdomain systemd[1]: Started LSB: Bring up/down networking.
Виртуальный интерфейс
Виртуальный интерфейс — это alias к существующему интерфейсу. Допустим у вас есть ens192
cp /etc/sysconfig/network-scripts/ens192 /etc/sysconfig/network-scripts/ens192:0
vi /etc/sysconfig/network-scripts/ens192:0
Поменяйте там что-то, например поставьте другой IP из той же подсети
systemctl restart network
Так как виртальный интерфейс может быть только внутри той же подсети, он не даст вам возможности слушать другую сейть.
Создать новый сетевой адаптер
Подробный разбор этого действия вы можете изучить в статье «Создать новый интерфейс»
Список адаптеров
Получить список адаптеров, в том числе отключенных.
DEVICE TYPE STATE CONNECTION wlp0s20f3 wifi connected SSH-office docker0 bridge connected docker0 p2p-dev-wlp0s20f3 wifi-p2p disconnected — enp0s31f6 ethernet unavailable — vboxnet0 ethernet unmanaged — lo loopback unmanaged —
Ошибки и предупреждения
sudo systemctl restart networking
Job for network.service failed because the control process exited with error code. See «systemctl status network.service» and «journalctl -xe» for details.
systemctl status network.service
● network.service — LSB: Bring up/down networking Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled) Active: failed (Result: exit-code) since Tue 2021-01-19 19:09:42 EET; 7s ago Docs: man:systemd-sysv-generator(8) Process: 2448 ExecStop=/etc/rc.d/init.d/network stop (code=exited, status=0/SUCCESS) Process: 8268 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE) Jul 17 11:09:40 server1.example.com network[8268]: RTNETLINK answers: File exists Jul 17 11:09:40 server1.example.com network[8268]: RTNETLINK answers: File exists Jul 17 11:09:40 server1.example.com network[8268]: RTNETLINK answers: File exists Jul 17 11:09:40 server1.example.com network[8268]: RTNETLINK answers: File exists Jul 17 11:09:40 server1.example.com network[8268]: RTNETLINK answers: File exists Jul 17 11:09:40 server1.example.com network[8268]: RTNETLINK answers: File exists Jul 17 11:09:40 server1.example.com systemd[1]: network.service: control process exited, code=exited status=1 Jul 17 11:09:40 server1.example.com systemd[1]: Failed to start LSB: Bring up/down networking. Jul 17 11:09:40 server1.example.com systemd[1]: Unit network.service entered failed state. Jul 17 11:09:40 server1.example.com systemd[1]: network.service failed.