Відмінності між VNC і ssh -X


27

Чому б ви використовували VNC (або для цього питання NX), а не просто використовувати ssh -X (-Y). Я читав, що VNC використовує меншу пропускну здатність, але чи є інші відмінності / переваги у відповідного інструменту?

Відповіді:


30

Крім проблем із пропускною здатністю та затримкою (які можуть дещо відрізнятися), великі відмінності - це функціонал, який він надає.

VNC експортує цілий сеанс, робочий стіл і все, тоді як ssh запустить одну програму і покаже свої вікна на вашій робочій станції.

Сервер VNC експортує сеанс, який зберігається навіть під час відключення екрана, і ви зможете пізніше підключитися до нього, відкривши всі вікна тощо. Це неможливо з тунелем ssh X, оскільки коли ваш X-сервер гине, вікна відходять .


5
Це найбільша причина, коли я завжди використовую VNC, ніколи не спрямовую X вікно. (Я використовую VNC над тунелем ssh). Коли я закриваю кришку свого ноутбука, зв’язок порушується. З ssh -X немає можливості відновити - мені доведеться перезапускати додаток з самого початку. За допомогою VNC (як прямо, так і через ssh тунель) я можу знову підключитися та продовжувати право там, де я зупинився.
Девід Кері

8
Хоча трохи ОТ (оскільки цей Q, мабуть, стосується лише програм GUI): якщо фактичний додаток графічного інтерфейсу не потрібен, а робитиметься лише базовий доступ до оболонки (наприклад, xterm), тоді зробіть "ssh" з подальшим "баш екраном". Якщо відключено (ноутбук закритий, відключений vpn тощо), віддалена оболонка залишається активною. Повторно увійдіть і повторно підключіться через "screen -r". Я піднімаю це лише з тих пір, як я бачив, як люди запускають vnc лише для базового доступу до оболонки (або запускають віддалений xterm, відображений локально); більшість часу (але, звичайно, не завжди) буде достатньо простого доступу до оболонки.
Майкл

1
@michael_n Мене цікавить ця річ, яку ви говорите про екранізацію екрана, але я не в змозі змусити її працювати. Я набрав 'ssh -X -t myusername @ remotehost screen bash', і після того, як з'єднання перестане, я набираю 'screen -r', але він говорить, що «немає екрана, який слід відновити». що я повинен зробити?
simona

2
@simona після успішного входу в SSH, а потім запустити екран: ssh user@host; і після того, як увійшли в систему : screen bash; Для від'єднання, з ctrl+aподальшим ctrl+d. Ви можете знову вийти та увійти в систему, потім: screen -lsі screen -r. Вихід з bash виходить з екранного сеансу. Більше (набагато більше) дивіться різні підручники на екрані GNU
michael

9

ssh -Xперенаправляє команди X11 на ваш локальний X-сервер. Так це як якщо б ви запускали програму локально, коли вона справді працює на комп’ютері на іншому кінці. Це дуже повільно, оскільки він використовує велику пропускну здатність. (Це те, про що люди говорять, коли кажуть, що X11 - "мережа прозора".)

Натомість VNC та інші програми для віддалених настільних комп'ютерів дозволяють іншому комп'ютеру обробляти всі графічні малюнки, і так далі, і, по суті, знімає скріншот і передає його назад на ваш комп'ютер. Це може здатися набагато швидшим, адже для відображення всього потрібно набагато менше інформації. Однак він також надсилає весь робочий стіл, а не одну програму.

Я не рекомендую використовувати ssh -Xчерез Інтернет з однієї простої причини: він буде використовувати всі свою доступну пропускну здатність. На мою думку, це досить корисно через локальну мережу, тому якщо вам просто потрібна одна програма і не хочете запускати цілий робочий стіл, це хороший шлях. В іншому випадку просто використовуйте VNC.


3
"Це дуже повільно, оскільки він використовує велику пропускну здатність. Протокол X11 дуже складний і часто передбачає надсилання великих піксельних карти вперед і назад через з'єднання." - це неправильно, протокол X11 не дуже складний і не передбачає надсилання великих піксельних карти вперед і назад через з'єднання. Приєднуйтесь до цієї пропозиції, щоб дізнатися більше про систему X Window: area51.stackexchange.com/proposals/20129/the-x-window-system

1
@Sherlock: Ну, факт залишається фактом, що він використовує багато пропускної здатності. Я вилучив вирок у порушенні.
greyfade

1
NX - це ефективний спосіб передачі даних протоколу X11 по мережі. Він стискає дані, забезпечує обширне кешування та тунельні сеанси через SSH.
Адам Бертек

4

VNC поділиться цілим робочим столом з віддаленої системи. Для цього потрібен повноцінний робочий стіл на віддаленій системі.

ssh -X дозволяє запускати один додаток X з віддаленого сервера. У віддаленій системі не потрібно запускати повний робочий стіл, і вам часто потрібна лише кілька пакунків, щоб встановити їх у віддаленій системі.

ssh -Xможе бути корисною при встановленні складних програмних пакетів через віддалене з'єднання. Деякі програмні продукти можуть використовувати інсталятор графічного інтерфейсу (Oracle Database тощо). Я не хочу встановлювати повноцінний робочий стіл Gnome на віддалений сервер. Отже, ви встановлюєте один або два пакети X11 (Xauth?) На віддалений сервер і дозволяєте DBA дистанційно запускати інсталятор Oracle, використовуючи щось просте, наприклад, 'ssh -X / media / cdrom / oracle-installer'.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.