ถ่ายโอนไฟล์ระหว่าง Android และ Linux — ไม่ยุ่งยากกับ MTP

ถ่ายโอนไฟล์ระหว่าง Android และ Linux — ไม่ยุ่งยากกับ MTP

อัปเดตล่าสุด :

การถ่ายโอนไฟล์ Android ↔ Linux — ข้ามความเจ็บปวดของ MTP

หากคุณเคยลองเชื่อมต่อโทรศัพท์ Android กับเดสก์ท็อป Linux ผ่าน USB คุณจะทราบถึงความยุ่งยากนี้MTP บน Linux ได้รับการจัดการโดย libmtp และ gvfs-mtp — ไลบรารี่ที่ฉาวโฉ่การตัดการเชื่อมต่อระหว่างการถ่ายโอน การค้างของ Nautilus ไฟล์ที่เสียหาย หรือตรวจไม่พบโทรศัพท์เลย

AnExplorer ก้าวเท้าเลี่ยง MTP โดยสิ้นเชิงสองแนวทางที่ทำงานได้อย่างน่าเชื่อถือบน Linux distro ใด ๆ :

  1. การเชื่อมต่ออุปกรณ์ — โทรศัพท์ของคุณใช้งานเซิร์ฟเวอร์ HTTP คุณเปิดใน Firefoxการตั้งค่าเป็นศูนย์บน Linux
  2. ไคลเอนต์ SFTP — AnExplorer เชื่อมต่อกับ SSH ของเครื่อง Linuxกล่อง Linux ส่วนใหญ่ใช้งาน SSH ทันที

ทั้งสองทำงานผ่าน Wi-Fiไม่มีสายเคเบิล ไม่มีไดรเวอร์ ไม่มีการแก้ไขจุดบกพร่อง mtp-detect

วิธีที่ 1: การเชื่อมต่ออุปกรณ์ (โทรศัพท์ → Linux, การตั้งค่าเป็นศูนย์)

นี่เป็นวิธี "ใช้งานได้"โทรศัพท์ของคุณจะกลายเป็นเว็บเซิร์ฟเวอร์เบราว์เซอร์ของ Linux คือไคลเอนต์

บนโทรศัพท์ของคุณ:

  1. เปิด AnExplorer → แตะ ☰ → การเชื่อมต่ออุปกรณ์เริ่ม
  2. หมายเหตุที่อยู่: http://192.168.1.42:8080

บนลินุกซ์:

  1. เปิด Firefox (หรือ Chrome/Chromium/Brave — อะไรก็ได้ที่มีเบราว์เซอร์)
  2. พิมพ์ที่อยู่ → Enter
  3. ระบบไฟล์ในโทรศัพท์ของคุณจะปรากฏขึ้น — เรียกดู ดาวน์โหลด อัปโหลด เปลี่ยนชื่อ ลบ

แค่นั้นแหละ.ไม่มี apt install อะไรเลยไม่มี Flatpakไม่มีสแนปไม่มีสัญญาซื้อขายไฟฟ้าแค่เบราว์เซอร์ที่คุณมีอยู่แล้ว

สิ่งที่คุณสามารถทำได้:

  • ดาวน์โหลดไฟล์จากโทรศัพท์ไปยัง Linux (คลิกไฟล์ใดก็ได้)
  • อัปโหลดไฟล์จาก Linux ไปยังโทรศัพท์ (ปุ่มอัปโหลด → ตัวเลือกไฟล์)
  • สร้างโฟลเดอร์ เปลี่ยนชื่อไฟล์ ลบ — การจัดการไฟล์เต็มรูปแบบจากเบราว์เซอร์
  • ถ่ายโอนไฟล์หลายไฟล์พร้อมกัน

ความเร็ว: 20–50 MB/s บน Wi-Fi 5 GHzเร็วกว่า MTP ในทางปฏิบัติ และเชื่อถือได้มากกว่าอย่างไร้ขีดจำกัด

