การใช้เซิร์ฟเวอร์ SMB โดยไม่มีการเข้าถึงรูท


18

ฉันกำลังมองหาวิธีสำหรับ HTC Hero (Android 2.1) ของฉันดังนั้นฉันสามารถแบ่งปันเนื้อหาของการ์ด SD และหน่วยความจำโทรศัพท์ผ่านเครือข่าย WiFi เช่นการแชร์ไฟล์ Windows ปกติ ฉันต้องการหนึ่งที่ไม่ต้องการให้ฉันรูทโทรศัพท์ของฉันและยินดีจ่ายสำหรับแอพที่ถูกต้องดังนั้นจึงไม่ต้องเสียค่าใช้จ่าย

ฉันกำลังคิดที่จะใช้เซิร์ฟเวอร์ SMB และทั้งหมดที่ฉันพบคือ:

  1. SambaAndroidซึ่งต้องการการเข้าถึงรูท
  2. androidsmbซึ่งเป็น "การติดตั้ง Java ของไฟล์เครือข่าย SMB / CIFS และเซิร์ฟเวอร์แชร์เครื่องพิมพ์สำหรับอุปกรณ์ Android" โฮสต์บน Google Code ที่ไม่มีเอกสารประกอบและยังไม่ได้เผยแพร่ไฟล์ใด ๆ

มันเป็นไปได้ทางเทคนิคในการพัฒนาเซิร์ฟเวอร์ SMB บน Android ที่สามารถติดตั้งได้โดยไม่ต้องเข้าถึงรูทหรือไม่?


ฉันเคยใช้Wifi Explorer( appbrain.com/app/wifi-file-explorer/ … ) สองสามครั้งและใช้งานได้ดีไม่ต้องใช้รูท ไม่ใช่ SMB (และอาจไม่ใช่ FTP เช่นกัน)
Joe Casadonte

คำตอบ:


12

เนื่องจากคำถามเดิมของคุณยังไม่ได้รับคำตอบและฉันก็สงสัยเหมือนกันนี่คือคำตอบ

คำตอบสั้น ๆ : ไม่โดยไม่ต้องรูทคุณไม่สามารถรันเซิร์ฟเวอร์ SMB โดยใช้พอร์ตเริ่มต้นเพื่อให้พีซี Windows พบได้

คำตอบยาว: SMB ทำงานบนพอร์ต 137-139 (UDP และ TCP) โดยใช้ NetBIOS หรือระบบที่ใหม่กว่า (จาก Windows Vista เป็นต้นไป) โดยตรงบนพอร์ต TCP 445 ซึ่งในกรณีหลังชื่อคอมพิวเตอร์จะได้รับการแก้ไขโดย LLMNR (Multicast Link-local) ชื่อการแก้ไข) โปรโตคอลที่ทำงานบนพอร์ต UDP 5355 เหตุใดจึงมีความสำคัญ แอปที่ไม่ทำงานเนื่องจากรูทไม่สามารถผูกเข้ากับพอร์ตที่ไม่ได้รับสิทธิพิเศษ (<1024) เป็นไปได้ที่จะใช้พอร์ตทางเลือกสำหรับ SMB แต่ Windows นั้นใช้สายแบบแข็งเพียงแค่ฟังค่าเริ่มต้น ดังนั้นฉันเดาว่าถ้าคุณใช้ Linux หรือไคลเอนต์ SMB แยกต่างหากสำหรับ Windows ซึ่งอนุญาตให้เชื่อมต่อกับเซิร์ฟเวอร์ด้วยหมายเลขพอร์ตที่กำหนดเองอาจเป็นไปได้ แต่มันไม่ได้เป็นวิธีที่ตรงไปตรงมา


ยอดเยี่ยมคำตอบจริงหลังจากเวลานี้ทั้งหมด ขอบคุณ ตอนนี้ถ้าฉันจำได้แค่ว่าทำไมฉันถึงต้องการสิ่งนี้ ... ;)
วันที่

3
ฉันต้องการเพราะฉันขี้เกียจเสียบ USB เพื่อเข้าถึงการ์ด SD: D
letmaik

ฉันสงสัยว่า Windows สามารถรับมือกับ\\your.ip:port...
Tobias Kienzler

10

