GNU/Linux >> Znalost Linux >  >> Linux

Jak spustit server vnc pro skutečné zobrazení (scraping) pomocí TigerVNC

VNC je aplikace pro sdílení plochy (Virtual Network Computing) pro připojení a ovládání (vzdálené nebo místní) plochy počítače přes síťové připojení.

Na linuxových systémech však mnoho serverových aplikací VNC umožňuje připojení pouze k virtuální ploše a nikoli ke skutečné ploše. Tento návod vám nabízí řešení, jak se připojit přes server TigerVNC ke skutečné aktivní relaci na vašem linuxovém desktopu.

Požadavky

  • Plně funkční linuxové desktopové prostředí
  • právo root (pro instalaci serveru TigerVNC)
  • základní znalost prostředí linux

Chcete-li získat nejnovější balíčky, možná budete chtít provést aktualizaci.

[e-mail chráněn]:~$ aktualizace sudo apt-get

Tento návod byl testován na Debian/GNU Linux 9.5 (stretch) a Ubuntu 18.04

Instalovat TigerVNC

Nejprve musíte nainstalovat server TigerVNC.

[e-mail chráněný]:~$ sudo apt-get install tigervnc-scraping-server

Všimněte si, že na většině systémů založených na debianu existuje malý balíček nazvaný tigervnc-scraping-server, který musíte nainstalovat. Nemusíte instalovat hlavní server TigerVNC (název balíčku:tigervnc-standalone-server), abyste měli funkcionalitu pro připojení k běžící relaci plochy, pouze pokud se chcete také připojit k virtuální ploše.

Server TigerVNC poskytuje menší aplikaci (x0vncserver) pro udělení přístupu k aktivní relaci.

Poté si vytvořte adresář .vnc ve svém domově:

[e-mail chráněný]:~$ mkdir -p ~/.vnc

Vytvořte heslo pro svou relaci vnc:

[e-mail chráněný]:~$ vncpasswd
Heslo:
Ověřit:
Chcete zadat heslo pouze pro prohlížení (ano/ne)? n

Spuštění serveru VNC

Krátký popis x0vncserver:

x0tigervncserver je server TigerVNC, který umožňuje vzdálený přístup k libovolnému displeji X prostřednictvím VNC, TigerVNC nebo kompatibilních prohlížečů. Na rozdíl od Xvnc(1) nevytváří virtuální displej. Místo toho pouze sdílí existující X server (obvykle ten, který je připojen k fyzické obrazovce).

Nyní, když jste úspěšně nainstalovali server TigerVNC na váš počítač, vytvořili heslo pomocí příkazu vncpasswd, můžeme začít spouštět náš server vnc. Ujistěte se, že jste v aktivní relaci, a napište (jako uživatel):

[e-mail chráněný]:~$ x0vncserver -passwordfile ~/.vnc/passwd -display :0

St 10. října 22:17:16 2018
Geometrie:Geometrie plochy je nastavena na 1920x1080+0+0
Hlavní:Přítomno rozšíření XTest – verze 2.2
Hlavní:Poslouchání na portu 5900

Možnost -passwordfile ~/.vnc/passwd přečte soubor s hesly vytvořený dříve pomocí vncpasswd příkaz. Druhá možnost -display :0 znamená, že se chcete připojit k relaci na displeji :0, což je obvykle aktivní relace.

Nyní můžete přistupovat ke své skutečné ploše pomocí libovolné aplikace prohlížeče vnc na výchozím portu vnc 5900.

Tento proces můžete kdykoli zastavit stisknutím Ctrl-c.

Pokud jej chcete spustit na pozadí, zadejte:

[e-mail chráněný]:~$ x0vncserver -passwordfile ~/.vnc/passwd -display :0>/dev/null 2>&1 &

Nyní jsou všechny výstupní standardní výstupy a chyby přesměrovány do /dev/null a s &na konci poběží na pozadí. Nicméně již nebudete moci zastavit vnc server stisknutím Ctrl-c, místo toho musíte zabít jeho id procesu (viz níže část "Zastavení vnc serveru").

Další možnosti a syntaxi naleznete v příručce x0vncserver.

Zastavení serveru VNC

Pokud váš server vnc běží na pozadí, musíte znát ID procesu, abyste jej mohli zastavit.

[e-mail chráněn]:~$ ps -fu uživatel | grep [x]0vncserver
user    1328    1   0 23:11 pts/2    00:00:00    /usr/bin/x0vncserver -display :0 -passwordfile /home/user/.rfb/passwd -0

Výstup bude takový, takže si všimněte pid 1328. Abychom zastavili vnc server, musíme tento proces "zabít".

[e-mail chráněn]:~$ zabití -9 1328

Volba -9 pro příkaz kill odešle signál KILL id procesu, aby se ujistil, že se zastaví.

Skript pro spuštění serveru VNC

Existuje skript pro spuštění a zastavení aplikace x0vncserver na githubu. Pro testovací účely si stáhnete také balíček psmisc:

