Bagaimana cara berbagi folder dengan mesin Linux lain di jaringan rumah yang sama?

44

Saya mencoba berbagi folder di satu mesin Ubuntu dengan mesin Ubuntu lain di jaringan rumah yang sama. Ketika saya mengklik kanan pada folder dan memilih Opsi Berbagi, itu memberitahu saya saya perlu menginstal layanan berbagi jaringan Windows untuk berbagi folder. Apa hubungannya Windows dengan ini? Saya tidak mencoba berbagi dengan mesin Windows ...

EmmyS
sumber

Jawaban:

22

Apa hubungannya Windows dengan ini? Saya tidak mencoba berbagi dengan mesin Windows ...

Anda benar, ini bisa membingungkan. Jadi izinkan saya mencoba menjelaskan persyaratan pertama-tama:

Cara Windows berbagi file dan printer disebut SMB . Orang-orang dari proyek SAMBA telah menerapkan semua protokol dan spesifikasi Microsoft untuk Linux. Oleh karena itu Ubuntu mendukung jenis berbagi file yang sama seperti Windows, yang disebut Samba.

  • Anda dapat menggunakan SAMBA untuk berbagi file antar mesin Linux. Bahkan, Anda mungkin lebih suka kalau-kalau Anda punya, misalnya, punya teman lebih dengan komputer Windows mereka.

  • Atau, Anda dapat menggunakan Cara Linux berbagi file, yaitu NFS (Network File System) - Jawaban untuk pertanyaan sebelumnya ini menjelaskan cara melakukannya. (tapi ini agak teknis)

Jadi, ketika dialog Opsi Berbagi meminta Anda untuk menginstal paket, Anda sebenarnya tidak menginstal perangkat lunak Microsoft apa pun atau semacamnya. Silakan dan lakukan, itu sangat aman.

Tambahan:

Anda dapat mencoba mengaktifkan berbagi sebelum Anda mengikuti instruksi Salih Emin; jika tidak berhasil, Anda akan mendapatkan peringatan sederhana, maka Anda dapat melakukan langkah-langkah yang dijelaskan oleh Shalih jika diperlukan. Saya telah mencobanya pada sistem yang baru diinstal dan terkini, dan saya memang perlu melakukan ini.

Stefano Palazzo
sumber
1
Terima kasih untuk penjelasannya. Lucu bahwa saya mencoba untuk menjauh dari Microsoft, dan ternyata Linux menggunakan karya mereka. Ugh.
EmmyS
4
Nah, orang-orang samba telah mengimplementasikan protokol Microsoft jauh lebih baik daripada Microsoft sendiri. Beberapa hiburan di sana :-)
Stefano Palazzo
8

Saat ini, ada bug kecil di Lucid yang terdaftar di Launchpad: bug # 536766 . Bug ini tidak meminta pengguna untuk menginstal paket yang diperlukan untuk menyelesaikan pengaturan berbagi file. Sampai itu ditangani, berikut adalah solusi cepat.

Anda perlu menginstal libapache2-mod-dnssd dan restart. Klik tautan ini untuk menginstalnya, atau temukan libapache2-mod-dnssd di Pusat Perangkat Lunak.

Setelah Anda menginstalnya, buka Sistem → Preferensi → Berbagi file pribadi , dan centang kotak 'Bagikan file publik di jaringan'.

teks alternatif

Setelah semuanya selesai, Anda harus dapat melihat semua komputer lain di jaringan Anda yang memungkinkan berbagi file publik dalam folder Publik. Cukup klik Places → Jaringan , dan di sana Anda akan melihat semua komputer yang tersedia dan folder Publiknya yang dibagikan.

Mengklik dua kali pada ikon server akan memasang folder publik yang relevan di desktop Anda.

Melalui tautan teks

