Włączyć zdalne VNC z wiersza poleceń?

66

Mam jeden komputer z systemem Ubuntu 10.04 i systemem Vino , domyślnym serwerem VNC.

Mam drugie okno systemu Windows, na którym działa klient VNC, ale nie ma żadnych możliwości X11. Jestem zalogowany do hosta Ubuntu z hosta Windows, ale zapomniałem włączyć dostęp VNC na hoście Ubuntu.

Czy na hoście Ubuntu mogę włączyć połączenia VNC z wiersza poleceń Ubuntu?

Aktualizacja:

Jak mówi @koanhead poniżej, nie jest strona dla człowieka vino(np man -k vinoi info vinopowrócić nic) i vino --helpnie wykazuje żadnej pomocy).

Stefan Lasiewski
źródło

Odpowiedzi:

25

Właśnie biegam

/usr/lib/vino/vino-server

powinien wykonać pracę.

Po uzyskaniu dostępu do serwera zalecamy dodanie go do aplikacji Autostarted, aby zawsze było uruchamiane.

Prawdopodobnie spodoba ci się zmiana niektórych ustawień za pomocą:

vino-preferences

bądź bardzo ostrożny podczas uruchamiania preferencji vino na zdalnym komputerze, jeśli odznaczysz „Zezwalaj innym użytkownikom na kontrolowanie twojego pulpitu”, nie będziesz mógł tego sprawdzić ponownie.

lub edytować:

~/.gconf/desktop/gnome/remote_access/%gconf.xml

Oto przykładowy plik:

<?xml version="1.0"?>
<gconf>
    <entry name="vnc_password" mtime="1289267042" type="string">
        <stringvalue>cXdlcnR5</stringvalue>
    </entry>
    <entry name="view_only" mtime="1289262982" type="bool" value="false"/>
    <entry name="prompt_enabled" mtime="1254965869" type="bool" value="false"/>
    <entry name="authentication_methods" mtime="1289267034" type="list" ltype="string">
        <li type="string">
            <stringvalue>vnc</stringvalue>
        </li>
    </entry>
    <entry name="enabled" mtime="1289263574" type="bool" value="true"/>
</gconf>

Uważaj, hasło jest zakodowane w standardzie base64. Dla tego pliku hasłem jest qwerty. Widzę na jakimś forum, że ludzie z powodzeniem to zmieniają, ale miałem z tym problem.

Oto koder online base64:

http://www.motobit.com/util/base64-decoder-encoder.asp

Guillaume Coté
źródło
6
Podczas wykonywania wystąpił następujący błąd /usr/lib/vino/vino-server:No protocol specified ** (vino-server:2040): WARNING **: Could not open X display
Tuan Anh Hoang-Vu
@hvtuananh Czy masz wyświetlacz, którym możesz się podzielić? Czy odpowiednio ustawiłeś zmienną evd DISPLAY? Moja odpowiedź zakłada, że ​​ekran jest już domyślnie uruchamiany, ale nie ma łańcucha i użyj wiersza polecenia, aby go udostępnić.
Guillaume Coté
1
To nie działa (przynajmniej) 13.10. Zamiast tego zobacz odpowiedź ouzmoutous poniżej.
Emil Styrke
Jeśli ktoś ma problemy, zauważ błąd: bugs.launchpad.net/ubuntu/+source/vino/+bug/1607663 .
Rmano
3
vino-preferences: command not found
endolith,
28

Krótka odpowiedź:

gconftool-2 --set --type=bool /desktop/gnome/remote_access/enabled true

jak wspomniano w przyjętej odpowiedzi, jeśli vino nie jest uruchomione na zdalnym komputerze, użyj

/usr/lib/vino/vino-server

Długa odpowiedź i więcej informacji:

