Visas sistēmas darbojas Tavs IP: 216.73.216.190 info@cloudhosting.lv +371 66 66 29 69 Klientu zona

← Visi jautājumi

Nav tīkla pēc pārstartēšanas: Ubuntu 24.04, AlmaLinux 9

Serveris, kas pirms restarta atbildēja uz ping un pēc tā klusē, reti ir noslēpums. Parasti vainīga ir viena no piecām lietām, un, pārbaudot tās pareizā secībā, atbilde atrodama minūtes laikā. Šis apraksts aptver abas mūsdienu sistēmas: Ubuntu 24.04 LTS, kur netplan ģenerē konfigurāciju systemd-networkd vajadzībām, un AlmaLinux 9, kur par visām tīkla saskarnēm atbild NetworkManager. AlmaLinux 9 vairs nav ne network.service, ne pakotnes network-scripts, tāpēc liela daļa vecāko padomu tur vienkārši nestrādā.

Konsole jāsagādā, pirms tā vajadzīga

Viss tālākais pieņem, ka varat rakstīt uz servera arī tad, kad tīkls ir miris. Ja tieši SSH ir salūzis, vajadzīga piekļuve ārpus tīkla: VNC vai seriālā konsole VPS vadības panelī vai IPMI un seriālais ports nomātam serverim. Pārbaudiet to vienreiz, kamēr viss darbojas; naktī pulksten trijos ir slikts brīdis uzzināt, ka konsoles parole nekad nav uzstādīta.

Pieteikšanās uzvedne seriālajā līnijā abās sistēmās ir viena komanda:

systemctl enable --now serial-getty@ttyS0.service

Sāknētāja un kodola izvadi turp novirza atšķirīgi. Ubuntu 24.04 pievienojiet console=tty1 console=ttyS0,115200 mainīgajam GRUB_CMDLINE_LINUX_DEFAULT failā /etc/default/grub un izpildiet update-grub. AlmaLinux 9 lietojiet grubby, kas pārraksta visus instalēto kodolu ierakstus. RHEL 9 UEFI grub konfigurāciju pārcēla atpakaļ uz /boot/grub2/, tāpēc ceļš /boot/efi/EFI/, ko atceraties no 7. un 8. versijas, vairs nav vieta, kur to ģenerēt.

grubby --update-kernel=ALL --args="console=ttyS0,115200"

Konsoles nav, bet tīkla konfigurācija tik un tā jālabo pa SSH? Vispirms sagatavojiet atgriešanos. Tikai restarta taimeris palīdz vienīgi tad, ja izmaiņas dzīvoja atmiņā, tāpēc iekļaujiet arī faila atlikšanu vietā:

cp /etc/netplan/60-static.yaml /root/60-static.yaml.good
systemd-run --on-active=5m /bin/sh -c "cp /root/60-static.yaml.good /etc/netplan/60-static.yaml; systemctl reboot"

Komanda izvada pagaidu vienības nosaukumu; apturiet to taimeri ar systemctl stop, kad esat droši atgriezies. AlmaLinux sistēmā to pašu sagatavojiet ap profila atslēgas failu mapē /etc/NetworkManager/system-connections/, kopējot to atpakaļ ar cp -p, lai saglabātos tiesības 600: nmcli izmaiņu uzraksta diskā, tāpēc nepareiza adrese pati par sevi pārdzīvo restartu.

Četri jautājumi šādā secībā

ip -br link
ip -br addr
ip route
cat /etc/resolv.conf

Saite, adrese, maršruts, vārdu izšķiršana. Katrs nākamais ir atkarīgs no iepriekšējā, tāpēc minēšana maksā laiku. Karodziņš -br izvada vienu rindu par katru saskarni. Tieši DNS solī abas sistēmas atšķiras: Ubuntu 24.04 vārdus izšķir systemd-resolved un visu pastāsta resolvectl status, savukārt AlmaLinux 9 systemd-resolved pēc noklusējuma ir izslēgts, /etc/resolv.conf raksta pats NetworkManager, un līdzvērtīgā komanda tur ir nmcli -f IP4.DNS,IP6.DNS device show enp1s0.