Salih Emin
sumber
Apakah paket-paket itu terkait dengan server web apache? Saya sudah menginstal apache sebagai bagian dari tumpukan LAMP dan tidak ingin memecahkannya.
EmmyS
1
temukan! (Saya sudah mengedit jawaban dengan cara ini, paket ini akan menginstal apache2.2-bin sebagai ketergantungan, sepertinya lebih mudah dengan cara ini)
Stefano Palazzo
1
@EmmyS, paket tidak akan merusak instalasi apache Anda. Saya menjalankannya dan lebih tanpa masalah.
RolandiXor
Saya menemukan tautan ini bermanfaat dalam berbagi direktori: itsfoss.com/share-folders-local-network-ubuntu-windows
MrMas
5

Anda cukup menjalankan server simpleHTTP di mesin linux dan mengakses yang sama di mesin lain.

Langkah :

  1. pertama mulai terminal dari folder yang akan dibagikan.
  2. berjalan di terminal - python -m SimpleHTTPServer
  3. periksa ip Anda menggunakan ifconfig.
  4. masukkan di browser dari mesin lain alamat ip: 8000 (misalnya: jika ip Anda 127.3.4.123 maka di browser Anda ketik 127.3.4.123:8000)

Anda mendapatkan file yang diperlukan dalam folder untuk diunduh.

John
sumber
4
Unduh! = Bagikan.
EmmyS
Bagi saya itu adalah jawaban yang bagus, meskipun untuk Python3python3 -m http.server
VanDavv
2

Saya percaya bahwa paket SAMBA terdaftar di bawah, atau setidaknya bagian dari deskripsi mereka. Sebagai alternatif, Anda dapat mencoba Preferensi-> Berbagi File yang saya yakin menggunakan mekanisme yang berbeda. Samba adalah hal yang praktis untuk diinstal.

Nerdfest
sumber
Saya mendapat kesan (keliru, tampaknya) bahwa Samba memungkinkan berbagi antara Linux dan Windows. Saya tidak ingin berbagi dengan Windows, hanya dengan mesin Linux lain.
EmmyS
Tidak, kamu benar. Kedua mesin harus memiliki samba yang terinstal tentunya.
Stefano Palazzo
Kedua mesin harus menggunakan protokol SMB. Windows melakukan ini dengan satu cara. Mesin Linux melakukannya dengan samba.
landak gila
2

Anda dapat menginstal "qweborf". Ini akan berbagi direktori melalui HTTP dan host lain akan dapat mengakses dengan browser.

Itu juga dapat mengaktifkan webdav dan memungkinkan direktori untuk dipasang sebagai membaca / menulis sistem file (diuji dengan davfs2, KDE, Gnome2, OsX).

LtWorf
sumber
2

Jika Anda ingin integrasi tanpa batas di Ubuntu, dan Anda tidak tertarik dengan kompatibilitas Windows, SSH adalah huckleberry Anda.

Lihat Bagaimana saya bisa berbagi file antara dua mesin Linux melalui LAN?

Anda mungkin perlu menginstal server SSH dengan:

sudo apt-get install openssh-server

Dari aplikasi manajer file pada klien Anda, Anda bisa masuk ke server Anda dengan:

sftp://servername.local

Untuk mengakses file dari terminal atau secara terprogram, gunakan sshfsuntuk membuat titik mount di sistem file klien.

bangsawan
sumber
Cara terprogram lain untuk menyalin file melalui SSH termasuk scp, dan (bahkan lebih baik) rsync.
nobar
2

Untuk jaringan hanya Linux saya menemukan SSHFS sebagai yang asli, stabil dan sangat cepat. Saya memiliki dua mesin Xubuntu (18,04) berbagi / folder rumah melalui SSH.

Berikut ini cara mengatur sshfs ini dan secara otomatis menyambung kembali setelah reboot menggunakan fstab tanpa harus memberikan kata sandi. Terima kasih banyak kepada pengguna serverfault kubanczyk untuk cara menghubungkan kembali setelah penangguhan / resume jarak jauh.

