Menggunakan server SMB tanpa akses root

18

Saya mencari cara untuk Pahlawan HTC saya (Android 2.1) sehingga saya dapat berbagi konten kartu SD dan memori telepon saya melalui jaringan WiFi seperti berbagi file Windows biasa. Saya ingin yang tidak mengharuskan saya untuk me-rooting ponsel saya, dan bersedia membayar untuk aplikasi yang tepat sehingga tidak harus gratis.

Saya sedang berpikir untuk menggunakan server SMB dan yang saya temukan sejauh ini adalah:

  1. SambaAndroid yang membutuhkan akses root.
  2. androidsmb yang merupakan "implementasi Java dari file jaringan SMB / CIFS dan server berbagi printer untuk perangkat Android" yang dihosting di Google Code yang tidak memiliki dokumentasi dan belum merilis file apa pun.

Apakah mungkin secara teknis untuk mengembangkan Server SMB di Android yang dapat diinstal tanpa akses root?

Hari
sumber
Saya telah menggunakan Wifi Explorer( appbrain.com/app/wifi-file-explorer/... ) beberapa kali dan berfungsi dengan baik, tidak perlu root. Tapi ini bukan SMB (dan mungkin juga bukan FTP).
Joe Casadonte

Jawaban:

12

Karena pertanyaan awal Anda masih belum dijawab dan saya juga bertanya-tanya, inilah jawabannya.

Jawaban singkat: Tidak, tanpa root tidak mungkin menjalankan server SMB menggunakan port default sehingga ditemukan oleh PC Windows.

Jawaban panjang: SMB berjalan pada port 137-139 (UDP dan TCP) menggunakan NetBIOS atau pada sistem yang lebih baru (dari Windows Vista dan seterusnya) langsung pada port TCP 445 di mana dalam kasus terakhir nama-nama komputer diselesaikan oleh LLMNR (Link-local Multicast Protokol Name Resolution) yang berjalan pada port UDP 5355. Mengapa ini penting? Aplikasi yang tidak berjalan sebagai root tidak dapat mengikat ke port yang tidak terjangkau (<1024). Dimungkinkan untuk menggunakan port alternatif untuk SMB tetapi Windows terprogram untuk hanya mendengarkan yang standar. Jadi saya kira jika Anda menggunakan Linux atau klien SMB terpisah untuk Windows yang memungkinkan untuk terhubung ke server dengan nomor port khusus itu mungkin. Tapi itu tidak benar-benar jalan lurus ke depan.

letmaik
sumber
Hebat jawaban yang sebenarnya setelah sekian lama. Terima kasih. Sekarang seandainya aku bisa mengingat mengapa aku membutuhkan ini ...;)
Hari
3
Yah, saya menginginkannya karena saya terlalu malas untuk mencolokkan USB untuk mengakses kartu SD: D
letmaik
Saya ingin tahu apakah Windows dapat mengatasi \\your.ip:port...
Tobias Kienzler
10

Meskipun tidak mungkin untuk menjalankan server SMB tanpa root atau menggunakan penerusan port , dimungkinkan untuk menjalankan server WebDAV tanpa root untuk efek yang sama.

Menyiapkan server Android WebDAV

Pada stok saya Nexus 7, saya menginstal WebDAV Server , membukanya, mengklik tombol start dan segera dapat melihat /storage/sdcardfolder saya di browser web saya di URL yang ditampilkan oleh aplikasi, yaituhttp://192.168.x.y:8080

Perhatikan bahwa dengan WebDAV, Anda juga memiliki opsi untuk memilih Root (/) atau DCIM serta SdCard sebagai root WebDAV .

Menggunakan server WebDAV melalui Windows Explorer

Saya kemudian dipetakan http://192.168.x.y:8080sebagai drive jaringan di Windows Explorer dan dapat mengakses isi drive penyimpanan saya, sama seperti jika saya terhubung melalui MTP, tetapi melalui huruf drive.

Sayangnya, solusi ini sangat lambat.

