Uruchomienie interfejsu szeregowego jest podstawą i jednym z pierwszych kroków w prawie każdym projekcie embedded.
Jest to najprostsza metoda na komunikację ze sprzętem - możemy użyć normalnej konsoli systemowej, zobaczyć logi z bootowania, porozumieć się z bootloaderem itp.
Bez tego będzie nam bardzo ciężko zrobić ciekawsze rzeczy jak np.
Przez konsolę szeregową można uzyskać dostęp do maski startowej i bootmanagera Petiboot na serwerze 2U OpenPOWER single CPU RP2112.
Dostęp za pośrednictwem podłączonego monitora lub konsoli interfejsu modułu zdalnego dostępu IPMI nie jest możliwy, gdyż obecnie w jądrze Linuksa nie są zawarte sterowniki chipu graficznego ASPEED AST2400 dla architektury POWER.
Aby określić właściwe połączenie z konsolą zostaje wykorzystany dmesg na „ringbufforze” jądra.
Interesuje nas /dev/ttyUSB0 - to jest tzw. device node, czyli w uproszczeniu plik, który jest abstrakcyjnym ucieleśnieniem UARTa w linuxie.
Jak wiadomo, wszystko w Linuxie jest plikiem - nie inaczej będzie w tym przypadku.
UART, konsola szeregowa, RS-232 albo połączenie po serialu - różne nazwy, nie wszystkie do końca poprawne ale mówiące o tym samym.
Interfejs jest asynchroniczny - nadawca (Tx) i odbiorca (Rx) muszą z tego powodu z góry ustalić parametry transmisji np.
Interfejs jest dość wolny, jego szybkość określa się w tzw. “baud rate” - popularnymi wartościami są 9600 i 115200.
Istnieją bardziej zaawansowane wersje interfejsu szeregowego np. RS-485, bardziej odporne na zakłócenia i bardziej skomplikowane w implementacji.
Aby utworzyć połączenie z konsolą szeregową za pośrednictwem kabla null modem korzystamy w tym przykładzie z aplikacji PuTTY.
PuTTY jest dostępny w wersji dla systemu Windows jak i Linux.
Najpierw należy zainstalować PuTTY.
Za pomocą PuTTY może zostać utworzone połączenie z serwerem OpenPOWER.
W Linuksie za pośrednictwem programu minicom może zostać również uzyskany bezpośredni dostęp do konsoli serwera OpenPOWER.
Jako alternatywa dla połączenia szeregowego przez kabel null modem z ipmitool, może również zostać utworzone połączenie z BMC za pośrednictwem Serial Over LAN (SOL).
Minicom jest małym konsolowym poleceniem używanym do połączeń szeregowych.
W bardziej pragmatycznej definicji minicom może być używany do łączenia modemów, routerów i przełączania portów konsoli za pośrednictwem portu szeregowego.
Zazwyczaj używa się minicom do łączenia z fizycznym portem, gdzie łączy się z urządzeniem szeregowym, takim jak przełącznik, router, PBX itp.
Jeżeli serwer/komputer nie jest wyposażony w złącze szeregowe można użyć konwertera USB.
Konwerter USB-UART np.
Adapter do karty SD: np.
Karta SD np.
Oprogramowanie - na Linuxie picocom, minicom lub screen, na Windowsie Putty.
UWAGA - należy zwrócić szczególną uwagę na połączenie naprzemienne pinów RX i TX.
Pinout Raspberry Pi z oficjalnej dokumentacji - link.
Jak korzystać z konsoli szeregowej dostępnej dla Raspberry Pi?
Wielokrotnie korzystałem z interfejsu UART na Raspberry Pi 2, 3 i 4 (na 5 jeszcze nie było okazji).
Opisane tutaj metody powinny działać tak samo na platformach Raspberry Pi 2, 3, Zero, 4, 5.
Żeby nie komplikować, użyję domyślnego oprogramowania na malinę, czyli Raspbiana.
System jest odczytywany przez Raspberry poprzez kartę pamięci, więc zanim zaczniemy musimy wgrać na nią odpowiedni system (Raspbian Bookworm 64bit).
Uwaga: należy zwrócić szczególną uwagę żeby enable_uart=1 znajdował się w sekcji [all].
Jeżeli umieścilibyśmy go np.
Baud rate interfejsu ustawia kernel opierając się na informacjach zawartych w pliku cmdline.txt.
Ten plik zawiera listę argumentów (command line arguments), która jest przekazywana do jądra.
Po podłączeniu konwertera otwieramy menedżer urządzeń w panelu sterowania.
W zakładce Ports powinna pokazać się pozycja “USB to UART Bridge”.
W nawiasie będzie informacja pod który port COM zostało podpięte nasze urządzenie.
W Linuksie za pośrednictwem programu minicom może zostać również uzyskany bezpośredni dostęp do konsoli serwera OpenPOWER.
Do połączenia się oprócz nazwy device node potrzebujemy również prędkości (baud rate).
Żeby otworzyć połączenie z raspberry.
Powodów może być kilka, ale najważniejszym jest bezpieczeństwo.
Kernel jest między innymi odpowiedzialny za zarządzanie sprzętem.
Jeśli podłączymy nowe urządzenie np. do portu USB, taka informacja zostanie odnotowana przez kernel, który załaduje odpowiedni sterownik i pozwoli nam komunikować się z modułem.
Interesuje nas /dev/ttyUSB0 - to jest tzw. device node, czyli w uproszczeniu plik, który jest abstrakcyjnym ucieleśnieniem UARTa w linuxie.
Baud rate interfejsu ustawia kernel opierając się na informacjach zawartych w pliku cmdline.txt.
Ten plik zawiera listę argumentów (command line arguments), która jest przekazywana do jądra.
Dlaczego GNU Screen pozostaje aktualny we współczesnej administracji LinuxGNU Screen vs. tmux: Wybór odpowiedniego multiplekseraInstalacja GNU ScreenUruchamianie sesji ScreenPodstawowa sesjaNazwana sesja (zalecane)Uruchamianie sesji i natychmiastowe wykonanie poleceniaUruchamianie sesji w trybie odłączonymPrefiks poleceń: Zrozumienie Ctrl+AOdłączanie i ponowne podłączanie sesjiOdłączanie od działającej sesjiWyświetlanie wszystkich sesjiPonowne podłączanie do konkretnej sesjiWymuszone podłączenie do już podłączonej sesjiWielokrotne podłączanie: Dwóch użytkowników w tej samej sesjiZarządzanie oknami w sesjiTworzenie nowego oknaNawigacja między oknamiZmiana nazwy oknaZamykanie oknaPodział ekranu na regionyPodział poziomy (góra/dół)Podział pionowy (lewo/prawo)Przechodzenie między regionamiPrzypisywanie okna do regionuUsuwanie regionuKopiowanie i wklejanie (tryb przewijania)Blokowanie sesji ScreenWysyłanie poleceń do sesji bez podłączaniaKonfigurowanie Screen za pomocą .screenrcZalecana produkcyjna konfiguracja .screenrcPraktyczne przypadki użycia w środowisku produkcyjnymBezpieczne uruchamianie migracji bazy danychJednoczesne monitorowanie wielu plików logówZautomatyzowany skrypt wdrożeniowy ze ScreenDostęp do konsoli szeregowejTypowe pułapki i jak ich unikaćSzybki przewodnik: Podstawowe polecenia ScreenKontekst wdrożenia: Screen w zarządzanych środowiskach hostingowychMacierz decyzyjna: Kiedy używać ScreenTechniczna lista kontrolna kluczowych wnioskówFAQGNU Screen to multiplekser terminalowy, który pozwala tworzyć, zarządzać i utrwalać wiele sesji powłoki w jednym oknie terminala.
Po odłączeniu się od sesji Screen, każdy uruchomiony w niej proces kontynuuje działanie - przeżywając rozłączenia SSH, przerwy w sieci i zamknięcia terminala - i pozostaje w pełni dostępny w momencie ponownego połączenia.
Dla każdego, kto zarządza zdalnymi serwerami przez SSH, ta jedna funkcja eliminuje całą klasę ryzyka operacyjnego: zerwane połączenie nie zabija już uruchomionej migracji bazy danych, wielogodzinnego zadania kompilacji ani procesu monitorowania logów na żywo.
Narzędzia takie jak tmux zyskały popularność, ale Screen jest dostarczany jako domyślny lub niemal domyślny pakiet praktycznie w każdej korporacyjnej dystrybucji Linux i minimalnym obrazie serwera.
Gdy łączysz się przez SSH z maszyną bare-metal lub świeżo uruchomionym instancją VPS Hosting, Screen jest prawie zawsze dostępny bez żadnej dodatkowej instalacji.
Jego niskie zużycie pamięci i zgodność z POSIX czynią go pragmatycznym wyborem w środowiskach o ograniczonych zasobach lub z restrykcjami.
| Funkcja | GNU Screen | tmux |
|---|---|---|
| Domyślna dostępność | Preinstalowany w większości dystrybucji | Wymaga jawnej instalacji |
| Plik konfiguracyjny | ~/.screenrc | ~/.tmux.conf |
| Podział paneli (poziomy/pionowy) | Ograniczony (tylko pionowy przez regiony) | Pełny, elastyczny podział paneli |
| Współdzielenie sesji | Natywne wielokrotne podłączanie | Natywne wielokrotne podłączanie |
| Skryptowanie / automatyzacja | Wstrzykiwanie poleceń screen -X | tmux send-keys, rozbudowane API |
| Zużycie pamięci | Bardzo niskie | Niskie |
| Obsługa urządzeń szeregowych | Tak (screen /dev/ttyS0) | Nie |
| Personalizacja paska stanu | Umiarkowana (hardstatus) | Bardzo elastyczna |
| Tryb kopiowania | Styl vi | Styl vi lub emacs |
| Ekosystem wtyczek | Brak | Aktywny (TPM) |
| Idealny przypadek użycia | Minimalne serwery, konsole szeregowe, starsze środowiska | Stacje robocze deweloperów, złożone układy |
Praktyczne wskazówki: Na bezgłowym Serwerze Dedykowanym obsługującym długoterminowe zadania w tle, prostota i powszechna dostępność Screen czynią go wyborem o mniejszym tarciu.
Dla dewelopera potrzebującego podzielonych paneli i rozbudowanego paska stanu, wygrywa tmux.
Screen jest preinstalowany w większości dystrybucji.
Sprawdź za pomocą:
“`bashscreen -version“`
Jeśli go nie ma, zainstaluj go przy użyciu odpowiedniego menedżera pakietów:
Po instalacji nie jest wymagany żaden demon ani usługa.
Screen działa wyłącznie jako proces przestrzeni użytkownika.
“`bashscreen“`
Przenosi cię do nowej sesji ze standardową powłoką.
Interfejs jest nie do odróżnienia od normalnego terminala, dopóki nie użyjesz prefiksu poleceń Screen.
“`bashscreen -S session_name“`
Zawsze nadawaj nazwy sesjom w środowisku produkcyjnym.
Nienazwane sesje są identyfikowane wyłącznie przez PID, co sprawia, że ponowne podłączanie jest podatne na błędy, gdy działa wiele sesji.
Wskazówka dotycząca konwencji nazewnictwa: Używaj opisowych nazw odzwierciedlających obciążenie - screen -S db-migration, screen -S log-monitor, screen -S build-php82.
Jest to właściwy wzorzec do uruchamiania zadań w tle z cron lub skryptów wdrożeniowych - proces działa wewnątrz nazwanej, możliwej do odzyskania sesji Screen bez konieczności posiadania interaktywnego terminala.
Każdy skrót klawiaturowy Screen zaczyna się od sekwencji ucieczki Ctrl+A.
To naciśnięcie klawisza informuje Screen, że następny znak jest poleceniem, a nie wejściem dla uruchomionego programu.
Zrozumienie tego modelu jest niezbędne przed zapamiętaniem poszczególnych skrótów.
Jeśli uruchomisz program wewnątrz Screen, który sam używa Ctrl+A (na przykład niektóre edytory tekstu lub biblioteka readline), możesz wysłać dosłowny Ctrl+A do wewnętrznego programu, naciskając Ctrl+A dwukrotnie (Ctrl+A, Ctrl+A).
Odłączanie od działającej sesji
“`Ctrl+A, D“`
Sesja kontynuuje działanie w tle.
Wracasz do powłoki nadrzędnej.
Żaden proces wewnątrz sesji nie jest przerywany.
Wyświetlanie wszystkich sesji
“`bashscreen -ls“`
Przykładowe wyjście:
“`There are screens on:14231.db-migration (Detached)14089.log-monitor (Attached)13901.build-php82 (Detached)3 Sockets in /var/run/screen/S-deploy.“`
Status Attached oznacza, że inny terminal jest aktualnie podłączony do tej sesji.
Detached oznacza, że sesja działa, ale żaden terminal nie jest podłączony.
Ponowne podłączanie do konkretnej sesji
“`bashscreen -r db-migration“`
Lub przez PID:
“`bashscreen -r 14231“`
Wymuszone podłączenie do już podłączonej sesji
Jeśli sesja pokazuje Attached, ale musisz ją przejąć (na przykład po tym, jak nieaktywne połączenie SSH pozostawiło ją zablokowaną):
“`bashscreen -d -r log-monitor“`
Flaga -d wymusza odłączenie drugiego połączenia przed ponownym podłączeniem ciebie.
Jest to kluczowa technika odzyskiwania, gdy poprzednia sesja SSH zakończyła się bez czystego odłączenia.
Wielokrotne podłączanie: Dwóch użytkowników w tej samej sesji
“`bashscreen -x session_name“`
Oba terminale widzą identyczne wyjście w czasie rzeczywistym.
Jest to nieocenione przy wspólnym debugowaniu lub prowadzonych przez serwer prezentacjach z kolegą - obie strony obserwują i mogą wchodzić w interakcję z tą samą powłoką.
Jedna sesja Screen może zawierać nieograniczoną liczbę okien.
Każde okno jest niezależną powłoką (lub procesem).
Tworzenie nowego okna
“`Ctrl+A, C“`
Nawigacja między oknami
| Skrót | Akcja |
|---|---|
| Ctrl+A, N | Następne okno |
| Ctrl+A, P | Poprzednie okno |
| Ctrl+A, 0-9 | Przejdź bezpośrednio do okna według numeru |
| Ctrl+A, " | Interaktywna lista wszystkich okien |
| Ctrl+A, ' | Monit o wprowadzenie numeru lub nazwy okna |
Zmiana nazwy okna
“`Ctrl+A, A“`
Wpisz nową nazwę i naciśnij Enter.
Znaczące nazwy okien są wyświetlane na pasku hardstatus, co znacznie przyspiesza nawigację w sesjach z wieloma oknami.
Zamykanie okna
Wpisz exit lub naciśnij Ctrl+D w powłoce okna.
Gdy ostatnie okno w sesji zostanie zamknięte, sesja kończy się.
Screen obsługuje podział terminala na wiele widocznych regionów, z których każdy wyświetla jednocześnie inne okno.
Podział poziomy (góra/dół)
“`Ctrl+A, S“`
Podział pionowy (lewo/prawo)
“`Ctrl+A, |“`
Uwaga: Podział pionowy wymaga Screen 4.1.0 lub nowszego.
Przechodzenie między regionami
“`Ctrl+A, Tab“`
Przypisywanie okna do regionu
Po przeniesieniu fokusu do regionu, użyj Ctrl+A, ", aby wybrać okno do wyświetlenia w tym miejscu.
Usuwanie regionu
“`Ctrl+A, X (remove current region)Ctrl+A, Q (remove all regions except current)“`
Ważne rozróżnienie: Usunięcie regionu nie zamyka działającego w nim okna.
Okno nadal działa; po prostu przestajesz wyświetlać je w tym podziale.
Screen utrzymuje bufor przewijania dla każdego okna.
Aby uzyskać do niego dostęp:
“`Ctrl+A, [“`
Powoduje to wejście w tryb kopiowania.
Nawigacja używa klawiszy w stylu vi:
Aby wkleić skopiowany tekst:
“`Ctrl+A, ]“`
Domyślny bufor przewijania wynosi 100 linii.
Do monitorowania logów serwera zwiększ go znacznie w .screenrc (opisane poniżej).
“`Ctrl+A, X“`
Sesja blokuje się natychmiast i przed udzieleniem dostępu prosi o podanie hasła użytkownika Unix.
Używaj tego, gdy odchodzisz od terminala podłączonego do wrażliwego serwera - jest to szybsze niż zamykanie połączenia SSH i ponowne podłączanie.
Flaga -X pozwala wstrzykiwać polecenia Screen do działającej sesji z zewnątrz:
“`bashscreen -S db-migration -X stuff "tail -f /var/log/mysql/error.logn"“`
Polecenie stuff wysyła naciśnięcia klawiszy do aktywnego okna nazwanej sesji.
n symuluje naciśnięcie Enter.
Technika ta jest używana w skryptach automatyzacji wdrożeń do interakcji z długo działającymi sesjami Screen bez konieczności ręcznego podłączania.
Plik ~/.screenrc jest odczytywany przy uruchomieniu i kontroluje domyślne zachowanie Screen.
Dobrze skonstruowany .screenrc przekształca Screen z podstawowego multipleksera w naprawdę ergonomiczne środowisko.
Utwórz lub edytuj go:
“`bashnano ~/.screenrc“`
Zalecana produkcyjna konfiguracja .screenrc
“`bashDisable the startup messagestartup_message offSet scrollback buffer to 10,000 lines (critical for log monitoring)defscrollback 10000Enable UTF-8defutf8 onSet default shellshell -$SHELLVisual bell instead of audiblevbell onHardstatus bar: shows hostname, window list, and current timehardstatus onhardstatus alwayslastlinehardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %d/%m %{W}%c %{g}]'Bind F2 to create a new windowbindkey -k k2 screenChange escape key to Ctrl+B (useful if Ctrl+A conflicts with other tools)escape ^BbAuto-detach on hangup signal (critical for SSH session drops)autodetach onDisable flow control (prevents Ctrl+S from freezing the terminal)defflow off“`
Dyrektywa autodetach on jest niezbędna przy użyciu SSH.
Bez niej, jeśli połączenie SSH zostanie nieoczekiwanie zerwane (zamiast naciśnięcia Ctrl+A, D), Screen może zakończyć sesję zamiast ją odłączyć.
Dzięki autodetach on, sygnał SIGHUP (wysyłany przy rozłączeniu SSH) wyzwala czyste odłączenie zamiast zakończenia sesji.
defflow off zapobiega częstej frustracji przypadkowego naciśnięcia Ctrl+S i pozornego zamrożenia terminala.
Wielu administratorów traci minuty na rozwiązywanie problemu „zamrożonego” terminala, który po prostu jest w pauzie sterowania przepływem XON/XOFF.
Bezpieczne uruchamianie migracji bazy danych
“`bashscreen -S db-migrateInside the session:php artisan migrate -force 2>&1 | tee /var/log/migration-$(date +%F).logDetach: Ctrl+A, DReattach later to check progress:screen -r db-migrate“`
Jeśli połączenie SSH zostanie zerwane w trakcie migracji, proces kontynuuje działanie.
Podłączasz się ponownie i zastajesz go albo nadal działającego, albo zakończonego z pełnym wyjściem zachowanym w logu i buforze przewijania.
Jednoczesne monitorowanie wielu plików logów
“`bashscreen -S monitoringWindow 0: nginx access logtail -f /var/log/nginx/access.logCtrl+A, C - new windowWindow 1: application error logtail -f /var/log/app/error.logCtrl+A, C - new windowWindow 2: system messagesjournalctl -f“`
Nawiguj między oknami za pomocą Ctrl+A, ", aby zobaczyć, który log generuje aktywność.
Zautomatyzowany skrypt wdrożeniowy ze Screen
“`bash#!/bin/bashscreen -dmS deploy bash -c 'git pull origin main &&composer install -no-dev &&php artisan config:cache &&systemctl reload php8.2-fpm &&echo "Deployment complete at $(date)" >> /var/log/deploy.log'echo "Deployment started in background screen session 'deploy'"echo "Monitor with: screen -r deploy"“`
Ten wzorzec jest szczególnie przydatny na VPS z cPanel, gdzie możesz zarządzać wieloma wdrożeniami aplikacji z jednej powłoki administracyjnej.
Dostęp do konsoli szeregowej
“`bashscreen /dev/ttyS0 115200“`
Screen pełni podwójną rolę emulatora terminala szeregowego.
Jest to standardowa technika dostępu do konsoli fizycznego serwera, przełącznika sieciowego lub urządzenia wbudowanego przez połączenie szeregowe - bez konieczności używania minicom lub picocom.
Zagnieżdżone sesje Screen: Jeśli łączysz się przez SSH z sesji Screen na Maszynie A do Maszyny B i uruchamiasz tam Screen, masz teraz dwie warstwy obsługi Ctrl+A.
Wewnętrzna sesja Screen przechwytuje Ctrl+A zanim zewnętrzna go zobaczy.
Aby wysłać Ctrl+A do zewnętrznej sesji, naciśnij Ctrl+A, Ctrl+A.
Aby uniknąć zamieszania, zmień klawisz ucieczki wewnętrznej sesji w jej .screenrc używając escape ^Bb.
Martwe sesje nieoczyszczające się: Jeśli Screen ulegnie awarii lub host uruchomi się ponownie w sposób nieczysty, pliki gniazd mogą pozostać w /var/run/screen/ lub ~/.screen/, pokazując sesje jako Dead.
Wyczyść je za pomocą:
“`bashscreen -wipe“`
Sesja należąca do roota vs. użytkownika: Sesja Screen uruchomiona jako root nie może być ponownie podłączona przez użytkownika niebędącego rootem i odwrotnie.
Do COM-ow uzywasz minicoma i podobnych, agetty, mgetty ... zalezy od celu.
Wbrew pozorom warto jest umiec poslugiwac sie portem szeregowym.
Nie jest to trudne ale niestety na tyle skomplikowane, że za każdym razem wymagało dłuższego grzebania po forach, github issues i rozsianych dokumentach.
Putty tez ma mozliwosc laczenia sie po portach szeregowych (w konfiguracji).
A może by Panowie ruszyc z innej strony.
Niestety brak mi doswiadczenia z instalacja na Ubuntu sterow (i nie tyko z tym ) .
Probowalem sudo apt-get install [pliki sterow].
Jednak wywala ze niektore paczki maja bledy i NIE WIEM czy w koncu stery poinstalował.
Rozpocznij pracę z VPS Linux.
VPS Linux obsługuje się przede wszystkim za pomocą konsoli.
Z Panelu Klienta możesz przejść do konsoli web.
Najprostszym sposobem nadania dostępu zewnętrznej konsoli SSH do usługi VPS Linux jest wskazanie klucza publicznego podczas instalacji systemu.
Najpierw należy wygenerować klucze publiczny i prywatny.
Następnie skonfiguruj logowanie za ich pomocą podczas instalacji systemu w Panelu Klienta.
Po zakończeniu instalacji możesz zalogować się bezpośrednio do usługi z wykorzystaniem konsoli SSH.
Wymagany będzie do tego klucz prywatny, a sposób jego użycia będzie różnić się w zależności od tego, z jakiego narzędzia korzystasz.
Jeżeli logowanie za pomocą klucza nie zostało skonfigurowane podczas instalacji systemu, nadal można to zrobić.
Wymaga to jednak tymczasowego włączenia logowania hasłem, by uzyskać dostęp do VPS.
Po uzyskaniu dostępu i dodaniu klucza publicznego, wyłącz logowanie hasłem, przywracając poprzednie ustawienia konfiguracyjne.
Jeśli korzystasz z VPS Linux z Plesk Panel, nie musisz włączać logowania hasłem, by skonfigurować logowanie za pomocą klucza.
Zlokalizuj plik konfiguracyjny sshd_config (jego lokalizacja to /etc/ssh).
Aby zmiany weszły w życie, należy odświeżyć konfigurację.
Jeśli wszystko zostało wykonane poprawnie, możesz teraz zalogować się do VPS Linux przy wykorzystaniu zewnętrznej konsoli SSH (np. PuTTY).
W tym artykule opisano, jak używać konsoli szeregowej Azure do uzyskiwania dostępu do interfejsu w trybie tekstowym dla maszyn wirtualnych z systemem Linux oraz instancji w zestawie skalowania maszyn wirtualnych.
Konsola szeregowa łączy się z portem szeregowym ttys0 maszyny wirtualnej lub instancji zestawu skalowania maszyn wirtualnych, zapewniając niezależny dostęp od stanu sieci lub systemu operacyjnego.
Konsola szeregowa działa identycznie w przypadku maszyn wirtualnych i instancji zestawu skalowania maszyn wirtualnych.
Konto użytkownika korzystające z uwierzytelniania haseł musi istnieć na maszynie wirtualnej.
Możesz utworzyć użytkownika opartego na hasłach z funkcją resetowania hasła rozszerzenia dostępu do maszyny wirtualnej.
Wdrożenia klasyczne nie są obsługiwane.
Aby konsola szeregowa działała prawidłowo, system operacyjny gościa musi być skonfigurowany do odczytywania i zapisywania komunikatów konsoli do portu szeregowego.
Większość dystrybucji Endorsed Azure Linux ma domyślnie skonfigurowaną konsolę szeregową.
Jeśli nie widzisz niczego w konsoli szeregowej, upewnij się, że na maszynie wirtualnej włączono diagnostykę rozruchu.
Jeśli tworzysz niestandardowy obraz maszyny wirtualnej z systemem Linux, należy włączyć dostęp do konsoli w pliku /etc/inittab, aby uruchomić terminal na ttyS0.
Na przykład: S0:12345:respawn:/sbin/agetty -L 115200 console vt102.
Może być również konieczne uruchomić getty na ttyS0.
Należy również dodać ttys0 jako miejsce docelowe dla danych wyjściowych szeregowych.
Jeśli tworzysz niestandardowe jądro, rozważ włączenie tych flag jądra: CONFIG_SERIAL_8250=y i CONFIG_MAGIC_SYSRQ_SERIAL=y.
Naciśnij Enter, aby kontynuować i użyć edytora tekstów, aby naprawić plik FSTAB.
Aby to zrobić, może być konieczne użycie trybu pojedynczego użytkownika.
Jeśli skonfigurowano iptables do blokowania łączności SSH, możesz użyć konsoli szeregowej do interakcji z maszyną wirtualną bez konieczności użycia SSH.
Podobnie, jeśli zapora blokuje dostęp SSH, możesz uzyskać dostęp do maszyny wirtualnej za pośrednictwem konsoli szeregowej i ponownie skonfigurować zaporę.
Uzyskaj dostęp do konsoli szeregowej i zmień ustawienia.
Konsola szeregowa może być używana niezależnie od konfiguracji SSH maszyny wirtualnej, ponieważ nie wymaga połączenia sieciowego z maszyną wirtualną.
Uruchom ponownie maszynę wirtualną z poziomu bloku konsoli szeregowej, aby uzyskać dostęp do programu GRUB na maszynie wirtualnej z systemem Linux.
Domyślnie wszystkie subskrypcje mają włączony dostęp do konsoli szeregowej.
Konsolę szeregową można wyłączyć na poziomie subskrypcji lub na poziomie maszyny wirtualnej albo zestawu skalowania maszyn wirtualnych.
Istnieje znany problem polegający na tym, że konsola szeregowa Azure może się nie udać połączenie, gdy niestandardowe konto magazynu diagnostyki rozruchu ma ograniczenia zapory, podczas korzystania z polecenia az serial-console.
W 2026 r. konsola szeregowa Azure nie będzie już korzystać z kont magazynu diagnostyki rozruchu do nawiązywania połączenia.
W przypadku tej zmiany nie jest wymagana żadna akcja klienta.
Konsola szeregowa używa konta magazynu skonfigurowanego do diagnostyki rozruchu w przepływie pracy połączenia.
Po włączeniu zapory na tym koncie magazynu adresy IP usługi konsoli szeregowej muszą zostać dodane jako wykluczenia.
W poniższej tabeli wymieniono adresy IP, które muszą być dozwolone jako wykluczenia zapory na podstawie regionu lub lokalizacji geograficznej, w której znajduje się maszyna wirtualna.
To jest podzbiór pełnej listy adresów IP konsoli szeregowej używanych w tagu usługi SerialConsole.
Dostęp do kont magazynu diagnostyki rozruchu można ograniczyć za pomocą tagu usługi SerialConsole.
Tag usługi nie jest rozdzielony regionalnie.
Ruch w tagu usługi jest tylko przychodzący, a konsola szeregowa nie generuje ruchu do miejsc docelowych z możliwością kontroli klienta.
Mimo że zapory konta magazynu Azure nie obsługują obecnie tagów usługi, tag usługi SerialConsole może być używany programowo w celu ustalenia listy adresów IP.
Adresy IP, które muszą być dozwolone, są specyficzne dla regionu, w którym znajduje się maszyna wirtualna.
Na przykład maszyna wirtualna wdrożona w regionie Europy Północnej musi dodać następujące wykluczenia IP do zapory konta magazynu dla obszaru geograficznego Europy: 52.146.139.220 i 20.105.209.72.
W bieżącej operacji konsoli szeregowej gniazdo internetowe jest otwierane do punktu końcowego, takiego jak <region>.gateway.serialconsole.azure.com.
Upewnij się, że punkt końcowy serialconsole.azure.com jest dozwolony dla klientów przeglądarki w organizacji.
Po pomyślnym dodaniu adresów IP do zapory konta magazynowego spróbuj ponownie nawiązać połączenie konsoli szeregowej z maszyną wirtualną.
Dostęp do konsoli szeregowej jest ograniczony do użytkowników, którzy mają rolę Współautora maszyny wirtualnej lub wyższą w odniesieniu do maszyny wirtualnej.
Azure Konsola Szeregowa nie przegląda, nie kontroluje ani nie przechowuje żadnych danych przesyłanych do i z portu szeregowego maszyny wirtualnej.
Aby upewnić się, że wszystkie dane w pamięci, przenoszone na dyski za pomocą stronicowania przez maszyny wirtualne działające na konsoli szeregowej Azure są szyfrowane, należy użyć szyfrowania opartego na hoście.
Portal Azure lub Azure CLI pełnią rolę zdalnych terminali do portu szeregowego maszyny wirtualnej.
Ponieważ te terminale nie mogą łączyć się bezpośrednio z serwerami, które hostują maszyny wirtualne przez sieć, używana jest brama pośrednicząca, aby zaproksymować ruch terminalowy.
Azure konsola szeregowa nie przechowuje ani nie przetwarza tych danych klienta.
Cały dostęp do konsoli szeregowej jest obecnie rejestrowany w dziennikach diagnostyki rozruchu maszyny wirtualnej.
Nie są rejestrowane żadne hasła dostępu dla konsoli.
Jeśli jednak polecenia uruchamiane w konsoli zawierają lub wyjściowe hasła, wpisy tajne, nazwy użytkowników lub dowolną inną formę danych osobowych (PII), zostaną one zapisane w dziennikach diagnostyki rozruchu maszyny wirtualnej.
Zostaną one zapisane wraz ze wszystkimi innymi widocznymi tekstami w ramach implementacji funkcji przewijania z powrotem konsoli szeregowej.
Te dzienniki są koliste, a tylko osoby z uprawnieniami do odczytu do konta magazynującego diagnostykę mają do nich dostęp.
Oznacza to, że użytkownik, który jest odłączony, nie zostanie wylogowany.
Możliwość wymuszenia wylogowania po rozłączeniu (przy użyciu funkcji SIGHUP lub podobnego mechanizmu) jest nadal w harmonogramie działania.
W przypadku Windows jest włączony automatyczny limit czasu w specjalnej konsoli administracyjnej (SAC), jednak dla systemu Linux można skonfigurować ustawienie limitu czasu terminalu.
W tym celu dodaj export TMOUT=600 plik .bash_profile lub .profile dla użytkownika, którego używasz do logowania się do konsoli.
Użyj klawisza Tab na klawiaturze, aby przejść do interfejsu konsoli szeregowej z portalu Azure.
Lokalizacja zostanie wyróżniona na ekranie.
Konsola szeregowa ma wbudowaną obsługę czytnika zawartości ekranu.
Zdajemy sobie sprawę z niektórych problemów z konsolą szeregową i systemem operacyjnym maszyny wirtualnej.
Poniżej znajduje się lista tych problemów i kroków mających na celu ograniczenie ryzyka dla maszyn wirtualnych z systemem Linux.
Te kwestie i środki łagodzące dotyczą zarówno maszyn wirtualnych, jak i instancji zestawów skalowania maszyn wirtualnych.
Program GRUB może nie być poprawnie skonfigurowany.
Uruchom następujące polecenia: grub2-mkconfig -o /etc/grub2-efi.cfg i/lub grub2-mkconfig -o /etc/grub2.cfg.
Konsole szeregowe nie obsługują negocjacji dotyczących rozmiaru okna (RFC 1073), co oznacza, że nie będzie sygnału SIGWINCH wysyłanego, aby zaktualizować rozmiar ekranu, a maszyna wirtualna nie będzie znała rozmiaru twojego terminala.
Niestabilne dane wejściowe z klawiatury w obrazach SLES BYOS.
Jest to problem z pakietem Plymouth.
Plymouth nie należy uruchamiać w Azure, ponieważ nie potrzebujesz ekranu powitalnego, a Plymouth zakłóca zdolność platformy do korzystania z konsoli szeregowej.
Usuń Plymouth za pomocą sudo zypper remove plymouth, a następnie uruchom ponownie.
Alternatywnie zmodyfikuj wiersz jądra w konfiguracji GRUB, dodając plymouth.enable=0 na końcu wiersza.
Jeżeli wszystko zostało wykonane poprawnie, możesz teraz zalogować się do VPS Linux przy wykorzystaniu zewnętrznej konsoli SSH (np. PuTTY).
Konsola szeregowa ma być używana głównie jako narzędzie do rozwiązywania problemów w sytuacjach, gdy łączność za pośrednictwem protokołu SSH nie jest możliwa.
Konsola szeregowa nie ma tak dużej przepustowości jak protokół SSH.
Dostęp do konsoli szeregowej jest obecnie możliwy tylko przy użyciu nazwy użytkownika i hasła.

tags: #konsola #szeregowa #linux #wlaczenie
About the author