Konsoll, skall og SSH: tre separate dører til samme maskin
Når du ikke når en maskin, er første spørsmål hvilken dør du brukte. Det finnes tre, og hver av dem er avhengig av at ulike ting virker.
AtlasPVE ·
Denne artikkelen svarer på
- proxmox konsoll åpner ikke
- proxmox konsoll eller skall forskjell
- får ikke ssh til proxmox vm
- låst ute etter nettverksendring
- proxmox feil 401 no ticket
Du når ikke en maskin. Før du får panikk, still ett spørsmål: hvilken dør brukte du?
Det finnes tre separate dører til samme maskin, og hver av dem er avhengig av at ulike ting lever. Å vite hvilken som lukket seg forteller deg direkte hvor problemet ligger.
Tre dører
Konsoll. Å se på maskinens skjerm og tastatur. Tilsvarende det å gå bort til en fysisk tjener og koble til en skjerm. Den bruker ikke gjestens nettverk, den går via verten.
Skall. Å skrive en kommando og få utdata tilbake. Det etterligner ingen skjerm, det åpner en kommandokanal direkte.
SSH. En tjeneste som kjører inne i gjesten. Den trenger nettverket, den trenger at tjenesten er oppe, den trenger påloggingsdetaljer.
Regelen: jo mer behagelig døren er, jo mer av gjesten må virke
SSH er den mest behagelige. Du kobler til fra din egen terminal, kopier og lim inn virker, du flytter filer. Til gjengjeld krever den mest: nettverksoppsettet må stemme, grensesnittet må være oppe, tjenesten må kjøre, brannmuren må tillate det, nøkkelen eller passordet må være gyldig. Ryker ett ledd i den kjeden, lukkes døren.
Konsollen er den minst behagelige. Du ser på en skjerm i en nettleser, og kopier og lim inn er som regel tungvint. Til gjengjeld krever den nesten ingenting: gjestens nettverk kan være ødelagt, brannmuren kan blokkere alt, SSH trenger ikke engang å være installert, og skjermen dukker opp likevel. For den skjermen kommer fra verten, ikke fra gjestens nettverk.
Derfor er konsollen en redningsvei. Ikke fordi den er behagelig, men fordi den avhenger av så lite.
Den klassiske hendelsen
Du endrer en nettverksinnstilling. Du tar den i bruk. Forbindelsen faller og kommer ikke tilbake.
Det du gjorde trenger ikke engang å ha vært feil: noen ganger er innstillingen riktig, og økten dør bare mens grensesnittet skifter over. Men nå når du ikke maskinen over nettverket, og for å rette det måtte du nettopp nå maskinen.
Du åpner konsollen, skjermen dukker opp, du retter innstillingen. Fordi den aldri gikk over nettverket, rørte det ødelagte nettverket den ikke.
Den praktiske vanen som følger: bekreft at konsollen åpner seg før du rører en nettverksinnstilling. Gjør det risikable arbeidet mens du allerede holder en fungerende redningsvei, i stedet for å lete etter en etterpå.
På skallsiden er en container og en virtuell maskin ikke det samme
Denne forskjellen overrasker mange, for i panelet står de to ved siden av hverandre og tilbyr samme knapp.
I en container kan verten gå rett inn. Containeren deler vertens kjerne, så prosessene der inne er allerede synlige for verten. Verten kan kjøre en kommando der og ber ikke innsiden om noe.
I en virtuell maskin virker det ikke slik. En virtuell maskin er en forseglet boks: verten ser disken og minnet som blokker og vet ikke hva som er inni. Verten kan ikke dytte en kommando inn i boksen.
Den eneste veien inn er at noe inne i boksen lytter. Det er nøyaktig hva gjesteagenten er: en liten tjeneste installert inne i den virtuelle maskinen som lytter på forespørsler fra verten og svarer. Er den ikke installert, finnes ikke skalldøren for den virtuelle maskinen, og det er ikke en feil, men en følge av arkitekturen.
Av samme grunn virker ikke skallet mens en virtuell maskin er avslått. Det er ingenting som lytter. Konsollen viser derimot også skjermen til en avslått maskin, og når du starter den ser du hva som skjer fra første sekund.
Konsollen har også grenser
For å være ærlig er konsollen ikke magisk.
Er verten selv nede, er alle tre dørene lukket. Konsollen går via verten, så den forsvinner sammen med den.
Og så er det dette: konsollen gir deg en skjerm, ikke filer. Må du få ut en fil, er konsollen et dårlig verktøy. Bra til redning, ikke til daglig arbeid.
Til slutt er konsolltilgang en egen rettighet. At en bruker kan lese panelet betyr ikke at vedkommende kan se på skjermene til maskinene, og den delingen er tilsiktet: en skjerm viser innholdet i arbeidet som pågår.
Hva Atlas gjør
Atlas åpner konsollen fra sin egen skjerm, uten å be om en andre pålogging. Det høres lite ut, men bak ligger en historie verdt å fortelle ærlig.
Konsollen bor egentlig på Proxmox-panelets egen adresse. Atlas ligger på en annen. For en nettleser er det to separate nettsteder, og økten til det ene følger ikke med til det andre av seg selv. Uten tiltak får en bruker som trykker på konsollknappen en feil om "ingen økt" og blir bedt om å logge inn på panelet en gang til.
Den første løsningen var denne: overlevere økten til panelet fra innsiden av en usynlig ramme. Det virket. Så strammet nettleserne inn reglene for tredjeparts informasjonskapsler, og det sluttet å virke. Det var ingen feil i koden; grunnen under den flyttet seg.
Den andre løsningen ble værende fordi den er stødigere: konsollen serveres fra Atlas sin egen adresse. Nettleseren ser ett enkelt nettsted, det er ingen økt igjen å overlevere, og problemet forsvinner ved kilden.
To små, men ærlige detaljer: hodene som setter informasjonskapsler i svarene fra panelet fjernes, så Atlas samler ikke panelkapsler på sin egen adresse. Og forbindelsen til panelet blir inne i maskinen, den går aldri ut på nettverket.
Den generelle lærdommen, uavhengig av produkt: en løsning som virket og slutter å virke betyr ikke alltid en feil. Noen ganger har en antakelse du lente deg på endret seg. Løsningen som varer, er den som lener seg på færre antakelser.
Kilder
Proxmox sin egen dokumentasjon. På engelsk, og den har siste ord i denne saken.