كيفية استخدام Netcat لنقل الملفات بسرعة بين أجهزة الكمبيوتر بنظام التشغيل Linux

لا يوجد نقص في حلول البرامج التي يمكن أن تساعدك على نقل الملفات بين أجهزة الكمبيوتر. ومع ذلك ، إذا قمت بذلك نادرًا جدًا ، فقد تكون الحلول النموذجية مثل NFS و SFTP (من خلال OpenSSH) مبالغة. علاوة على ذلك ، فإن هذه الخدمات مفتوحة بشكل دائم لتلقي ومعالجة الاتصالات الواردة. اذا تم التهيئة بشكل غير صحيح ، فقد يجعل هذا جهازك عرضة لهجمات معينة.

يمكن استخدام netcat ، ما يسمى بسكين الجيش السويسري TCP / IP ، كحل مخصص لنقل الملفات من خلال الشبكات المحلية أو الإنترنت. ومن المفيد أيضًا نقل البيانات إلى / من الأجهزة الظاهرية أو الحاويات عند عدم تضمينها في الميزة. يمكنك حتى استخدامه كآلية النسخ واللصق بين جهازين.

كيفية استخدام Netcat لنقل الملفات بسرعة بين أجهزة الكمبيوتر بنظام التشغيل Linux - لينكس

كيفية تثبيت netcat على توزيعات لينكس المختلفة

تأتي معظم أنظمة التشغيل التي تعمل بنظام التشغيل Linux مثبتة مسبقًا بـ netcat. افتح Terminal واكتب:

netcat
كيفية استخدام Netcat لنقل الملفات بسرعة بين أجهزة الكمبيوتر بنظام التشغيل Linux - لينكس

إذا لم يتم العثور على الأمر ، قم بتثبيت الحزمة التي تحتوي على netcat ، وهو متغير BSD. هناك أيضًا إصدار GNU من netcat الذي يحتوي على ميزات أقل. أنت بحاجة إلى netcat على كل من الكمبيوتر الذي يستلم الملف والأخرى الذي ترسل منه.

على التوزيعات المستندة إلى Debian مثل Ubuntu أو Linux Mint ، قم بتثبيت الأداة المساعدة مع:

sudo apt install netcat-openbsd

باستخدام openSUSE ، اتبع الإرشادات في هذه الصفحة ، الخاصة بتوزيعك بشكل دقيق.

في Arch Linux ، أدخل الأمر التالي:

sudo pacman -S openbsd-netcat

للأسف ، لا تشتمل عائلة RedHat على متغيرات BSD أو GNU لل netcat. لسبب غريب ، قرروا الذهاب مع nmap-ncat. على الرغم من أن بعض خيارات سطر الأوامر متشابهة ، إلا أنها لا تتوفر ، على سبيل المثال -N. هذا يعني أنك ستضطر إلى استبدال خط مثل nc -vlN 1234> nc with nc -vl 1234> nc بحيث يعمل على RedHat / Fedora.

لتثبيت ncat على RedHat:

sudo yum install nmap-ncat

وعلى Fedora:

sudo dnf install nmap-ncat

كيفية استخدام netcat لنقل الملفات بين أجهزة الكمبيوتر لينكس

على جهاز الكمبيوتر الذي سيتلقى الملف ، ابحث عن عنوان IP المستخدم على شبكتك الداخلية.

ip route get 8.8.8.8

بعد “src” سترى عنوان IP الخاص بالشبكة الداخلية للجهاز. إذا كانت النتائج ، لسبب ما ، غير ذات صلة ، يمكنك أيضًا تجربة:

ip address
كيفية استخدام Netcat لنقل الملفات بسرعة بين أجهزة الكمبيوتر بنظام التشغيل Linux - لينكس

في لقطة الشاشة المعروضة كمثال ، يكون عنوان IP هو 10.11.12.10.

على نفس جهاز الكمبيوتر ، الذي سيستلم الملف ، أدخل هذا الأمر:

nc -vl 44444 > pick_desired_name_for_received_file
كيفية استخدام Netcat لنقل الملفات بسرعة بين أجهزة الكمبيوتر بنظام التشغيل Linux - لينكس