Ko redzatKur ir problēma
Saskarnes sarakstā nav vispārMainījies nosaukums vai neielādējās draiveris
Stāvoklis DOWN vai NO-CARRIERPirmais līmenis: vads, komutatora ports, nepievienota virtuālā karte
Saite UP, nav adresesKonfigurācija nav pielietota vai DHCP neatbildēja
Adrese ir, nav noklusējuma maršrutaKonfigurācijā trūkst vārtejas
1.1.1.1 atbild, vārdi neDNS
Ping iet, SSH atsakāsProblēma nav tīklā

Tad pārbaudiet ar reālu trafiku, no tuvākā uz tālāko:

ping -c3 192.0.2.1
ping -c3 1.1.1.1
getent hosts cloudhosting.lv

Ja vārteja atbild, bet tālāk nekas neiet, cēlonis meklējams augšpusē, nevis jūsu konfigurācijā.

Ubuntu 24.04: netplan un systemd-networkd

Konfigurācija atrodas /etc/netplan/*.yaml un tiek nolasīta failu nosaukumu secībā, tāpēc vēlāks fails pārraksta agrāka faila vienādās atslēgas, bet katra atslēga, ko neatkārtojat, paliek spēkā tāda, kāda tā bija agrākajā failā. Netplan 1.0 sistēmā Ubuntu 24.04 sūdzas, ja failu var lasīt vēl kāds bez root, tāpēc uzlieciet tiem chmod 600. YAML prasa atstarpes: viena tabulācijas zīme salauž sintaksi, un kļūdas ziņojumā norādītā rinda parasti nav tā, kurā tabulācija atrodas.

netplan get
netplan generate
netplan status --all

netplan generate pārbauda sintaksi un uzraksta networkd vienības, neaiztiekot strādājošo tīklu. Minimāla statiska konfigurācija:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0:
      match:
        macaddress: "52:54:00:11:22:33"
      set-name: enp1s0
      dhcp4: false
      dhcp6: false
      addresses:
        - 192.0.2.10/24
      routes:
        - to: default
          via: 192.0.2.1
      nameservers:
        addresses: [192.0.2.1, 9.9.9.9]

Ievērojiet routes:, nevis gateway4:. Vecā atslēga ir novecojusi, un netplan par to brīdina katrā palaišanas reizē.

Tagad komanda, kas glābj karjeras. netplan try pielieto jauno konfigurāciju, gaida 120 sekundes uz Enter un atgriež veco, ja to nenospiežat. Ja esat pārrāvis pats savu SSH sesiju, nospiest Enter vairs nav kam, tāpēc konfigurācija tiek atgriezta un serveris atkal ir pieejams. Divi ierobežojumi: vajadzīgs interaktīvs terminālis, un tiek atsaukts tikai tas, ko mainīja pats netplan, nevis adrese, kuru ar roku pievienojāt ar ip. netplan apply lietojiet tad, kad jau sēžat pie konsoles.

netplan try
networkctl status enp1s0
networkctl reconfigure enp1s0
journalctl -b -u systemd-networkd

Ja sāknēšana divas minūtes stāv uz systemd-networkd-wait-online, konfigurācijā ir saskarne, kas nekad nepaceļas, parasti otra tīkla karte, kurai nekas nav pievienots. Atzīmējiet to netplan ar optional: true.

AlmaLinux 9: NetworkManager un nmcli

Nav ne ifup, ne /etc/init.d/network, un pakotne network-scripts no RHEL 9 ir izņemta. NetworkManager joprojām lasa vecos ifcfg- failus, taču šis formāts ir novecojis, un viss, ko izveido nmcli, nonāk atslēgas failā /etc/NetworkManager/system-connections/ ar paplašinājumu .nmconnection un tiesībām 0600. Sāciet šeit:

nmcli device status
nmcli -f NAME,DEVICE,AUTOCONNECT,ACTIVE connection show
journalctl -b -u NetworkManager

Biežākais vaininieks ir tieši trešajā kolonnā: profils, kuram autoconnect ir no. Ar roku pacelts, tas darbojas nevainojami, bet sāknēšanas laikā netiek pielietots. To atstāj instalatori, virtuālo mašīnu klonēšana un nmcli connection add bez šī karodziņa.

nmcli connection modify "enp1s0" connection.autoconnect yes
nmcli connection modify "enp1s0" ipv4.method manual ipv4.addresses 192.0.2.10/24 ipv4.gateway 192.0.2.1 ipv4.dns "192.0.2.1 9.9.9.9"
nmcli connection up "enp1s0"

modify uzraksta failu, bet neaiztiek darbojošos savienojumu. Pēc tā izpildiet connection up vai nmcli device reapply enp1s0, citādi testēsiet izmaiņu, kas vēl nav spēkā. Ja atslēgas failu labojāt redaktorā, vispirms izpildiet nmcli connection reload.

Otrā klasika ir divi profili vienai kartei, parasti palicis "Wired connection 1" blakus jūsu statiskajam profilam. Abi ceļas automātiski, uzvar viens, un to nevajag atstāt nejaušībai. Lieko izdzēsiet ar nmcli connection delete uuid ... vai sakārtojiet connection.autoconnect-priority. Pie konsoles to pašu izdara nmtui teksta saskarnē, un tur grūtāk kļūdīties rakstot.

DNS šeit neiet caur systemd-resolved. AlmaLinux 9 šis pakalpojums ir izslēgts, ja vien to neesat ieslēdzis pats, un /etc/resolv.conf raksta pats NetworkManager: tas ir parasts fails, kura pirmā rinda ir # Generated by NetworkManager. Tā ir normāla situācija, tāpēc netaisiet no tā simbolisko saiti. resolvectl nāk atsevišķā pakotnē, tāpēc tā var arī nebūt, un pat tad, ja tā ir, uz neskartas sistēmas tas rāda tukšu DNS stāvokli, kamēr vārdu izšķiršana caur glibc strādā nevainojami. Pārbaudiet to, kas serveri patiešām apkalpo:

cat /etc/resolv.conf
nmcli -f IP4.DNS,IP6.DNS device show enp1s0
getent hosts cloudhosting.lv

Tukšs fails vai fails ar iepriekšējā pakalpojumu sniedzēja resolveriem nozīmē, ka profilā ierakstīti nepareizi serveri: uzstādiet tos ar nmcli connection modify "enp1s0" ipv4.dns "192.0.2.1 9.9.9.9" un paceliet savienojumu no jauna. Ja tos atkal un atkal pārraksta DHCP atbilde, pievienojiet ipv4.ignore-auto-dns yes. No tā arī rodas pazīstamais "pēc IP strādā, pēc vārda ne".

cloud-init atliek veco konfigurāciju atpakaļ

Pazīme: labojums strādā, pēc restarta atgriežas vecā konfigurācija, un jūsu fails ir pārrakstīts. Mākoņa attēlos abās sistēmās cloud-init sāknēšanas laikā tīkla konfigurāciju ģenerē no jauna: Ubuntu failā /etc/netplan/50-cloud-init.yaml, AlmaLinux NetworkManager profilos.

cloud-init status --long
head -5 /etc/netplan/50-cloud-init.yaml

Tīkla pārvaldību izslēdz, izveidojot /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg ar vienu rindu:

network: {config: disabled}

Pēc tam savu konfigurāciju lieciet atsevišķā failā, kas kārtojas aiz cloud-init faila, piemēram, /etc/netplan/60-static.yaml, atkal ar tiesībām 600. Pašu cloud-init failu neaiztieciet; ja attēlu kādreiz izvietos no jauna, izdzīvot vajadzētu jūsu failam. Šeit ir viena lamatu vieta: netplan abus failus vienai un tai pašai saskarnei apvieno pa atslēgai, nevis aizstāj vienu ar otru. Sasaiste notiek pēc saskarnes identifikatora, tāpēc vispirms ieskatieties cloud-init failā un lietojiet tieši to identifikatoru, kas tur ierakstīts, eth0, enp1s0 vai kāds nu tas ir. Cits identifikators tai pašai kartei nozīmē divus atsevišķus aprakstus, nevis vienu pārrakstīšanu, un cloud-init dhcp4: true turpina darboties. Viss, ko neatkārtojat, paliek spēkā, un vissāpīgākā atslēga ir dhcp4: true no mākoņa attēla. Ja to atstājat, uz vienas kartes vienlaikus dzīvo jūsu statiskā adrese un DHCP klients: divi noklusējuma maršruti ar neparedzamām metrikām, DHCP izsniegtie vārdu serveri sacenšas ar jūsu norādītajiem, un uzvedība mainās no vienas sāknēšanas uz nākamo. Tieši tāpēc iepriekšējā piemērā ir skaidri rakstīts dhcp4: false un dhcp6: false. Apvienoto rezultātu pārbaudiet ar netplan get, kas izvada kopējo koku, nevis atsevišķu failu.

Saskarnei ir cits nosaukums nekā vakar

Paredzamie nosaukumi veidojas no aparatūras un PCI topoloģijas, tāpēc enp1s0 pēc jaunas tīkla kartes pievienošanas, virtuālās kartes modeļa maiņas vai diska pārlikšanas citā dzelzī kļūst par ens18. Konfigurācijā nosaukta saskarne, kuras vairs nav, tāpēc nekas netiek konfigurēts, un ip -br link rāda svešinieku.

ip -br link
udevadm info -q property /sys/class/net/ens18 | grep ID_NET_NAME

Vaicājiet par to nosaukumu, ko tiešām rāda ip -br link, nevis par konfigurācijā ierakstīto: vecās saskarnes sysfs vairs nav, tāpēc jautājums par to atgriež tikai kļūdu par nezināmu ierīci. Atbildē redzamās ID_NET_NAME_* vērtības ir varianti, no kuriem udev izvēlējās, un pēc tām redzams, vai nosaukums nāk no slota, PCI ceļa vai MAC adreses.

Labojiet konfigurāciju, nevis mēģiniet pārsaukt visu atpakaļ: Ubuntu izmantojiet match pēc macaddress kopā ar set-name, kā parādīts augstāk, AlmaLinux iestatiet connection.interface-name uz jauno nosaukumu vai piesaistiet profilu kartei ar 802-3-ethernet.mac-address. Viens brīdinājums tiem, kas gatavo virtuālo mašīnu veidnes: klonēšana maina MAC adresi, tāpēc atbilstība pēc MAC vairs neatbilst nekam. Veidnēs labāk lietot nosaukuma šablonu vai DHCP.

Kad ping iet, bet SSH ne

Tad tīkls ir kārtībā un jūs meklējat nepareizajā līmenī.

ss -tlnp | grep :22
systemctl status ssh.service ssh.socket
systemctl status sshd

Ubuntu 24.04 OpenSSH pārgāja uz ligzdas aktivizāciju, tāpēc tur lietojiet otro komandu, bet AlmaLinux trešo. Sekas pārsteidz: 24.04 direktīva Port failā sshd_config tiek ignorēta, jo klausās ligzdas vienība. Izpildiet systemctl edit ssh.socket, ierakstiet tukšu ListenStream=, lai notīrītu noklusējumu, un tad ListenStream=2222. AlmaLinux 9 nestandarta portam jāpiekrīt arī SELinux: semanage port -a -t ssh_port_t -p tcp 2222 no pakotnes policycoreutils-python-utils.

Otra puse ir ugunsmūra noteikumi. AlmaLinux viss, kas pievienots ar firewall-cmd bez --permanent, pēc restarta pazūd; firewall-cmd --runtime-to-permanent saglabā to, kas šobrīd ir spēkā.

Pārbaudiet, vai labojums izdzīvo restartu

Tīkls, kas salabots ar ip addr add, nav salabots, tas ir aizņemts līdz nākamajai sāknēšanai. Kad konfigurācija ir pareiza, restartējiet apzināti, ar atvērtu konsoli, jūsu izvēlētā laikā. Tad pārliecinieties, ka pakalpojumi, kuriem tīkls jāpaceļ, vispār ir ieslēgti, pirmā rinda Ubuntu, otrā AlmaLinux, kur systemd-resolved pārbaudē apzināti nav iekļauts, jo veselā sistēmā tas ir izslēgts:

systemctl is-enabled systemd-networkd systemd-resolved
systemctl is-enabled NetworkManager
ip -br addr; ip route

Strādājošās konfigurācijas kopiju kopā ar adresi, vārteju un saskarnes nosaukumu glabājiet ārpus servera. Tas pārvērš sliktu nakti piecās minūtēs rakstīšanas. Ja serveris mūsu datu centrā Rīgā pēc visa šī joprojām klusē, mūsu inženieri ir sasniedzami visu diennakti, un IT atbalsts var pieslēgties pa konsoli un paskatīties kopā ar jums.

Gribi, lai to darām mēs?
VPS. NVMe virtuālie serveri, gatavi minūtes laikā.
Uzzināt vairāk

Gatavs sākt?

Palaid dažās minūtēs vai aprunājies ar inženieri par piemērotāko risinājumu.