[e-mail chráněný]:~$ sudo apt-get install git psmisc

Poté si stáhněte skript startvnc pomocí příkazu git:

[chráněno e-mailem]:~$ klon git https://github.com/sebestyenistvan/runvncserver
Klonování do 'runvncserver'...
vzdálené:Výčet objektů:77, hotovo.
dálkové:Počítání objektů:100 % (77/77), hotovo.
dálkové ovládání:Komprese objektů:100 % (57/57), hotovo.
dálkové ovládání:Celkem 77 (delta 25), znovu použito 60 (delta 18), pack-reused 0
Rozbalení objektů:100 % (77/77), hotovo.

Váš výstup bude vypadat podobně jako výše.

Zkopírujte skript startvnc z adresáře runvncserver do své domovské stránky:

[e-mail chráněný]:~$ cp ~/runvncserver/startvnc ~

Změňte oprávnění na spustitelný soubor, aby bylo možné skript spustit:

[e-mail chráněn]:~$ chmod +x ~/startvnc

Potom spusťte skript.

[e-mail chráněný]:~$ ./startvnc

Použití:./startvnc start|stop|restart|stav

Tento skript bude fungovat pouze v případě, že máte doma adresář .vnc a vytvořili jste vncpasswd (kontroluje soubor ~/.vnc/passwd). Adresář .vnc a heslo jsme již vytvořili dříve.

Chcete-li spustit server vnc na skutečném displeji, stačí napsat:

[email protected]:~$ ./startvnc start
Spouštění serveru VNC na displeji :0 [ok]

Můžete otestovat, zda váš server vnc běží pomocí možnosti:

[e-mail chráněn]:~$ ./startvnc status
Stav serveru VNC:[spuštěno] (pid:1328)

Několik příkladů:

Nebo zkontrolováním portu 5900 TCP na vašem systému pomocí příkazu fuser (z balíčku psmisc):

[e-mail chráněno]:~$ fuser -vn tcp 5900
                  UŽIVATEL      PID     PŘÍSTUP      PŘÍKAZ
5900/tcp:  0 0 er 0 0 / 1 ...  8 před 8.

Výstup podobný tomuto získáte, pokud server vnc běží na portu 5900.

Další pokyny pro tento skript naleznete v souboru readme:

[e-mail chráněný]:~$ méně runvncserver/README.md

Skript vytvoří logfile, kde je uložen výstup. Pokud se něco pokazí nebo nemůžete spustit nebo zastavit x0vncserver, podívejte se na soubor protokolu pod ~/.vnc/logfile

Automatické spuštění serveru VNC

Pokud chcete automaticky přistupovat k aktivní relaci plochy, musíte upravit soubor .xsessionrc ve svém domovském adresáři.

[e-mail chráněný]:~$ echo "/home/user/startvnc start>/dev/null 2>&1">> ~/.xsessionrc

Nahraďte uživatele svým uživatelským jménem a automaticky se spustí při spuštění X session. Skript zaznamenává svou aktivitu do ~/.vnc/logfile, pokud se něco pokazí, můžete tam zkontrolovat soubor protokolu.

Poznámky

Tento tutoriál se nezabývá nastavením virtuální plochy VNC.

Zabezpečení

Uvědomte si, že x0vncserver standardně nepoužívá šifrování, takže jej přes internet používejte opatrně. Pokud jej chcete používat vzdáleně, můžete jej tunelovat přes ssh. Existují však i další postupy, kde můžete najít řešení, jak zašifrovat svou relaci VNC.

Nebo se můžete podívat na balíček ssvnc.

Prohlížeče VNC

Pokud hledáte VNC prohlížeče, je jich spousta, například:

  • gvncviewer
  • tigervnc-viewer
  • xtightvncviewer
  • xvnc4viewer

Geometrie

Server x0vncserver na skutečném displeji bude používat stejnou geometrii jako běžící plocha na displeji :0. Pokud tedy nastavíte volbu -geometry na nižší velikost, nezmění se její měřítko, uvidíte pouze zlomek velikosti plochy.

Zpětná vazba

Neváhejte napsat zpětnou vazbu. Pokud jste testovali tento tutoriál nebo dokonce skript na jiném systému.


Linux
  1. Jak změnit rozlišení serveru VNC v Linuxu

  2. CentOS / RHEL 6:Jak vynutit synchronizaci NTP se servery NTP

  3. jak spustit server tomcat v linuxu?

  1. Jak spustit Vnc Server při spuštění?

  2. Jak nainstalovat PhantomJS pro použití s ​​Python Selenium na Raspberry Pi?

  3. Jak zobrazit parametry příkazového řádku linuxového jádra dané pro aktuální boot?

  1. Jak zjistit, jaká je doména pro připojení k Sambě?

  2. Jak opravit „Úloha Start běží pro síť Raise Network“ v Ubuntu Server 16.0 Lts?

  3. Jak zajistím, aby můj webový server Golang běžel na pozadí?