ใช้งานได้กับ distro ใดก็ได้: Ubuntu, Fedora, Arch, Debian, openSUSE, Mint, Pop!_OS, Manjaro — หากมีเว็บเบราว์เซอร์ Device Connect ก็ใช้งานได้ไม่มีแพ็คเกจเฉพาะ distro, ไม่มีการพึ่งพานรก, ไม่มี PPA ที่จะเพิ่มนี่คือเหตุผลว่าทำไมวิธีนี้จึงเป็นวิธีแรกที่แนะนำสำหรับผู้ใช้ Linux ที่ต้องการย้ายไฟล์โดยไม่ต้องคำนึงถึงโครงสร้างพื้นฐาน

วิธีที่ 2: ไคลเอนต์ SFTP (Linux → โทรศัพท์, เข้าถึงไฟล์ Linux)

เครื่อง Linux รัน OpenSSH เกือบตลอดเวลาไคลเอนต์ SFTP ของ AnExplorer เชื่อมต่อกับมันโดยตรง — ทำให้คุณสามารถเข้าถึงระบบไฟล์ Linux ของคุณได้อย่างเต็มที่จากโทรศัพท์ของคุณ

บน Linux (ตรวจสอบว่า SSH กำลังทำงานอยู่):

systemctl status sshd

หากไม่ได้ทำงานอยู่: sudo systemctl enable --now sshd

สังเกต IP ของเครื่อง Linux ของคุณ: ip addr show หรือ hostname -I

บนโทรศัพท์ของคุณ:

  1. เปิด AnExplorer → ☰ → เครือข่ายSFTP
  2. แตะ + เพื่อเพิ่มการเชื่อมต่อใหม่
  3. โฮสต์: Linux IP ของคุณ (เช่น 192.168.1.100 ), พอร์ต: 22
  4. ชื่อผู้ใช้: ล็อกอิน Linux ของคุณ, รหัสผ่าน: รหัสผ่าน Linux ของคุณ
  5. แตะ เชื่อมต่อ

ระบบไฟล์ Linux ทั้งหมดของคุณปรากฏใน AnExplorerเรียกดู /home/username/ คัดลอกไฟล์ไปยังโทรศัพท์ของคุณ หรืออัปโหลดจากโทรศัพท์ไปยัง Linux

ทำไมผู้ใช้ Linux ถึงชอบสิ่งนี้:

  • SSH กำลังทำงานอยู่แล้ว — ไม่ต้องติดตั้งหรือกำหนดค่าซอฟต์แวร์เพิ่มเติม
  • เข้ารหัสตามค่าเริ่มต้น (ไม่เหมือนกับ FTP หรือ HTTP) — ข้อมูลทั้งหมดเดินทางผ่านอุโมงค์ SSH
  • ทำงานจากระยะไกลผ่าน VPN (ไม่ใช่แค่ Wi-Fi ในเครื่อง) — เข้าถึงกล่อง Linux ที่บ้านของคุณได้จากทุกที่
  • คุ้นเคยกับทุกคนที่ใช้ scp หรือ rsync — ข้อมูลรับรองเดียวกัน พอร์ตเดียวกัน
  • การเข้าถึงระบบไฟล์เต็มรูปแบบ — เรียกดู /home , /media , /mnt หรือแม้แต่ /etc หากผู้ใช้ของคุณได้รับอนุญาต
  • คั่นหน้าได้ใน AnExplorer — บันทึกการเชื่อมต่อสำหรับการเข้าถึงด้วยการแตะเพียงครั้งเดียวในครั้งถัดไป

การใช้งานจริง:

  • ดึงไฟล์จากเวิร์กสเตชัน Linux ไปยังโทรศัพท์ของคุณก่อนออกจากบ้าน
  • เข้าถึงไลบรารีสื่อของโฮมเซิร์ฟเวอร์ของคุณจากโทรศัพท์ของคุณบนโซฟา
  • อัปโหลดรูปภาพจากโทรศัพท์ของคุณโดยตรงไปยังคลังรูปภาพของเครื่อง Linux
  • เรียกดูไฟล์โครงการบนเครื่องพัฒนาของคุณจากโทรศัพท์ของคุณในระหว่างการประชุม

