لا يوجد نقص في حلول البرامج التي يمكن أن تساعدك على نقل الملفات بين أجهزة الكمبيوتر. ومع ذلك ، إذا قمت بذلك نادرًا جدًا ، فقد تكون الحلول النموذجية مثل NFS و SFTP (من خلال OpenSSH) مبالغة. علاوة على ذلك ، فإن هذه الخدمات مفتوحة بشكل دائم لتلقي ومعالجة الاتصالات الواردة. اذا تم التهيئة بشكل غير صحيح ، فقد يجعل هذا جهازك عرضة لهجمات معينة.
يمكن استخدام netcat ، ما يسمى بسكين الجيش السويسري TCP / IP ، كحل مخصص لنقل الملفات من خلال الشبكات المحلية أو الإنترنت. ومن المفيد أيضًا نقل البيانات إلى / من الأجهزة الظاهرية أو الحاويات عند عدم تضمينها في الميزة. يمكنك حتى استخدامه كآلية النسخ واللصق بين جهازين.
روابط سريعة
كيفية تثبيت netcat على توزيعات لينكس المختلفة
تأتي معظم أنظمة التشغيل التي تعمل بنظام التشغيل Linux مثبتة مسبقًا بـ netcat. افتح Terminal واكتب:
netcat
إذا لم يتم العثور على الأمر ، قم بتثبيت الحزمة التي تحتوي على 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
في لقطة الشاشة المعروضة كمثال ، يكون عنوان IP هو 10.11.12.10
.
على نفس جهاز الكمبيوتر ، الذي سيستلم الملف ، أدخل هذا الأمر:
nc -vl 44444 > pick_desired_name_for_received_file
وعلى الكمبيوتر الذي سيرسل الملف ، اكتب هذا ، واستبدل الرقم 10.11.12.10
بـ IP الذي اكتشفته سابقًا:
nc -N 10.11.12.10 44444 < /path/to/file/you/want/to/send
يمكن أن تكون مسارات الدليل والملفات مطلقة أو نسبية. المسار المطلق هو “/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
على جهاز الإرسال ، استخدم:
tar czp /path/to/directory/to/send | nc -N 10.11.12.10 44444
الخلاصة
على نحو مفضل ، لن تستخدم هذا إلا على شبكة المحلية الخاصة بك. السبب الأساسي هو أن حركة الزيارات من الشبكة غير مشفرة. إذا كنت ترسل هذا إلى خادم ، عبر الإنترنت ، يمكن اعتراض حزم البيانات الخاصة بك على طول مسار الشبكة. ولكن إذا كانت الملفات التي تنقلها لا تحتوي على بيانات حساسة ، فهي ليست مشكلة حقيقية. ومع ذلك ، فإن الخوادم عادةً ما تكون مزودة بـ SSH مسبقًا لقبول اتصالات FTP الآمنة ، ويمكنك استخدام SFTP بدلاً من ذلك لنقل الملفات.