Podzbiór ustawień dla bieżącego wbudowanego serwera dostępu zdalnego (vino) można zobaczyć, jak wspomniano, z preferencji vino. Pełną listę flag gconf można wyświetlić za pomocą gconf-editorpolecenia wymienionego w obszarze / desktop / gnome / remote_access. Możesz zobaczyć także inne klucze dostępu zdalnego za pomocą tego polecenia (lub jego odmiany):

gconftool-2 -a /desktop/gnome/remote_access

(Z jakiegokolwiek powodu -Rrównież będzie działać).

Możesz także uzyskać dokumentację klucza schematu za pośrednictwem --long-docsarg.

Np. Dla klucza altern_port:

gconftool-2 --long-docs /desktop/gnome/remote_access/alternative_port

       The port which the server will listen to if the
       'use_alternative_port' key is set to true.
       Valid values are in the range from 5000 to 50000.

Na przykład oto jak zmienić domyślny port za pomocą wiersza poleceń:

gconftool-2 --set --type=bool /desktop/gnome/remote_access/use_alternative_port true
gconftool-2 --set --type=int /desktop/gnome/remote_access/alternative_port 5999

gconftool da ci klucze w danym katalogu. Oto sekcja „remote_access”:

gconftool-2 -a /desktop/gnome/remote_access
 use_upnp = false
 vnc_password = 
 authentication_methods = [vnc]
 network_interface = 
 require_encryption = false
 disable_background = false
 enabled = true
 use_alternative_port = false
 mailto = 
 disable_xdamage = false
 lock_screen_on_disconnect = false
 icon_visibility = always
 view_only = false
 prompt_enabled = true
 alternative_port = 5900

Oto jak wyświetlić listę wszystkich dokumentów schematu w / desk / gnome / remote / access (poprzez linię poleceń / bin / bash):

for key in ` gconftool-2 -a /desktop/gnome/remote_access | awk '{print $1}'  ` ; do echo $key ; gconftool-2 --long-docs /desktop/gnome/remote_access/$key ; done
Belacqua
źródło
/usr/lib/vino/vino-servernie działa z SSH, mówiCannot open display:
endolith
24

Chciałem również włączyć vino za pomocą wiersza poleceń bez wchodzenia w preferencje vino.

Kiedy zaczynałem /usr/lib/vino/vino-server, mówi, że nie miałem włączonej usługi udostępniania pulpitu.

Z Unity gconftoolnie można już korzystać. Musimy to zrobić za pośrednictwem gsettings.

Najpierw włącz vino:

gsettings set org.gnome.Vino prompt-enabled true

Następnie uruchom vino:

/usr/lib/vino/vino-server

Teraz możesz uzyskać zdalny dostęp do swojego komputera.

Jeśli chcesz zobaczyć wszystkie konfiguracje dostępne dla Vino:

gsettings list-keys org.gnome.Vino
ouzmoutous
źródło
2
Aby to zrobić za pośrednictwem SSH lub terminala tekstowego, w którym zmienna środowiskowa DISPLAY nie jest ustawiona, musisz wcześniej ustawić DISPLAY =: 0 w poleceniu set, w przeciwnym razie dostaniesz komunikat „nie udało się zatwierdzić zmian w dconf”.
Emil Styrke
Oprócz powyższego musiałem export DBUS_SESSION_BUS_ADDRESS=.... Aby uzyskać tę wartość zmiennej, skopiowałem ze środowiska uruchomionego procesu ( pgrep -u myUserName -laby uzyskać listę procesów, wybierz liczbę, a następnie tr '\0' '\n' < /proc/NUMBER/environ | grep DBUS). Następnie wyeksportuj DBUS_SESSION_BUS_ADDRESS ze zwróconą wartością. Następnie polecenie zostało uruchomione.
RJFalconer,
pierwsze polecenie daje mi: „Nie
włączono
19

W Ubuntu 14.04 odkryłem, że działała dla mnie następująca odmiana:

export DISPLAY=:0
gsettings set org.gnome.Vino enabled true
gsettings set org.gnome.Vino prompt-enabled false
gsettings set org.gnome.Vino require-encryption false
/usr/lib/vino/vino-server