วิธีที่ 3: Samba/SMB (โฟลเดอร์ที่ใช้ร่วมกัน พร้อมใช้งานเสมอ)

หากคุณแชร์โฟลเดอร์บนเครื่อง Linux ของคุณผ่าน Samba AnExplorer จะเชื่อมต่อเป็นไคลเอ็นต์ SMB:

บน Linux (การตั้งค่า Samba ครั้งเดียว):

sudo apt install samba
sudo nano /etc/samba/smb.conf

เพิ่มการแชร์ ตั้งรหัสผ่าน Samba ( sudo smbpasswd -a username ) รีสตาร์ท: sudo systemctl restart smbd

บนโทรศัพท์ของคุณ:

  1. AnExplorer → ☰ → เครือข่าย → SMB → แตะ +
  2. ป้อน Linux IP, ชื่อแชร์, ชื่อผู้ใช้, รหัสผ่าน Samba
  3. เชื่อมต่อ — โฟลเดอร์แชร์ของคุณจะปรากฏขึ้น

เมื่อบุ๊กมาร์กแล้ว คุณจะเข้าถึงด้วยการแตะเพียงครั้งเดียวจากแถบด้านข้างของ AnExplorer ทุกครั้งที่อุปกรณ์ทั้งสองอยู่ในเครือข่ายเดียวกัน

เมื่อ Samba เข้าใจความหมายผ่านการเชื่อมต่ออุปกรณ์:

  • คุณต้องการโฟลเดอร์แชร์แบบถาวรที่พร้อมใช้งานตลอดเวลา (ไม่ใช่แค่เมื่อคุณเริ่มเซิร์ฟเวอร์ด้วยตนเอง)
  • อุปกรณ์หลายเครื่องจำเป็นต้องเข้าถึงโฟลเดอร์ Linux เดียวกัน (โทรศัพท์ แท็บเล็ต ทีวี)
  • คุณใช้งาน Samba สำหรับเครื่อง Windows บนเครือข่ายของคุณอยู่แล้ว
  • คุณต้องการวางไฟล์ลงในโฟลเดอร์บน Linux และรับไฟล์จากโทรศัพท์ของคุณในภายหลัง โดยไม่ต้องดำเนินการด้วยตนเอง

ทำไมไม่ MTP ผ่าน USB?

MTP บน Linux เป็นปัญหามานานกว่าทศวรรษปัญหาทั่วไป:

  • ตรวจไม่พบโทรศัพท์gvfs-mtp ไม่สามารถระบุอุปกรณ์ได้
  • Nautilus/Dolphin ค้าง — ตัวจัดการไฟล์ค้างเมื่อเรียกดูพื้นที่จัดเก็บข้อมูลในโทรศัพท์
  • ความเสียหายในการถ่ายโอน — ไฟล์มาถึงไม่สมบูรณ์หรือเสียหาย โดยเฉพาะวิดีโอขนาดใหญ่
  • ไม่มีการเข้าถึงพร้อมกัน — มีเพียงแอปเดียวเท่านั้นที่สามารถเข้าถึง MTP ในแต่ละครั้ง
  • ปัญหาการอนุญาต — กฎ udev จำเป็นสำหรับดิสทริบิวชันบางตัว

สิ่งเหล่านี้ไม่ใช่ความผิดของ AnExplorer - มันเป็นปัญหาสแต็ก Linux MTPDevice Connect และ SFTP ข้ามเลเยอร์ MTP ทั้งหมดโดยใช้โปรโตคอลเครือข่ายมาตรฐานที่ Linux จัดการได้อย่างไร้ที่ติ