Saya akan menggunakan "Mesin lokal - surfbox" untuk komputer yang Anda sambungkan, dan "Mesin jarak jauh - devbox" untuk komputer yang Anda sambungkan.

Ganti "remoteuser" di bawah ini dengan nama pengguna yang Anda masuk dengan di mesin Remote, dan "pengguna lokal" dengan nama pengguna yang Anda masuk dengan di mesin lokal. Untuk memverifikasi nama pengguna ketikkan echo $USERterminal pada mesin jarak jauh & lokal.

Juga, periksa UserID dan GroupID Anda, keduanya harus 1000.

GroupID: id -g localuser UserID:id -u localuser

1. Dapatkan alamat IP dari Mesin Lokal & Jarak Jauh Anda.

hostname -I

Saya akan menggunakan 192.168.1.150 untuk Mesin Lokal ('surfbox') dan 192.168.1.151 untuk Mesin Jarak Jauh ('devbox')

2. Instal paket pada Mesin Lokal dan Remote

sudo apt install sshfs fuse ssh

3. Buat sekering grup dan tambahkan pengguna lokal ke dalamnya

Membuat grup: sudo groupadd fuse

Tambahkan pengguna lokal ke grup: sudo usermod -a -G fuse $user

4. Aktifkan "allow_other" dalam konfigurasi sekering

Kami akan membutuhkan opsi ini saat memasang di fstab

Edit /etc/fuse.confdengan editor baris perintah Anda. Hapus tagar sebelum user_allow_otherdan simpan.

5. Hasilkan kunci SSH pada Mesin Lokal

Jangan berikan kata sandi saat diminta . Cukup tekan Enter untuk membiarkannya kosong.

ssh-keygen -t rsa -C [email protected]

Kunci disimpan di folder home direktori / .ssh mesin lokal

6. Transfer kunci SSH publik mesin lokal Anda ke mesin jarak jauh

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Anda akan dimintai kata sandi untuk pengguna Remote di mesin Remote. Kunci publik mesin lokal sekarang ditambahkan ke file ~ / .ssh / otor_keys pada mesin Remote.

7. Buat direktori pada folder mesin / mnt lokal di mana Anda akan me-mount folder mesin / home Remote.

Pilih nama apa pun yang masuk akal untuk mesin Remote Anda.

sudo mkdir /mnt/devboxhome

8. Pasang direktori Remote mesin / rumah dari terminal

Sintaks untuk sshfs adalah

sshfs [user@]host:[directory] mountpoint [options]

kita gunakan

sudo sshfs [remoteuser]@192.168.1.151:/home/[remoteuser] /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/[localuser]/.ssh/id_rsa

contoh: dengan asumsi "steve" adalah nama pengguna pada mesin Lokal dan Remote

sudo sshfs [email protected]:/home/steve /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/steve/.ssh/id_rsa

Karena Anda telah mentransfer kunci RSA publik ke mesin Jarak Jauh, Anda seharusnya tidak dimintai kata sandi pengguna jarak jauh.

Anda akan mendapat peringatan bahwa mesin tidak dipercaya dan diminta jika harus ditambahkan. Tambahkan mesin Remote sebagai tepercaya.

9. Verifikasi: Jelajahi direktori Remote Machine / home

Di terminal pada mesin lokal Anda sekarang dapat daftar Remote mesin / direktori home di bawah / mnt / devboxhome

cd /mnt/devboxhome ls

atau gunakan Nautilus untuk menelusuri direktori. Bagus.

10. Aktifkan koneksi ulang setelah reboot

Kami akan menambahkan entri di / etc / fstab untuk mewujudkannya. Anda akan memerlukan userid och groupid mesin Lokal Anda - lihat intro jika Anda melewatkan ini. Edit / etc / fstab dengan editor baris perintah Anda dan tambahkan dua baris ini di akhir / etc / fstab