แม้ว่ามันจะเป็นไปไม่ได้ที่จะรันเซิร์ฟเวอร์ SMB โดยไม่มีรูทหรือใช้การส่งต่อพอร์ตแต่ก็เป็นไปได้ที่จะรันเซิร์ฟเวอร์ WebDAV โดยไม่ต้องรูทเพื่อให้ได้ผลที่คล้ายกัน

การตั้งค่าเซิร์ฟเวอร์ Android WebDAV

ในสต็อกของฉัน Nexus 7 ฉันติดตั้งเซิร์ฟเวอร์ WebDAVเปิดขึ้นคลิกที่ปุ่มเริ่มและสามารถเห็น/storage/sdcardโฟลเดอร์ของฉันในเว็บเบราว์เซอร์ของฉันได้ทันทีที่ URL ที่แสดงโดยแอปพลิเคชันเช่นhttp://192.168.x.y:8080

โปรดทราบว่ามี WebDAV คุณยังมีตัวเลือกในการเลือกราก (/)หรือDCIMเช่นเดียวกับsdcardเป็นของ WebDAV ราก

การใช้เซิร์ฟเวอร์ WebDAV ผ่าน Windows Explorer

จากนั้นฉันก็แมปhttp://192.168.x.y:8080เป็นไดรฟ์เครือข่ายใน Windows Explorer และสามารถเข้าถึงเนื้อหาของไดรฟ์เก็บข้อมูลของฉันราวกับว่าฉันเชื่อมต่อผ่าน MTP แต่ผ่านตัวอักษรไดรฟ์

น่าเศร้าโซลูชันนี้ช้าอย่างไม่น่าเชื่อ

การเปลี่ยนไดเรกทอรีทุกครั้งจะใช้เวลาประมาณ 6 ถึง 20 วินาทีเช่นเดียวกับการเข้าถึงไฟล์ส่วนใหญ่ เมื่อมีการเข้าถึงไฟล์ไฟล์จะถ่ายโอนด้วยความเร็วที่เหมาะสม (การคัดลอกไฟล์ 42MB เดียวใน Windows Explorer ใช้เวลาประมาณ 60 วินาทีดังนั้น 700KB / s)

ดังนั้น WebDAV ผ่าน Windows Explorer จึงใช้ได้สำหรับการดาวน์โหลดไฟล์ขนาดใหญ่ไม่กี่แห่งที่มีตำแหน่งที่คุณรู้จัก แต่การเบราส์หรือซิงค์อุปกรณ์ทั้งหมดด้วยวิธีนี้จะไม่รวดเร็ว ฉันซิงค์ข้อมูล 1.75GB ในประมาณ 6,000 ไฟล์และ 400 ไดเรกทอรีและใช้เวลา 10 ชั่วโมงนั่นคือประมาณ 50KB / s หรือ 10 ไฟล์ / dirs ต่อนาทีโดยเฉลี่ย

การใช้เซิร์ฟเวอร์ WebDAV ผ่านทางบรรทัดคำสั่งของ Windows

แม้จากบรรทัดคำสั่งแต่ละรายการไดเรกทอรีใช้เวลา 5-6 วินาทีเช่นเดียวกับการเข้าถึงไฟล์ใด ๆ การคัดลอกไฟล์ 42MB เดียวกันจากบรรทัดคำสั่งใช้เวลาประมาณ 20 วินาทีดังนั้นประมาณ 2.1MB / s

การใช้เซิร์ฟเวอร์ WebDAV ผ่านเว็บเบราว์เซอร์

ตัวเลือกที่เร็วที่สุดสำหรับ WebDAV คือการใช้เว็บเบราว์เซอร์ของคุณผ่าน URL ที่กำหนดโดยตรง การเปลี่ยนไดเรกทอรีใช้เวลานานกว่าหนึ่งวินาทีและการดาวน์โหลดไฟล์ 42MB เดียวกันจากเว็บเบราว์เซอร์ใช้เวลาประมาณ 12 วินาทีดังนั้นประมาณ 3.6MB / s

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

