שלח נתונים על פני מחשבים ברשת עם Netcat באמצעות שורת הפקודה
Netcat הוא כלי שורת פקודה רב עוצמה שיכול לקרוא ולכתוב נתונים על פני חיבור רשת באמצעות TCP/IP, הוא משמש בדרך כלל עבור ממסרים, העברת קבצים, סריקת יציאות, בין היתר. למרות שמקורות netcat הם מעולם ה-unix וה-linux, netcat מובנית גם ב-Mac OS X, ואנו הולכים להשתמש בכלי השירות nc כדרך קלה לשלוח נתונים וטקסט אחר על פני שני מחשבים ברשת.על ידי שימוש ב-netcat לשליחת נתונים עם יחסי לקוח ושרת פשוטים למדי, הוא מציע אלטרנטיבה מהירה יותר לשיתוף קבצים מסורתי כאשר המשתמשים יעדיפו להישאר בשורת הפקודה בזמן שליחה וקבלה של נתונים, והיכן חיבור דרך SSH או SFTP הוא ' לא מעשי.
שימו לב ש-netcat לא דורש כניסות או אימות, הדרישה היחידה היא שהלקוח מודע לכתובת ה-IP של השרת ולמספר יציאת ההאזנה. זה כמובן מעלה פוטנציאל מסוים לשימוש לרעה באבטחה, ולכן השימוש ב-netcat לשליחת נתונים וטקסט בדרך כלל שמור בצורה הטובה ביותר למשתמשים מתקדמים, או לשימוש בלעדי מאחורי רשת מקומית מוגנת שבה יש סיכון מועט. מצבים שבהם חשוב להדגיש את האבטחה עדיף להשתמש ב-SSH.
לנוחות, נתייחס למחשב 1 שמאזין עם netcat כאל "שרת", ונתייחס למחשב 2 ששולח את הנתונים למחשב 1 כאל "לקוח".
הגדר את Netcat להאזנה בשרת (מחשב 1) ויציאה
נשיק את netcat ונבקש ממנו להאזין ביציאה 2999, ולאחר מכן ננתב כל אחד מהנתונים שהתקבלו לקובץ בשם "received.txt" עם מחרוזת הפקודה הבאה:
nc -l 2999 > receive.txt
לפני שתקרא לזה מעבר ללקוח, תרצה שכתובת ה-IP של ה-Mac תהיה ברשת המקומית. אתה יכול לקבל את זה מלוח הבקרה של הרשת, או מכיוון שאתה כבר בטרמינל, באמצעות שורת הפקודה עם התחביר הבא:
ipconfig getifaddr en0
מחשבי Mac מודרניים עם Wi-Fi בלבד ישתמשו ב-en0, מחשבי Mac עם Ethernet ו-WiFi עשויים להשתמש ב-en1. אם אחד לא מעלה כלום, נסה את הממשק השני כדי לקבל את ה-LAN IP. הבה נניח שה-IP של Mac זה מדווח כ-"192.168.1.101", כמובן שה-IP שלך עשוי להשתנות. תצטרך את זה במחשב הלקוח כדי לשלוח נתונים, שאותם נעסוק בהמשך.
Pipe Data from Client (Computer 2) to the Listening Server
עכשיו בלקוח שממנו אתה רוצה לשלוח נתונים, אתה יכול להשתמש בפקודה כמו הבאה. אנו נשתמש ב-cat כדי לשפוך קובץ טקסט דרך הרשת לשרת netcat המאזין, אבל אתה יכול להעביר כמעט כל דבר שתרצה:
cat sendthisdataover.txt | nc 192.168.1.101 2999
כדי שזה יעבוד כמו שצריך, הקפד למלא את כתובת ה-IP שלך מהשרת, ולכתוב את הקובץ או הטקסט המתאים שברצונך לשלוח אליו.
בהנחה שהרשת המקומית אפילו מהירה מעט, הנתונים אמורים להגיע די מהר אם לא באופן מיידי. לאחר השלמת העברת הנתונים, שני הצדדים של החיבור ייפסקו והשרת יפסיק להאזין, ואז יסגור את היציאה. זה הופך אותו ליעיל לשליחה חד פעמית של נתונים כמו קובצי יומן או מסמך טקסט גדול, אבל זה לא בהכרח מעשי למעבר על הרבה קבצים.
כפי שכבר ציינו, אתה יכול להעביר כמעט כל נתונים, כך שבין אם זה פלט של אפליקציה אחרת, זנב, חתול, או אפילו זרקו ישירות מהלוח עם pbcopy ו-pbpaste, זה יועבר דרך netcat.
יש לציין שיש דרכים נוחות יותר לשיתוף לוח כתיבה בין מחשבי Mac או בין מחשבי Mac ו-Linux או Windows, ובמצבים אלו עדיף לך להשתמש בכלים חינמיים כמו Teleport for Mac- שיתוף קלט ל-Mac, או כלי השירות החינמי Synergy אם אתה עובר פלטפורמה בין מחשבי Mac ו-PC. שניהם מאפשרים למשתמש לשתף נתוני לוח וכן התקני קלט כמו עכבר ומקלדת.
למען הפרוטוקול, בעוד שההדגמה הזו מוצגת בשני מחשבי Mac עם OS X, אין סיבה שלא תוכל להשתמש ב-netcat כדי לשלוח נתונים בין מחשב Mac ו-Linux, או להיפך.
יש עוד המון שימושים נהדרים עבור netcat שם בחוץ, אם יש לך מועדפים, ספר לנו בתגובות!