Jeśli to nie zadziała, twoja sesja X może być uruchomiona na czymś innym niż :0, więc szybkie ps aux | grep Xpowinno pokazać :1lub:2

Taeram
źródło
1
Należy zacząć od export DISPLAY=:0jak gsettings polecenia nie powiedzie się bez: failed to commit changes to dconf: Cannot autolaunch D-Bus without X11 $DISPLAY.
vaab,
Jak dotąd najlepsza odpowiedź. Ale jak zrobić automatyczne uruchamianie Vino przy ponownym uruchomieniu?
pferrel
dzięki temu port VNC jest otwarty, ale mój klient VNC zatrzymuje się na zawsze. jaki może być problem?
David Portabella
jeśli twój klient VNC nie łączy się z pulpitem, prawdopodobnie dzieje się tak dlatego, że szyfrowanie pozostaje włączone. - Za każdym razem, gdy się wylogowujesz i ponownie logujesz, musisz ponownie wyłączyć szyfrowanie. - Możesz umieścić te polecenia w powłoce i wywołać je podczas uruchamiania pulpitu. Poszukaj „Preferencji uruchamiania aplikacji” na pulpicie Ubuntu.
Jaime
13

Dlaczego, z miłości do wszystkiego, co dobre w tym trudnym świecie, nie ma wpisu man dla vino lub vino-server ani dla żadnego z poleceń wymienionych w dpkg -L vinowynikach? Jeśli o to chodzi, dlaczego w ogóle jakiś pakiet powinien być instalowany w systemie Ubuntu, który pomija stronę podręcznika przynajmniej dla odpowiednich poleceń? Ok, rant. Najlepsza odpowiedź, jaką znalazłem do tej pory, znajduje się tutaj: http://ubuntuforums.org/archive/index.php/t-266981.html

Naprawdę mam nadzieję, że to pomoże i mam nadzieję, że w przyszłości społeczność Ubuntu dokumentuje wszystkie osierocone polecenia. „Łatwość użycia” nie oznacza porzucenia wiersza poleceń, a na pewno nie oznacza porzucenia łatwo dostępnej dokumentacji. </grumble>

koanhead
źródło
Spróbuj uruchomić / usr / lib / vino / vino-server. Aby uzyskać niewielką pomoc i dokumenty, użyj vino-server --help-all.
koanhead
4
Łączenie z innym źródłem jest złe, to źródło może w przyszłości przejść do trybu offline, a Twoja odpowiedź nie byłaby ważna.
Phil Hannent,
Dodatkowy punkt za rant.
Marnix A. van Ammers
Jest w / usr / lib, więc nie jest poleceniem, które użytkownik normalnie uruchomiłby, a zatem nie potrzebuje strony podręcznika… przynajmniej takie jest rozumowanie. FWIW, zgadzam się z tobą.
Matthias Urlichs,
9

Wydaje się, że nie działa to zdalnie przez ssh z powodu błędów na wyświetlaczu i tak dalej. Oto co zrobiłem:

export DISPLAY=:0.0 && /usr/lib/vino/vino-server

Przeważnie działa teraz!

Will Bradley
źródło
Tak, w końcu! Bez export DISPLAY=:0.0tego „zdalny” pulpit, który otrzymywałem, był właściwie moim lokalnym pulpitem (używam ssh -X). Konieczne jest także „Zezwalanie innym użytkownikom” za pośrednictwem vino-preferences(lub poleceń powłoki sugerowanych w innych odpowiedziach) przed uruchomieniem /usr/lib/vino/vino-server. Uwaga: Prawdopodobnie każdy klient VNC działa z tym, gdy jest poprawnie skonfigurowany, ale vinagrewydaje się, że zapewnia najbardziej sensowny interfejs użytkownika.
nobar
5

Byłem w stanie ustawić nową instalację Ubuntu 16.04 ze zdalnego połączenia ssh za pomocą następującego skryptu:

#! / bin / bash
eksport WYŚWIETLACZ =: 0
czytaj -e -p "Hasło VNC: hasło" -i "ubuntu"
dconf write / org / gnome / desktop / remote-access / enabled true
dconf write / org / gnome / desktop / remote-access / prompt-prompt false
dconf write / org / gnome / desktop / remote-access / authentication-metody "['vnc']”
dconf write / org / gnome / desktop / remote-access / wymagają-szyfrowania false
dconf write / org / gnome / desktop / remote-access / vnc-password \ "\ '$ (echo -n $ password | base64) \' \"
dconf dump / org / gnome / desktop / remote-access /
sudo service lightdm restart

Cytowanie jest ważne dla każdego ustawienia łańcucha (pojedyncze tiki wewnątrz cudzysłowów). Aby dconf mógł pisać, potrzebuje dostępu do XWindows, dlatego potrzebna jest część DISPLAY eksportu. Myślę, że nadal musisz być zalogowany na pulpicie na rzeczywistym komputerze Ubuntu, aby połączyć się z VNC po tym. Polecenie zrzutu jest tylko po to, aby potwierdzić, że wszystkie ustawienia zostały zachowane, tak naprawdę nie jest to potrzebne.

Opcjonalnie możesz to zrobić, jeśli chcesz cały czas wyświetlać:

dconf write / org / gnome / desktop / wygaszacz ekranu / blokada włączona false
dconf write / org / gnome / desktop / wygaszacz ekranu / ubuntu-lock-on-suspend false
dconf write / org / gnome / desktop / session / idle-delay "uint32 0"
Integrator
źródło
1

Dla każdego, kto używa Linux Mint 15, mam to wszystko do pracy na moim MintBox2, wykonując następujące czynności. Mogę teraz uruchomić MintBox 2 całkowicie bez głowy za pomocą: ssh + vino + Tight VNC.

Wpisz putty poprzez połączenie ssh z maszyną LinuxMint MintBox2:

sudo su
[enter your root password]
echo $DISPLAY
export DISPLAY=:0.0
startx &   }This loads up LinuxMint on screen as "root" user
[press the return key again to get back to BASH prompt]

Teraz, jeśli lubisz (nie jest to konieczne) na terminalu LinuxMint (tj. Nie na szpachli):

echo $DISPLAY

=> Otrzymujesz wynik: 1 [tj. To sprawiło mi wiele problemów, aby to rozgryźć, tzn. To nie jest 0: 0 !!!!!!!!!!]

Teraz wróć do szpachli i wpisz:

echo $DISPLAY
export DISPLAY=:1
/usr/lib/vino/vino-server

=> Teraz ładuje się i możesz użyć Windows 7 Tight VNC Viewer, aby uzyskać dostęp do Linux Mint itp

Mam nadzieję, że to pomoże komuś tam ...

CMP
źródło
1

Miałem ten sam problem z Xubuntu po aktualizacji 18.04. Najpierw zainstaluj vino. Mój został usunięty podczas aktualizacji bez powiadomienia. Również po zainstalowaniu vino polecenie vino-preferencje nie działa.

Oto łatwe obejście:

  • Zainstaluj edytor dconf

    sudo apt install dconf-editor 
    
  • następnie otworzyć go i przejdź do /org/gnome/desktop/remotedostępu i turn off encryption.

Istnieje również kilka innych opcji zdalnych, które można ustawić w edytorze dconf. Jednak dopóki nie zainstalujesz vino, dostęp zdalny nie jest wyświetlany w edytorze dconf.

Mam nadzieję, że ktoś może wyjaśnić, co stało się z preferencjami vino.

Carol McAnulty
źródło
-1
gsettings reset-recursively org.gnome.Vino
Abdennour TOUMI
źródło
5
Byłoby pomocne, gdybyś mógł edytować swoją odpowiedź, aby wyjaśnić, co to robi i jak odpowiada na pytanie.
David Edwards