คำเตือน

  • โดยค่าเริ่มต้น Windows จะ จำกัด ขนาดของการดาวน์โหลด WebDAV เป็น 50000000 ไบต์ (47.6MB) ถึงแม้ว่าจะสามารถเปลี่ยนแปลงได้ผ่านทางแฮกรีจิสทรี ( FileSizeLimitInBytesในHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters) หากคุณรู้ว่าคุณกำลังทำอะไรอยู่

  • เข้าถึง WebDAV ไม่ปลอดภัย แม้ว่าคุณจะตั้งรหัสผ่านในการแชร์ WebDAV แต่การเชื่อมต่อยังhttpไม่httpsเป็นเช่นนั้นจึงไม่ได้เข้ารหัส ใช้ WebDAV บนเครือข่าย wifi ที่ปลอดภัยเท่านั้นและแน่นอนว่าจะไม่เปิดใช้งานเซิร์ฟเวอร์ WebDAV ในขณะที่คุณอยู่ในอินเทอร์เน็ตคาเฟ่หรือ wifi ที่ไม่ปลอดภัยอื่น ๆ


วิธีนี้ค่อนข้างเร็วบนอุปกรณ์ของฉัน ขอขอบคุณ!
กลุ่ม

ทดสอบกับ Samsung S10 + Windows 8.0 ทำงานได้ดี
Brethlosze

5

ปัญหาไม่ได้เป็นเซิร์ฟเวอร์ samba แต่ความจริงที่ว่า Windows สามารถเข้าถึง samba ที่ใช้ร่วมกันได้ที่พอร์ต 445 เท่านั้นและสำหรับ Android ที่ไม่ได้รูทแล้วแอปทั่วไปจะไม่สามารถฟังบนพอร์ต 445 ได้

แต่คุณสามารถเอาชนะสิ่งนี้ได้ด้วยการทำแผนที่พอร์ต TCP:

  1. ติดตั้งเซิร์ฟเวอร์แซมบ้าบน Android ของคุณและทำให้ฟังบนพอร์ตเช่น 7777
  2. ติดตั้งซอฟต์แวร์การส่งต่อพอร์ต TCP ที่ใดที่หนึ่ง (ฉันติดตั้งบน virtualPC)
  3. ตั้งค่าซอฟต์แวร์ portmapping เพื่อรับฟังการเชื่อมต่อบนพอร์ต 445 และส่งต่อการเชื่อมต่อไปยัง android ของคุณบนพอร์ต 7777
  4. ตอนนี้คุณสามารถเข้าถึงโฟลเดอร์ที่ใช้ร่วมกันบน virtualPC นี้และคุณจะได้รับข้อมูลจากเซิร์ฟเวอร์แซมบ้าที่ติดตั้งบน Android (ผ่านการแมปพอร์ต)

ฉันได้อธิบายรายละเอียดทุกขั้นตอนที่นี่ในบล็อกของฉันที่ http://techforpassion.blogspot.it/2013/12/android-how-to-share-folder-over-wifi.html

ฉันลองใช้เซิร์ฟเวอร์แซมบ้าที่แตกต่างกันและแอพฟรีเพียงตัวเดียวที่ทำงานในการกำหนดค่านี้เรียกว่าเซิร์ฟเวอร์แซมบ้า


ข้อเสนอที่น่าสนใจ แต่คุณไม่สามารถป้อนข้อมูลบางอย่าง\\androids.ip:7777ในแถบที่อยู่ของ explorer ได้หรือไม่
Tobias Kienzler

1
@tobias kienzler สำหรับความรู้ของฉันสิ่งนี้จะไม่ทำงาน
Max

2

หรือคุณสามารถเรียกใช้เซิร์ฟเวอร์ ftp ในโทรศัพท์ของคุณเพื่อเข้าถึงเนื้อหาของการ์ด SD ตรวจสอบSwiFTP


ฉันสอง SwiFTP คุณจะไม่สามารถนำไฟล์ใด ๆ ออกจากโทรศัพท์โดยไม่ต้องรูท แต่มันก็ใช้ได้ดีสำหรับการ์ด SD
เว็บ

2