Setiap perubahan direktori membutuhkan waktu antara 6 dan 20 detik, seperti halnya mengakses sebagian besar file. Setelah file diakses, ia mentransfer pada kecepatan yang wajar (menyalin satu file 42MB di Windows Explorer membutuhkan waktu sekitar 60 detik, jadi 700KB / s).

Jadi WebDAV melalui Windows Explorer adalah OK untuk mengunduh beberapa file besar yang lokasinya Anda tahu, tetapi menelusuri atau menyinkronkan seluruh perangkat dengan cara ini tidak cepat. Saya menyinkronkan data 1,75GB di sekitar 6000 file dan 400 direktori dan butuh 10 jam, yaitu sekitar 50KB / dtk atau rata-rata 10 file / dirs per menit.

Menggunakan server WebDAV melalui baris perintah Windows

Bahkan dari baris perintah, setiap daftar direktori membutuhkan 5-6 detik, seperti halnya akses file apa pun. Menyalin file 42MB yang sama dari baris perintah memakan waktu sekitar 20 detik, jadi sekitar 2.1MB / s.

Menggunakan server WebDAV melalui browser web

Pilihan tercepat untuk WebDAV adalah menggunakan browser web Anda, langsung melalui URL yang diberikan. Mengubah direktori jarang membutuhkan waktu lebih dari satu detik dan mengunduh file 42MB yang sama dari browser web membutuhkan waktu sekitar 12 detik, jadi sekitar 3,6MB / s.

Kelemahan dari menggunakan browser web adalah bahwa ia hanya menampilkan tanggal (tanpa ukuran atau tipe) dan tidak membuat perbedaan antara file dan direktori jadi jika file tidak memiliki ekstensi (atau direktori tidak) maka mungkin tidak jelas jika mengklik tautan akan membawa Anda ke halaman web lain (untuk direktori) atau memulai unduhan (untuk file).

Peringatan

  • Secara default, Windows membatasi ukuran unduhan WebDAV hingga 50000000 byte (47,6MB), meskipun ini dapat diubah melalui peretasan registri ( FileSizeLimitInBytesdalam HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters) jika Anda tahu apa yang Anda lakukan.

  • Akses WebDAV tidak aman . Bahkan jika Anda menetapkan kata sandi pada berbagi WebDAV, koneksi masih httpbelum https, sehingga tidak dienkripsi. Hanya gunakan WebDAV pada jaringan wifi yang aman dan tentu saja tidak mengaktifkan server WebDAV saat Anda berada di warnet atau wifi tidak aman lainnya.

Mark Booth
sumber
Metode ini cukup cepat di perangkat saya. Terima kasih!
Cluster
Diuji pada Samsung S10 + Windows 8.0. Bekerja dengan baik.
Brethlosze
5

Masalahnya bukan server samba, tetapi fakta bahwa Windows dapat mengakses share samba hanya pada port 445, dan pada android yang tidak di-root, aplikasi normal tidak dapat mendengarkan pada port 445.

Tapi Anda bisa mengatasinya dengan beberapa pemetaan port TCP:

  1. Instal server samba di android Anda, dan buat itu mendengarkan di port seperti 7777
  2. Instal perangkat lunak penerusan port TCP di suatu tempat (saya menginstalnya pada virtualPC)
  3. Atur perangkat lunak portmapping untuk mendengarkan koneksi pada port 445, dan teruskan koneksi ke Android Anda pada port 7777
  4. Sekarang Anda dapat mengakses folder bersama di PC virtual ini, dan Anda akan mendapatkan data dari server samba yang diinstal di android (melalui portmap)

Saya telah menjelaskan semua langkah secara rinci di sini di blog saya http://techforpassion.blogspot.it/2013/12/android-how-to-share-folder-over-wifi.html

Saya sudah mencoba server samba yang berbeda, dan satu-satunya aplikasi gratis yang berfungsi dalam konfigurasi ini disebut Samba Server

Maks
sumber
Proposal yang menarik, tetapi tidak bisakah Anda memasukkan sesuatu seperti \\androids.ip:7777di bilah alamat penjelajah?
Tobias Kienzler
1
@tobias kienzler Sepengetahuan saya, ini tidak akan berhasil
Max
2

