כן כן, מה יש קצת לדפוק את הראש בקיר לא קרה שום דבר אתם אומרים? אז זהו, שזה לא בדיוק לדפוק את הראש בקיר אלא יותר כמו קפיצת בנג'י אל בריכה בלי מים. מה כבר קרה אתם אומרים? ובכן לא הרבה, אבל הצורך במשהו שלא, אתה לא יכול להשיג בפרק זמן מוקצב, יכול קצת ליצור מתחים לא ברורים אצל כל אדם שפוי.
התקנת לינוקס בפעם ראשונה היא לא המשימה הטריויאלית ביותר, במיוחד לא עבור משתמשים חדשים אשר מגיעים מהעולם החלונאי, במיוחד כשהדבר היחיד שהם מכירים הוא double click על אייקון החיבור לאינטרנט ... התקנת לינוקס אמנם פשוטה, נוחה ונטולת בעיות מיוחדות בדרך כלל (אלא אם כן אתם רוצים להתחיל לארגן מחדש את המחיצות וכן הלאה) אבל כמו שאומר חוק מרפי: אם אתה באמת מאוד רוצה משהוא, אתה דווקא לא תקבל.
בכל מקרה, הדבר הראשון שכל אחד רוצה לעשות עם כל דבר חדש הוא לנסות אותו מיד עם האופציה הכי חשובה במערכת. גם אני כמובן, שכמו כל מי שהתקין לינוקס אי פעם, הדבר הראשון שרציתי היה להתחבר מיד לאינטרנט ולו רק כדי להשוויץ שיש לי מערכת לינוקס "עלק יוניקס" שאני יכול להריץ סקריפטים, להתפאר בממשק הנקי של GNOME ו-KDE וכן הלאה. אלא שברגע שאתה רק חושב על הרגע הנפלא הזה, נופל עליך מעין ענן עבה שחור שגורם להרגיש כאילו בא לך לזרוק את המחשב ולא לראות אותו למשך שלושה ימים ... לפחות.
כמובן שהצורך לאינטרנט רק ילך וייתגבר עם כל יום שאתה לא מחובר. הרי אנו מפספסים את כל המידע השוטף שמציף אותנו. כמו כל אחד, גם לי היה ברור שהדבר ההגיוני לעשות הוא להתקשר לספק השירות, הרי לו יש את כל התשובות לא? הרי אני לא אמור לנחש מה צריכים לכתוב כדי לגרום לאינטרנט לעבוד, לא? במקרה שלי אגב, אני מתחבר לאינטרנט עם דרך הכבלים עם כרטיס רשת ומודם חיצוני בחיוג.
אז מתקשרים ... כשלבסוף עונים, אנו מבקשים ישירות את התמיכה הטכנית של לינוקס. בתמימות כמובן, ככה שאנחנו לא מוכנים למתקפה נוסח: "מה ... מה זה? ... לינוקס?" של הטלפנית הנחמדה, בת 18 לכל היותר להערכתי, וללא שמץ של מושג לגבי ping וכאלה. "כן, כן, זאת מערכת הפעלה" אנו עונים ... כעבור זמן ממושך עם ה"מצטערת על ההמתנה ..." המתבקש בטון רגיש וסלחני היא מודיעה כי "ייתקשרו אליך בחזרה בעוד כשעה."
אבל למי לעזעזאל יש שעה ומה בדיוק יש לי לעשות עם מערכת שהדבר היחיד שאני יודע לעשות בה זה לחיצה עם הכפתור הימני של העכבר? בכל אופן, כמובטח, לאחר כשעה חוזר אלי מר "טכנאי בכיר" (היחיד אגב, לתשומת ליבכם) ככה שלא פלא שאנו צריכים לחכות עד שהוא יחזור מהטיולים שלו עם המשפט הצפוי: "במה אפשר לעזור".
אז אני מספר לו את הסיפור ומתחיל במלאכת הוספת האינטרנט בלינוקס הראשון שלי. הטכנאי שלח אלי (בדוא"ל) את הסקריפט איתו הם עובדים (... הייתי צריך לעבור לחלונות ולהעביר את הקובץ למחיצת ה-FAT שלי) ולאחר מכן חוזרים ללינוקס ומתחילים:
1. נכנסים למסוף (console) עם Alt+Ctrl+F1 או מריצים את Konsole או gnome-terminal
2. מתחברים (login) עם משתמש root ומספקים סיסמה אם יש צורף, עדיף עם הפקודה "- su"
3. מעתיקים את קובץ הזפת (tar.gz) ששלח לכם הטכנאי לספריה כלשהי ופורסים את הקובץ (נניח בספריה tmp/)
נוצרה ספריה חדשה בשם: nvc בנתיב home/scripts/nvc/ במקרה שלי. בספריה נמצאים שלושה קבצים חיוניים: תסריט ההתקשרות (CABLESTART.V022), תסריט הניתוק (CABLESTOP) והחייגן (pptp).
עכשיו,
4. עוברים לספריה etc/ppt/ ועורכים בה את הקובץ pap-secrets על ידי הוספת השורות:
""username""cable.netvision.net.il""pass
שימו לב שאין רווחים וחייבים לרשום גרשיים מסביב לכל אחת מן המילים. כבר כאן למשל נכשל ה"טכנאי" של סיפק לי את המידע הזה והעריך את הסבל המיותר ביום נוסף. בסך הכל מדובר ברווחים שמענו מהתקן ppp0 להיווצר. לא נורא. נחזור לספריה שלנו (nvc) ונבדוק מה מכיל קובץ ההתקשרות:
#!/bin/bash
USERNAME="$1"
IFACE="$2"
PPTPS=cable.netvision.net.il
ifdown $IFACE
ifup $IFACE
NVGW=$(host $PPTPS | cut -d" " -f4 | cut -f3 | tail -1)
CABLEGW=$(grep routers /var/lib/dhcp/dhclient-$IFACE.leases | tail -n 1 | cut
-d ";" -f1 | cut -d "t" -f3 | cut -d "o" -f4 | cut -d ' ' -f2)
route add -host $NVGW gw $CABLEGW
./pptp $NVGW debug user $USERNAME mtu 1380 mru 1380 defaultroute persist
sleep 7
NEWGW=$(ifconfig ppp0 | grep inet | cut -d":" -f3 | tail -1 | cut -d" " -f1)
route add default gw $NEWGW
route del default gw $CABLEGW
echo nameserver 194.90.1.5 > /etc/resolv.conf
גם עם הקובץ הזה נכשל הטכנאי במלאכתו מאחר והוא לא טורח לספר מה בכלל קורה פה, מן הסתם כי אין לו מושג. אנחנו יכולים למשל לבדוק בעצמנו אם יש צורך לשנות משהו. שימו לב לשורות:
שנו אותן כך שיכילו את הנתונים שלכם (אם אתם לא רוצים להעביר את שם המשתמש וההתקן כפרמטרים בשורת הפקודה), למשל:
USERNAME="username"
IFACE="eth0"
ולמה באמת שנרצה להעביר את הפרמטרים האלו לתסריט בכל פעם שנפעיל אותו? רוצים עוד דוגמה? תסתכלו על השורה הבאה:
CABLEGW=$(grep routers /var/lib/dhcp/dhclient-$IFACE.leases | tail -n 1 | cut
-d ";" -f1 | cut -d "t" -f3 | cut -d "o" -f4 | cut -d ' ' -f2)
מי אמר שיש לנו בכלל קובץ בשם: dhclient-eth0.leases? החליפו IFACE$ ב-eth0, שם כרטיס הרשת שלכם כפי שהוא הוגדר על ידי לינוקס. אם במקרה יש לכם קובץ בשם: DHCPCD-ETH0.INFO בתקיה: var/lib/dhcpd, עוד משהוא שהטכנאי לא שמע עליו אגב, אם תריצו את התסריט הנ"ל מבלי לשנות כלום, תקבלו משהו דומה לזה:
using interface ppp0
connect ppp0 <-> /dev/pts/2
terminate on signal 15
modem hangup
ppp0- error fetching interface information: device not found
התוכנית נתקעת בלולאה של receive ו-send כפי שאפשר היה להבין אבל התשובה היחידה שקיבלתי הייתה: "יש לך פיירוול שחוסם, אני לא מכיר את הגירסא הזו של לינוקס, יום נעים" ... הבנתם למה אמרתי שלדפוק את הראש יהיה קל מידי?
יודעים מה? ... לא צריך תומכים, אם הם לא יודעים בעצמם אז שיחכו להרצאה מאיתנו, את הבעיה הזו אפשר לתמוך כם בלי התמיכה. בואו נחשוב לרגע. קבצי תסריט (shell script) הם הרי לא משהו מיוחד חוץ מכמה פקודות ... מזכיר את batch בעצם, לא?
נשתמש למשל בבפקודה echo כדי להציג את תוכן המשתנים ונראה אם הם בכלל מקבלים בכלל משהו.
#!/bin/bash
USERNAME="username"
IFACE="eth0"
PPTPS=cable.netvision.net.il
ifdown $IFACE
ifup $IFACE
NVGW=$(host $PPTPS | cut -d" " -f4 | cut -f3 | tail -1)
echo Netvision gateway is: $NVGW
זה יעבוד בלי בעיה ...
CABLEGW=$(grep routers /var/lib/dhcpcd/dhcpcd-eth0.info| tail -n 1 | cut -d
";" -f1 | cut -d "t" -f3 | cut -d "o" -f4 | cut -d ' ' -f2)
echo cable gateway is: $CABLEGW
גם זה יעבוד בלי בעיה ,תלוי עם איזו גירסה של לינוקס אתם עובדים, לי יש SUSE 9 ...
route add -host $NVGW gw $CABLEGW
echo new host added
echo running pptp ...
./pptp $NVGW debug user $USERNAME mtu 1380 mru 1380 defaultroute persist
התכוננו לבלוף של התסריט בשלב הזה ... או שלא ...
sleep 7
NEWGW=$(ifconfig ppp0 | grep inet | cut -d":" -f3 | tail -1 | cut -d" " -f1)
לא שער ולא נעליים ...
route add default gw $NEWGW
route del default gw $CABLEGW
רק אחד? ...
echo nameserver 194.90.1.5 > /etc/resolv.conf
אז בואו נראה מה הפלט:
Netvision gateway is: xxx.xxx.xxx.xxx
cable gateway is: xxx.xxx.xxx.xxx
new host added
running pptp...
...
...
using ppp0 ...
...
...
...
...
rcv ...
sent ...
rcv...
snt ...
...
...
rvc
sent
..
...
נבדוק חיבור דרך דפדפן או כל דבר אחר (לא ממש משנה) עדיין כלום ... איפשהו במעמקי הפורומים של ווטסאפ נרשם מישהו אמר שצריכים להוסיף את שרתי ה-DNS של חברת הכבלים ושל הספק בקובץ /etc/resolv.conf/.
nameserver cable_dns_primary_here
nameserver cable_dns_secondary_here
nameserver isp_dns_primary_here
nameserver isp_dns_secondary_here
האמת היא שצד הלקוח של ה-PPTP אמור להוסיף את שני השורות האחרונות בזמן ההתחברות. עכשיו, כדי לבטל את התסריט שכבר רץ נלחץ Ctrl+C. נריץ את התסריט שוב אחרי שביצענו את השינויים לעיל אבל הפעם נבדוק גם אם נוצר לנו ממשק רשת בשם: ppp0 על ידי הפעלת הפקודה ifconfig במסוף. גם הפעם אגב, כדאי לעבור עם משתמש root.
אם לא התרחשה תקלה כלשהי, אנו אמורים לראות שלושה ממשקים חדשים: כרטיס רשת פיסי (eth0), כרטיס רשת מקומי וירטואלי (lo) וממשק ההתחברות לאינטרנט דרך הספק (ppp0).
אם זה באמת המצב גם אצלכם, אז סבבה. אגב, יש מי שממליצים גם לערוך קובץ בשם etc/ppp/options/, אותה הספריה בה מצאנו את pap-secrets למעשה ולהוסיף את השורה usepeerdns מתחת לפקודה lock, או בכל מקום אחר בקובץ. אנא הוסיפו זאת.
יופי. עכשיו יש לנו את שלושת הממשקים. אם נריץ את ההתסריט שוב, האינטרנט עדיין לא יעבוד מכיוון שצד הלקוח של החיבור ב-PPTP נשאר נעול בלולאה שמנהלת את התקשורת עם השרת של ספק האינטרנט. אבל לפי התסריט, אחרי הפקודות להפעלת PPTP ישנן שלוש פקודות חשובות שיאפשרו לנו לדבר עם העולם החיצון, אבל הן לא מבוצעות מכיוון שהלולאה לא מסתיימת עד שננתק את החיבור.
לכן נצטרך לרשום תסריט נוסף אותו אפשר להריץ ידנית לאחר התסריט הראשון. לצורך כך אנו חייבים לרשום לקובץ את כתובת ה-IP של ה-CABLEGW כדי שנוכל למחוק אותו ממטבלת הניתוב שלא נבנתה באופן מלא בגלל התסריט הנ"ל. הנה התסריט הרצוי:
##########################################
#!/bin/bash
USERNAME="username"
IFACE="eth0"
PPTPS=cable.netvision.net.il
ifdown $IFACE
ifup $IFACE
NVGW=$(host $PPTPS | cut -d" " -f4 | cut -f3 | tail -1)
CABLEGW=$(grep routers /var/lib/dhcp/dhclient-$IFACE.leases | tail -n 1 | cut
-d ";" -f1 | cut -d "t" -f3 | cut -d "o" -f4 | cut -d ' ' -f2)
route add -host $NVGW gw $CABLEGW
./pptp $NVGW debug user $USERNAME mtu 1380 mru 1380 defaultroute persist
echo $CABLEGW > gateway.gw
###########################################
ניצור גם תסריט חדש בשם FIX_ROUTE שיראה כך:
##########################################
#!/bin/bash
CABLEGW=$(cat gateway.gw)
NEWGW=$(ifconfig ppp0 | grep inet | cut -d":" -f3 | tail -1 | cut -d" " -f1)
route add default gw $NEWGW
route del default gw $CABLEGW
##########################################
לכן, סדר הפעלת התסריטים יהיה כלהלן:
/home/scripts/nvc/.cablestart.v022 <enter>
המתינו עד לסיום הלולאה snd/rcv והפעילו את התסריט השני:
/home/scripts/nvc/.fix_route <enter>
הפעילו את הפקודה netstat -r -n כדי להציג את טבלת הניתוב, שאמורה לכלול 2 רשימות של ppp0 ו2- רשימות של eth0 המוגדרים בטבלה. (לא כולל local loop, אם ישנו).
אה כן ... גלישה מהנה :)
נערך על ידי דיטיגס. לא זו לא פינה חדשה, אבל המחזור האחרון של המבקרים באתר מביא איתו גם כמה משתמשים שמתעקשים להבין מה הם עושים ואפילו טורחים לשתף אותנו בחוויות שלהם. הסקירה הבאה היא אמנם יותר מדריך, אבל היא נכתבה, כפי שאפשר להתרשם, מנקודת מבט מאוד אישית לכן חשבנו שהיא תתאים לדף הראשי. אנחנו רוצים גם להצטרף ל-nirro ולהזכיר לכם שצוות "GNU/לינוקס כנרת" עומל על פיתוח של אשף התחברות לאינטרנט, שיכיל בתוכו את כל הסקריפטים של התחברות לכל הספקים ולכל המודמים הנתמכים בארץ וזקוק למשתמשים שיבדקו אותם ואם הם גם מסוגלים לתקן, אז על אחת כמה וכמה. ראו פרטים נוספים
כאן.