وعلى الكمبيوتر الذي سيرسل الملف ، اكتب هذا ، واستبدل الرقم 10.11.12.10 بـ IP الذي اكتشفته سابقًا:

nc -N 10.11.12.10 44444 < /path/to/file/you/want/to/send
كيفية استخدام Netcat لنقل الملفات بسرعة بين أجهزة الكمبيوتر بنظام التشغيل Linux - لينكس

يمكن أن تكون مسارات الدليل والملفات مطلقة أو نسبية. المسار المطلق هو “/home/user/Pictures/file.png“. ولكن إذا كنت بالفعل في ” home/user” ، يمكنك استخدام المسار النسبي “Pictures / file.png” ، كما هو موضح في الصورة في الاعلى.

في الأمر الأول تم استخدام معلمتين: -v و - l، -v يجعل مطول الإخراج مطبوعًا لمزيد من التفاصيل ، حتى تتمكن من رؤية ما يجري. -l يجعل الأداة تقوم بـ “الاستماع” على المنفذ 44444 ، بشكل أساسي فتح قناة اتصال على جهاز الاستقبال. إذا كانت قواعد جدار الحماية نشطة ، فتأكد من أنها لا تحظر الاتصال.

في الأمر الثاني ، -N يجعل netcat يقوم بإغلاق عند الانتهاء من النقل.

عادةً ، سوف ينتج netcat في Terminal أن كل شيء تم تلقيه. > ينشئ إعادة توجيه لهذا الإخراج. بدلاً من طباعته على الشاشة ، فإنه يرسل كل الإخراج إلى الملف المحدد بعد>. <يعمل في الاتجاه المعاكس ، مع أخذ الإدخال من الملف المحدد بدلاً من انتظار الإدخال من لوحة المفاتيح.

إذا كنت تستخدم الأوامر الواردة أعلاه بدون عمليات إعادة توجيه ، على سبيل المثال ، nc -vl 44444 و nc -N 10.11.12.10 44444 ، فيمكنك إنشاء “دردشة” بدائية بين الجهازين. إذا كتبت شيئًا في Terminal واحد والضغط على Enter ، فسوف يظهر على الكمبيوتر الآخر. هذه هي الطريقة التي يمكنك من خلالها نسخ النص ولصقه من جهاز إلى آخر. اضغط على Ctrl + D (على المرسل) أو Ctrl + C (في أي مكان) لإغلاق الاتصال.

تحسين نقل الملفات

عند إرسال ملفات كبيرة ، يمكنك ضغطها بسهولة لزيادة سرعة النقل.

على الطرف المتلقي أدخل:

nc -vl 44444 | gunzip> pick_desired_name_for_file

وعلى جهاز المرسل ، أدخل ما يلي ، واستبدل الرقم 10.11.12.10 بعنوان IP لجهاز الاستقبال الخاص بك:

gzip -c /path/to/file/you/want/to/send | nc -N 10.11.12.10 44444

إرسال واستقبال المجلدات

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

على الطرف المتلقي ، استخدم هذا الأمر:

nc -vl 44444 | tar zxv

كيفية استخدام Netcat لنقل الملفات بسرعة بين أجهزة الكمبيوتر بنظام التشغيل Linux - لينكس

على جهاز الإرسال ، استخدم:

tar czp /path/to/directory/to/send | nc -N 10.11.12.10 44444
كيفية استخدام Netcat لنقل الملفات بسرعة بين أجهزة الكمبيوتر بنظام التشغيل Linux - لينكس

الخلاصة

على نحو مفضل ، لن تستخدم هذا إلا على شبكة المحلية الخاصة بك. السبب الأساسي هو أن حركة الزيارات من الشبكة غير مشفرة. إذا كنت ترسل هذا إلى خادم ، عبر الإنترنت ، يمكن اعتراض حزم البيانات الخاصة بك على طول مسار الشبكة. ولكن إذا كانت الملفات التي تنقلها لا تحتوي على بيانات حساسة ، فهي ليست مشكلة حقيقية. ومع ذلك ، فإن الخوادم عادةً ما تكون مزودة بـ SSH مسبقًا لقبول اتصالات FTP الآمنة ، ويمكنك استخدام SFTP بدلاً من ذلك لنقل الملفات.

المصدر
زر الذهاب إلى الأعلى