כיצד להשתמש ב-VNC כדי להתחבר למחשב אחר
מתוך הויקי של ג'נטו.
VNC הינו פרוטוקול להתחברות מרחוק למחשב אחר. רוב יישומי ה-VNC של יוניקס יוצרים לעצמם ממשק X להתחבר אליו. זה מאוד שימושי עבור תמיכה בחיבור מספר משתמשים לאותו מחשב עם מספר ממשקים שונים (על אותו מחשב) בלי שמישהו בכלל ישב על המחשב פיזית. מצד שני, תרצה לגשת למחשב שלך מרחוק בדרך הבאה:
- פתיחת ממשק (Session) קיים (או פתיחת אחד חדש אם אחד כזה לא קיים) על תצוג קיימת.
- עצירת הממשק המרוחק ויכולת לחזור אליו אח"כ.
כעקרון, VNC מאפשר לקחת את העבודה הביתה בקלות ובאופן מאובטח, וגם להיפך, להתחבר למחשב בבית.
תוכן העניינים |
[עריכה] בעיה
עבודה באמצעות ממשקי X קיימים אינם נתמכים ע"י חבילות VNC. כדי לעבוד מרחוק על ממשק פתוח על תצוגה פיזית תוכל:
- להריץ x11vnc כמשתמש.
- להגדיר את ממשק ה-X (התצוגה הפיזית) כך שהוא יתמוך בהרחבת VNC.
[עריכה] הגבלות
- VNC משתמש במערכת אימות נפרדת. זה עדיין לא הוטמע ב-PAM, לדוגמא.
- משתמשים צריכים לדעת את מספר תצוגת ה-X שאליהם הם רוצים להתחבר.
- פתיחת נעילת מסך מרחוק פותחת גם המסך באופן מקומי, לכן:
- היזהר! בכל מה שתצפה במחשב המרוחק מישהו אחר יכול לצפות כאשר הוא יושב (פיזית) מול המחשב המרוחק בלי שתדע!!!
- מומלץ לנעול את המסך במחשב המרוחק לפני שמתנתקים ממנו!!!
[עריכה] הערות נוספות
- לשני השיטות שיוצגו כאן תהיה אותה תוצאה: חיבור מרחוק לממשק ה-X.
- החבילות vnc או tightvnc יכולות להיות מותקנות עבור חיבור מרחוק של VNC לעמדה שעליהן הן יותקנו, חיבור למחשב מרוחק אחר (vncviewer) ועבור הפקודה vncpasswd, שתוסבר בהמשך.
- tightvnc מציגה את עצמה כבעלת דחיסה יותר טובה במקרים מסוימים, אבל (מגירסה 1.2.9) אינה מספקת את מודול ה-X (אז לא ניתן להשתמש עמה בשיטה השניה שתוצג כאן) והיא אינה עובדת כראוי עם הארכיטקטורה amd64.
[עריכה] שיטה 1: שיטה ה-x11vnc
בשיטה זו, המשתמש שמפעיל את ממשק ה-X מפעיל גם את שרת ה-VNC. אנו נשתמש בחבילת x11vnc כדי להתחבר לממשק X קיים.
| שים לב: דגלי השימוש jpeg ו-zlib נדרשים עבור דחיסה. |
| קוד: התקנת x11vnc |
$ echo "x11-misc/x11vnc jpeg zlib" >> /etc/portage/package.use $ emerge x11vnc -va |
ערוך את הקובץ ~/.x11vncrc בצורה הבאה:
| קובץ: ~/.x11vncrc |
forever localhost rfbauth /home/your_user_name/.vnc/passwd display :0 #You can use rfbport to specify a different port (default is 5900). |
| אזהרה: אם אינך מתכנן לגשת לממשק ה-X דרך SSH Tunnel (שיוסבר בהמשך) או מהמחשב שמריץ את ה-x11vnc, השמט את האופציה localhost. |
למידע נוסף על הקובץ ~/.x11vnc וההגדרות שבו הרץ את הפקודה man x11vnc.
למטרת אבטחה ניצור סיסמא עבור חיבורים נכנסים לממשק ה-X.
| קוד: הגדרת סיסמא ל-x11vnc |
$ x11vnc -storepasswd <YOUR_PASSWORD_HERE> ~/.vnc/passwd |
או, אם מותקן tightvnc או vnc, השתמש בכלי היעודי לכך:
| קוד: הגדרת סיסמא בעזרת כלי יעודי |
$ vncpasswd |
הפקודה תיצור סיסמת כניסה עבור שרתי x11vnc או tightvnc/realvnc כדי לאשר חיבורים נכנסים.
כדי להפעיל את שרת ה-vnc תצטרך להריץ את הפקודה x11vnc. ניתן לשים פקודה זו בעת כניסה למערכת. למשל, ניתן ליצור סקריפט ב-~/.kde/Autostart/, למשל כך:
| קוד: הפעלת שרת ה-vnc בעת כניסה למערכת |
$ echo -en '#!/bin/bash\nx11vnc <OPTIONS> &\n' > ~/.kde/Autostart/x11vnc $ chmod u+rx ~/.kde/Autostart/x11vnc |
למשתמשי gnome, הריצו את הפקודה gnome-session-properties כדי להגדיר כניסה אוטומטית.
אחרת, התחילו את השרת באופן ידני מרחוק, קרוב לוודאי שתרצו להפעיל זאת באמצעות תקשורת SSH. להלן דוגמא להפעלת שרת x11vnc:
| קוד: הפעלת x11vnc |
$ x11vnc >>~/.x11vnc.log 2>&1 & |
זה יפעיל את שרת vnc, יאפשר לך לצאת מן התקשורת, להשאיר את השרת פועל ובנוסף, ליצור לוג לשרת.
[עריכה] שיטה 2: שיטת שרת ה-X (בעת עלית המערכת)
התקן את חבילת שרת vnc שמספקת את המודול vnc.so עבור שרת ה-X.
| שים לב: דגל ה-server דרוש כדי לבנות ה-vnc שיתפקד בתור שרת, אחרת ה-vnc יתפקד בתור viewer בלבד. |
| קוד: התקנת vnc |
# echo "net-misc/vnc server" >> /etc/portage/package.use # emerge vnc -av (הפקודה הראשונה נועדה להדליק את דגל ה-server) |
לאחר סיום ההתקנה ערכו את הקובץ /etc/X11/xorg.conf:
| קובץ: /etc/X11/xorg.conf |
Section "Module" Load "vnc" Load "freetype" Load "type1" Section "Screen" #This tells X where to locate the VNC password file Option "PasswordFile" "/home/your_user_name/.vnc/passwd" Section "Files" ModulePath "/usr/lib/modules/extensions" ModulePath "/usr/lib/xorg/modules" |
שמור את השינויים וצא מהעורך. בנוסף, תצטרך ליצור סיסמא לממשק ה-vnc.
| קוד: יצירת סיסמא ל-vnc |
# mkdir ~/.vnc # vncpasswd ~/.vnc/passwd Password: Verify: |
אם אתה משתמש בשרת X.org, כנראה שתצטרך ליצור קישור ל-vnc.so:
| קוד: קישור ל-vnc.so |
# cd /usr/lib/xorg/modules למשתמשי vnc גירסת 4.1.2 ומטה # ln -s /usr/lib/modules/extensions/vnc.so למשתמשי vnc גירסת 4.1.2 ומעלה (כולל) # ln -s /usr/lib/modules/extensions/libvnc.so |
תצטרך לאתחל את X (אין צורך בהפעלה מחדש. סיים הפעלה (session) ב-KDE, ואח"כ הקש ctrl+alt+backspace. כאשר מסך הכניסה למערכת עולה שוב, כנס למערכת).
[עריכה] התחברות מרחוק
זהו, סיימת להגדיר את שרת ה-VNC על מחשבך. עכשיו ניתן להתחבר מרחוק למחשבך.
[עריכה] התחברות רגילה
ע"מ להתחבר מרחוק, עליך להריץ מהמחשב המרוחק את הפקודה הבאה:
| קוד: התחברות מרחוק לשרת ה-VNC |
# vncviewer HOST |
כאשר ההוסט, זאת כתובת ה-IP של המחשב שאליו אתה מתחבר. לפקודת ה-vncviewer ישנם מאפיינים רבים. בין השאר, חיבור למסך מסוים (אם יש לך מספר מסכים שמחוברים למחשב אחד), חיבור לצפייה בלבד, חיבור דרך פורט אחר, חיבור עם הגדרות מסך, מקלדת ועכבר מיוחדות ועוד. תוכל לראות את כל האופציות האפשריות ב-manual של פקודה זו (הרצה של: man vncviewer).
אם אתה רוצה לצפות במחשבך ממערכת ההפעלה חלונות, תוכל לעשות זאת בקלות ע"י vncviewer. אמליץ כאן על tightvnc שניתן להורדה מכאן. פשוט הורד את ה-viewer, הרץ אותו והקש את כתובת ה-IP של המחשב שאליו אתה מתחבר.
[עריכה] התחברות מאובטחת
מכיוון שהתחברות רגילה לא מאובטחת, ניתן להצפין בקלות את התקשורת של ה-VNC באמצעות SSH.
דבר ראשון, הרץ את ה-SSH במחשב שבו מוגדר שרת ה-SSH ע"י הפקודה הבאה:
| קוד: הפעלת SSH |
# /etc/init.d/sshd start |
לאחר מכן, כל שעליך לעשות הוא להתחבר באמצעות SSH למחשב.
| שים לב: אם אתה מתחבר דרך SSH בלבד, עליך לסגור את פורט 5900 (פורט ברירת מחדל של VNC) ולפתוח את פורט 22 (פורט ברירת מחדל של SSH) בפיירוול כדי שהאופציה של חיבור דרך SSH תהיה הדרך היחידה להתחברות לשרת ה-VNC. |
פקודה להתחברות למחשב מרוחק באמצעות SSH:
| קוד: התחברות למחשב מרוחק באופן מאובטח |
# ssh -L 5900:localhost:5900 HOST 'x11vnc -localhost -display :0' |
כאשר HOST זו כתובת ה-IP של המחשב המרוחק.
כמו בהתחברות רגילה, ניתן לצפות במחשבך גם ממ"ה חלונות. בנוסף ל-vncviewer תצטרך גם כלי לתקשורת SSH עבור חלונות. אמליץ על Putty (ניתן להורדה מכאן). כל שעליך לעשות הוא לפתוח את putty להגדיר לו host להתחברות (כתובת ה-IP של המחשב שמתחברים אליו), ללכת בתפריט משמאל ל-tunnels ובחלק של port forwarding להוסיף את ה-tunnel, שיבצע את התקשורת של ה-VNC באמצעות SSH, באופן הבא: להזין ב-source port את הערך 5900, ב-destination להזין HOST:5900 (שוב, ה-HOST זה כתובת ה-IP של המחשב שמתחברים אליו) וללחוץ על add. לחץ על open והיכנס ל-session שיפתח באמצעות יוזר וסיסמא. לאחר מכן, כל שעליך לעשות הוא לפתוח את ה-vncviewer ולהתחבר ל-localhost (הזן זאת ב-HOST). לאחר כל זה, תהיה מחובר למחשב שלך בתקשורת מוצפנת.
[עריכה] מקורות