สำหรับผู้ที่สงสัยทางเทคนิค: MTP ได้รับการออกแบบโดย Microsoft สำหรับเครื่องเล่นสื่อพกพาในช่วงต้นทศวรรษ 2000ไม่เคยมีไว้สำหรับการถ่ายโอนไฟล์เพื่อวัตถุประสงค์ทั่วไปLinux ใช้มันอย่างไม่เต็มใจเพราะ Android เลือกให้เป็นโปรโตคอล USB เริ่มต้น (แทนที่ USB Mass Storage ซึ่งมีปัญหาในการถอนการเชื่อมต่อ)ผลลัพธ์ที่ได้คือโปรโตคอลที่ไม่มีใครชื่นชอบ ซึ่งใช้งานโดยไลบรารีที่ไม่มีใครดูแลได้ดี บนระบบปฏิบัติการที่มีโปรโตคอลการแชร์ไฟล์แบบเนทิฟที่ดีกว่ามาก (SSH, SMB, HTTP)AnExplorer ให้คุณใช้โปรโตคอลที่ดีกว่าเหล่านั้นแทน

หมายเหตุเฉพาะ Distro

Ubuntu/Debian: โดยปกติแล้ว SSH จะไม่ถูกติดตั้งเป็นค่าเริ่มต้นในรุ่นเดสก์ท็อปติดตั้งด้วย sudo apt install openssh-serverบนเซิร์ฟเวอร์ Ubuntu มีการติดตั้งไว้ล่วงหน้า

Fedora/RHEL: ติดตั้ง SSH แล้ว แต่อาจไม่ได้เปิดใช้งานเริ่มต้นด้วย sudo systemctl enable --now sshdไฟร์วอลล์อาจบล็อกพอร์ต 22 — เปิดด้วย sudo firewall-cmd --add-service=ssh --permanent && sudo firewall-cmd --reload

Arch Linux: ติดตั้งด้วย sudo pacman -S openssh และเปิดใช้งานด้วย sudo systemctl enable --now sshd

Linux Mint/Pop!_OS: เหมือนกับ Ubuntu — sudo apt install openssh-server หากไม่มี

สำหรับ Samba แพ็คเกจ distros หลักทั้งหมดจะเป็น: apt install samba (Debian/Ubuntu), dnf install samba (Fedora), pacman -S samba (Arch)

การเปรียบเทียบ: วิธีการถ่ายโอน Linux

วิธีการความเร็วการตั้งค่าลินุกซ์ความน่าเชื่อถือดีที่สุดสำหรับ
การเชื่อมต่ออุปกรณ์20–50 เมกะไบต์/วินาทีไม่มี (เบราว์เซอร์)ดีเยี่ยมโอนด่วน distro ใด ๆ
SFTP (ถึง Linux)20–40 เมกะไบต์/วินาทีSSH ทำงาน (โดยปกติจะเป็นค่าเริ่มต้น)ดีเยี่ยมการเข้าถึงไฟล์ Linux จากโทรศัพท์
แซมบ้า/SMB30–60 เมกะไบต์/วินาทีติดตั้ง + กำหนดค่า Sambaดีเยี่ยมโฟลเดอร์แชร์ที่พร้อมใช้งานเสมอ
เชื่อมต่อ KDE10–30 เมกะไบต์/วินาทีติดตั้ง KDE เชื่อมต่อดีการแจ้งเตือน + ไฟล์ขนาดเล็ก
ส่งภายในเครื่อง20–50 เมกะไบต์/วินาทีติดตั้ง LocalSendดีข้ามแพลตฟอร์ม โอเพ่นซอร์ส
MTP (ยูเอสบี)10–30 เมกะไบต์/วินาทีไม่มี (ในตัว)แย่บน Linuxทางเลือกสุดท้าย
กด/ดึง ADB30–50 เมกะไบต์/วินาทีติดตั้ง ADBดีนักพัฒนาเท่านั้น

คำแนะนำที่เกี่ยวข้อง

คำถามที่พบบ่อย