Atau, Anda dapat menjalankan server ftp di ponsel Anda untuk mendapatkan akses ke konten kartu SD Anda. Lihat SwiFTP .

Bryan Denny
sumber
Saya SwiFTP kedua. Anda tidak akan dapat mengambil file apa pun dari telepon tanpa menggunakannya untuk melakukan root, tetapi harus berfungsi dengan baik untuk kartu SD.
Webs
2

Saat ini saya menyelesaikan aplikasi ( untuk perangkat yang tidak di-rooting ) untuk berbagi file di jaringan lokal. Pelajaran yang saya dapat:

  • Dimungkinkan untuk menjalankan Server SMB di Android tanpa akses root (pada port yang tidak memiliki hak istimewa). Mac OS X terhubung tanpa masalah (jika Anda menyiarkan ip dan port Anda melalui Bonjour). Tapi Windows tidak. Seperti yang sudah dikatakan oleh pengguna lain, Windows menggunakan port khusus "hardcoded" untuk akses SMB. Satu-satunya cara yang saya temukan untuk menghubungkan dengan Windows adalah membuat adaptor jaringan loopback seperti yang dijelaskan di sini (bukan tujuan yang sama, tetapi gagasan). Akhirnya saya berpikir, bahwa cara yang paling ramah pengguna adalah menggunakan WebDAV pada Windows . Bahkan jika Windows melakukannya tidak ramah pengguna, karena Anda harus memasukkan ip Anda dengan tangan dan saya tidak menemukan cara bagaimana hal itu dapat ditemukan (tolong beri saya satu baris, jika Anda tahu satu).
  • Di dunia Mac OS X protokol SMB adalah pemenang yang jelas . Bagian Anda akan ditemukan secara otomatis oleh Bonjour dan secara ajaib muncul di Finder. Sungguh aneh, bahwa saham WebDAV dan FTP diabaikan (tidak dipasang secara otomatis oleh Finder), meskipun didukung oleh Bonjour. Klien pihak ketiga (mis. Cyberduck) tidak memiliki masalah dengan penemuan otomatis saham ini.
artkoenig
sumber
1

Saya mungkin salah paham tetapi sepertinya Anda membutuhkan klien SMB, bukan server. Juga, Anda tidak perlu akses root. Untuk menggunakan SMB untuk mengirim file ke komputer Anda, Anda dapat menggunakan ASTRO File Manager dengan addon SMB , atau ada File Expert yang juga gratis.

Anda juga bisa menggunakan WebDAV daripada SMB dengan aplikasi seperti WebSharing .

Di masa lalu saya menggunakan aplikasi yang dengan perangkat lunak klien di komputer saya memungkinkan saya untuk mentransfer file melalui file explorer dari mana saja melalui web. Itu bukan aplikasi VNC lengkap. Saya mendapat telepon baru dan sekarang untuk kehidupan saya, saya tidak dapat menemukan aplikasi.

Mat
sumber
Hai terima kasih atas jawabannya, saya benar-benar menginginkan server di telepon sehingga PC (Ubuntu) saya dapat mendorong file baru ke dalamnya ketika saya pulang tanpa saya harus mengeluarkan telepon dari saku saya. Memilih untuk tidak memerlukan perangkat lunak tambahan pada PC, tetapi tentu saja server FTP atau WebDAV pada ponsel juga akan memenuhi persyaratan itu, sehingga sepertinya Pakar File akan melakukan pekerjaan itu. Saya menginstal sekarang akan melaporkan kembali terima kasih
Hari
Hmmm tampaknya server FTP tidak berfungsi - wizard "Sambungkan ke Server" Ubuntu mengatakan "ujung aliran yang tidak terduga". Harus pergi kerja, nanti akan coba lagi ta.
Hari
Tidak itu berhasil ... salahku karena bergegas. Itu harus melakukan pekerjaan dengan baik, terima kasih.
Hari