# Mount devbox at boot [email protected]:/home/[remoteuser]/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/[localuser]/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0

  • delay_connect membuat kernel menunggu sampai jaringan aktif sampai mencoba memasang direktori pada mesin Remote.
  • Karena kita menjalankan sebagai root selama boot, kita harus menentukan keyfile yang disimpan di direktori home pengguna lokal.
  • allow_other - pengguna selain yang melakukan pemasangan aktual dapat mengakses sistem file yang dipasang.
  • idmap = pengguna - hanya menerjemahkan UID untuk menghubungkan pengguna
  • sambungkan kembali, ServersLiveInterval, ServerAliveCountMax - ssh mengirim ping yang tetap hidup. Jika ServerAliveCountMaxping berturut-turut gagal, sambungkan kembali.

Seorang pengguna yang masuk sebagai steve pada mesin Lokal dan Remote akan memiliki:

[email protected]:/home/steve/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/steve/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0

PENTING : garis miring setelah direktori jarak jauh: [email protected]: / home / steve /

simpan / etc / fstab dan ....

11. Reboot

Anda sekarang seharusnya dapat mengakses direktori mesin / home Remote di mesin lokal / mnt / devboxhome Di Nautilus Anda dapat menyeret folder ini ke bilah Places

12. Ulangi

Pergi melalui langkah-langkah yang sama lagi pada mesin Remote untuk membuat direktori / home mesin lokal dibagi.

zx81roadkill
sumber
Jawaban bagus. Saya tidak sadar orang bisa me-mount sistem file sshfs di fstab, terima kasih untuk itu.
Marmer Organik
0

Cara saya berbagi file:

sudo npm install -g http-server

Buka folder yang ingin Anda bagikan, buka terminal dan jalankan perintah ini:

http-server -o 

Anda dapat mengakses folder itu di semua mesin di jaringan yang sama pada alamat IP yang disebutkan oleh output dari perintah itu.

rehman_00001
sumber
0

zx81roadkill benar, gunakan "sshfs". Samba adalah omong kosong, NFS adalah sampah. Sshfs sepenuhnya dapat digunakan dari komputer saya di sini di California, ke komputer di Argentina. Ini sepenuhnya aman, sama cepatnya dengan yang lain (saya punya jalur gibabit).

Sshfs relatif pendatang baru dibandingkan dengan Samba dan NFS, tetapi jauh lebih baik daripada Samba. Berikut ini adalah contoh menjalankannya (dengan asumsi Anda telah menginstal semua paket)

# mount "username"'s home directory on "machine"
  mkdir -p /tmp/my_mount ; sshfs username@machine: /tmp/my_mount
# mount the root directory on "machine" (note: if "username" on "machine"
# can't write to the file, neither will you.  You have "username"'s privs
  mkdir -p /tmp/my_mount ; sshfs username@machine:/ /tmp/my_mount
# mount the directory "Videos" on "username"'s account on "machine"
  mkdir -p /tmp/my_mount ; sshfs username@machine:Videos /tmp/my_mount

Setelah Anda memasukkan kata sandi, / tmp / my_mount akan berisi semua file "nama pengguna" pada "mesin". Jangan repot-repot bermain-main dengan Samba atau NFS. Mereka hanya rasa sakit yang tidak berguna di pantat untuk mengkonfigurasi, atau setup.

Untuk melepas:

fusermount -u /tmp/my_mount

dan jika itu gagal (untuk alasan apa pun):

umount -f /tmp/my_mount

Semua data yang dikirim melalui mount point dienkripsi. Mengapa ini bukan cara standar, sepenuhnya diterima, melakukan mount ke mesin jarak jauh adalah misteri bagi saya. Ini jauh lebih unggul daripada metode lain dalam hal kesederhanaan.

Jika Anda membutuhkan kecepatan mentah, mungkin Samba sampah yang menggembung itu akan melakukannya, atau NFS. Saya tidak tahu, 100 MB / s + cukup baik untuk saya.

Jiminy Idiot
sumber