سؤال باستخدام إعادة توجيه x11 مع ssh و vnc؟


أنا أعمل على كتلة عن بعد عبر ssh مع خيار -X ، لأنني بحاجة لتصور البيانات والرسوم البيانية ، عبر بروتوكول VPN. في وقت ما بسبب عدم استقرار الاتصال بالإنترنت أفقد جلستي. أخبروني أن بإمكاني استخدام vnc لكي لا أتمكن من فقدان جلستي الحالية ، بحيث أنه في حالة انخفاض اتصال الإنترنت ، يمكنني إعادة الاتصال والاستمرار في جلسة العمل السابقة المفتوحة.

ما أفعله هو تسجيل الدخول في وحدة التحكم عن بعد 'remote.cluster' واكتب

 vncserver :1

ثم أقوم بفتح محطة أخرى على نظامي وأنا اكتب

 ssh -C -NL 5901:remote.cluster:5901 myusername@remote.cluster &

ثم أبدأ vinagre على نظام بلدي وأنا الاتصال باستخدام بروتوكول ssh. المشكلة هي أنه ليس لدي إعادة توجيه x11 ولا أستطيع فتح النوافذ. إذا حاولت الاتصال باستخدام بروتوكول vnc مع vinagre لا يتصل ، لأنني أحصل على شيء كمهلة اتصال.

ماذا علي أن أفعل؟


4
2017-11-21 10:56


الأصل




الأجوبة:


في حالة اتصالنا بـ X-Server عن بعد عبر VNC ، فلدينا ميزة أن التطبيق الرسومية سيبقى قيد التشغيل حتى عندما يكون اتصال SSH بجهاز التحكم عن بعد معطلاً. يمكننا بعد ذلك إعادة الاتصال لاستئناف التطبيق الرسومية. أنظر أيضا:

لتسريع إعادة الاتصال ، قد نقوم بدمج الاتصال بجهاز التحكم عن بعد مع جلسة SSH باستخدام vncviewer من عند tightvncviewer  Install tightvncviewer مع هذا الخيار -via. من خلال هذا يمكننا تشغيل على الخادم البعيد:

vncserver:0  ## or any other display number e.g. :1

لإنشاء اتصال على العارض عبر نفق SSH:

vncviewer -via user@remote localhost:0

سيحتاج القيام بذلك إلى عرض نطاق ترددي أكبر بشكل كبير لأن سطح المكتب بأكمله يجب أن ينتقل من خادم VNC. لذلك قد لا تكون فكرة جيدة للتوصل إلى اتصالات ذات نطاق ترددي منخفض ، ولكنها قد تعطيك تجربة أفضل إلى حد ما على اتصالات ذات نطاق ترددي كبير ولكن غير مستقرة مقارنة مع إعادة توجيه X.


3
2017-11-21 11:54



ما أريد فعله حقًا هو ، في الرابط الذي تقدمه ، ما يقوله michael_n في التعليق الثاني على الإجابة الأولى ، ولكنه لا يعمل بالنسبة لي لأنني غير قادر على إعادة الاتصال بشاشة -r ، ربما أفعل هل هناك خطب ما - simona
فعلت ما تقوله و vnc يسأل عن كلمة مرور ، لم أقم بتعيينها ، لذلك ينبغي أن أطلب منه مسؤول Remotehost ، أليس كذلك؟ شيء آخر: إذا استخدمت vnc عبر ssh كما هو مذكور أعلاه في إجابتك ، فهل سيكون بطيئًا لأن كل الرسومات سيتم تنفيذها على الجهاز البعيد بدلاً من الجهاز المحلي الخاص بي؟ - simona
Vncviewer -via يسأل 1) عن كلمة مرور ssh لجهاز التحكم عن بعد ثم 2) لكلمة مرور vnc ولكن الأخير فقط في حالة تم تعيينه على جهاز التحكم عن بعد. سيتم تنفيذ جميع الرسومات على الخادم البعيد ثم يتم إرسالها كرسومات مضغوطة عبر نفق ssh (راجع أيضًا tightvnc.com/vncviewer.1.php) - Takkat
شكرا لك على الحل. لأنه لم يكن واضحا لي عندما قرأت الحل الخاص بك ، أود أن أشير إلى القراء في المستقبل أن الأوامر اللازمة الوحيدة هي vncserver: 1 و vncviewer -via user @ localhost البعيد: 1. راجع للشغل الرسومات التصور سريع جدا ، وأنا مندهش أنه في الواقع ريون على الكتلة عن بعد وليس على الجهاز المحلي - simona
simona: شكرًا لك على الإشارة إلى هذا. نأمل مع التعديل أنه أكثر وضوحا الآن. - Takkat


الأمر المستخدم:

ssh -C -NL 5901:localhost:5901 myusername@remote.cluster &

إلى الأمام المحلية 5901 -> remote.cluster: 5901

لذلك يمكنك الاتصال localhost :: 5901 للاتصال بجلسة VNC التي تعمل على remote.cluster (التي ليس لديك وصول مباشر إليها).

يختلف إعادة توجيه X11 عن VNC. تحتاج إلى استخدام -X، فمثلا

ssh -X myusername@remote.cluster

من أنك ستكون قادرًا على تشغيل تطبيقات واجهة المستخدم الرسومية عن بُعد على جهازك المحلي ، بشرط أن يكون لديك خادم X يعمل محليًا (Ubuntu Desktop أو Xming على Windows).

تحديث:

ارتكبت خطأ في إعادة التوجيه ، يجب أن يكون:

ssh -C -L 5901:localhost:5901 myusername@remote.cluster

ثم يمكنك vnc to localhost: 5901 ، سيتم توجيه حركة المرور إلى remote.cluster: 5901. الاعتذار عن اللامبالاة ...

إذا لم تكن هناك واجهة المستخدم الرسومية مطلوبة ، ففكر في استخدام tmux أو screen لتجنب فقدان الجلسة.


1
2017-11-21 11:21



أنا دائما استخدام ssh -X ويعمل ، والنقطة هي أنني أود إعداد الشيء بطريقة عندما يسقط الاتصال الخاص بي يمكنني إعادة الاتصال والعثور على الجلسة السابقة. لذلك ، هل تقول أنني يجب استخدام بروتوكول vnc في vinagre للاتصال الكتلة عن بعد؟ لا يعمل: احصل على `اتصال لاستضافة remote.host تم إغلاق ' - simona
لقد قمت بتحديث الرد ، ولم ألاحظ خطأ في أمر إعادة التوجيه. - Terry Wang
شكرا لك ، أنا حقا لا أحتاج واجهة المستخدم الرسومية ، فقط لتصور بعض المؤامرات ، هل يمكن أن تعطيني نقطة انطلاق لشاشة أو tmux ، لا أعرف أي شيء عنها - simona
أنا شخصيا تفضل tmux ، يمكنك استخدام الشاشة أو byobu (شاشة Ubuntu المحسنة) ، على غرار. تشغيل tmux على الخادم البعيد يقوم بشكل أساسي بتشغيل daemon / session على هذا المربع ، بحيث عندما تكون غير متصل ، ستتمكن من إعادة الاتصال عبر SSH والتعلق بتلك الجلسة - قم بتوصيل tmux دون فقدان ما كنت تعمل عليه في الجهاز. عينة .tmux.conf gist.github.com/3950393 - Terry Wang