ขณะนี้ฉันเสร็จสิ้นแอพ ( สำหรับอุปกรณ์ที่ไม่ได้รูท ) สำหรับการแชร์ไฟล์ในเครือข่ายท้องถิ่น บทเรียนของฉันได้เรียนรู้:

  • สามารถเรียกใช้เซิร์ฟเวอร์ SMB บน Android โดยไม่ต้องเข้าถึงรูท (บนพอร์ตที่ไม่มีสิทธิ์) Mac OS X เชื่อมต่อกับมันโดยไม่มีปัญหาใด ๆ (ถ้าคุณออกอากาศ ip และพอร์ตของคุณผ่าน Bonjour) แต่ Windows ไม่ ดังที่ได้กล่าวแล้วโดยผู้ใช้รายอื่น Windows ใช้พอร์ตพิเศษ "hardcoded" สำหรับการเข้าถึง SMB วิธีเดียวที่ฉันพบว่าเชื่อมต่อกับ Windows คือการสร้างอะแดปเตอร์เครือข่ายย้อนกลับดังที่อธิบายไว้ที่นี่ (ไม่ใช่จุดประสงค์เดียวกัน แต่เป็นแนวคิด) ในที่สุดผมคิดว่าวิธีที่ใช้งานที่เป็นมิตรใช้ WebDAV บน Windows แม้ว่า Windows จะไม่เป็นมิตรกับผู้ใช้เพราะคุณต้องป้อนไอพีด้วยมือของคุณและฉันไม่พบวิธีที่มันจะถูกค้นพบ
  • ในโลก Mac OS X โปรโตคอล SMB เป็นผู้ชนะที่ชัดเจน การแชร์ของคุณจะถูกค้นพบโดยอัตโนมัติโดย Bonjour และปรากฏอย่างน่าอัศจรรย์ใน Finder เป็นเรื่องแปลกที่การแบ่งปัน WebDAV และ FTP จะถูกเพิกเฉย (ไม่ใช่ตัวค้นหาที่ติดตั้งอัตโนมัติ) แม้ว่าBonjour จะได้รับการสนับสนุน ลูกค้าบุคคลที่สาม (เช่น Cyberduck) ไม่มีปัญหากับการค้นพบหุ้นเหล่านี้โดยอัตโนมัติ

1

ฉันอาจเข้าใจผิด แต่ดูเหมือนว่าคุณต้องการไคลเอนต์ SMB ไม่ใช่เซิร์ฟเวอร์ นอกจากนี้คุณไม่จำเป็นต้องเข้าถึงรูต ในการใช้ SMB เพื่อถ่ายโอนไฟล์ไปยังคอมพิวเตอร์ของคุณคุณสามารถใช้ASTRO File Managerกับaddon ของ SMBหรือมีFile Expertที่ว่างเช่นกัน

นอกจากนี้คุณยังสามารถใช้WebDAVแทน SMB กับ app เหมือนWebSharing

ในอดีตที่ผ่านมาฉันใช้แอพที่มีซอฟต์แวร์ไคลเอ็นต์บนคอมพิวเตอร์ทำให้ฉันสามารถถ่ายโอนไฟล์ผ่านตัวสำรวจไฟล์จากที่ใดก็ได้ผ่านทางเว็บ มันไม่ใช่แอป VNC เต็มรูปแบบ ฉันได้รับโทรศัพท์ใหม่และตอนนี้ชีวิตของฉันฉันไม่สามารถหาแอพได้


สวัสดีขอบคุณสำหรับคำตอบฉันต้องการเซิร์ฟเวอร์บนโทรศัพท์เพื่อให้พีซีของฉัน (Ubuntu) สามารถส่งไฟล์ใหม่ ๆ เมื่อฉันกลับถึงบ้านโดยที่ฉันไม่ต้องถอดโทรศัพท์ออกจากกระเป๋า ไม่ต้องการใช้ซอฟต์แวร์เพิ่มเติมบนพีซี แต่แน่นอนว่าเซิร์ฟเวอร์ FTP หรือ WebDAV บนโทรศัพท์จะตอบสนองความต้องการนั้นด้วยดังนั้นดูเหมือนว่า File Expert จะทำงานได้ ฉันกำลังติดตั้งตอนนี้จะรายงานกลับมาขอบคุณ
วันที่

อืมมดูเหมือนว่าเซิร์ฟเวอร์ FTP ไม่ทำงาน - ตัวช่วยสร้าง "เชื่อมต่อกับเซิร์ฟเวอร์" ของ Ubuntu บอกว่า "ปลายสายไม่คาดคิด" ต้องไปทำงานจะลองอีกครั้งในภายหลัง
วันที่

ไม่ทำงาน ... ความผิดของฉันในการรีบเร่ง ที่ควรจะทำงานอย่างขอบคุณขอบคุณ
วันที่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.