Najlepszy sposób na zamontowanie zdalnego folderu


40

Mam dwa RasberryPi z systemem debian wheezy i chciałbym zamontować folder z komputera A na komputerze B.

Jaki jest najlepszy (jak najefektywniejszy) sposób to zrobić?

Mogę to zrobić za pośrednictwem SMB, ale dotyczy to systemu Windows, myślę, że musi istnieć lepszy sposób udostępniania w systemie Linux.


Odpowiedzi:


31

Możesz użyć wielu rzeczy, w tym popularne opcje to:

  • NFS
  • Samba / CIFS
  • SSHFS

Według łatwości konfiguracji myślę, że należałoby je ułożyć w tej kolejności (góra: najłatwiej)

SSHFS

Za pomocą FUSE możesz montować zdalne systemy plików przez ssh. Nie będę opisywał, jak to wyjaśnił Cristopher. Pamiętaj tylko, że aby automatycznie zamontować plik, będzie on wymagał nieco więcej pracy .

Samba

Umożliwi to korzystanie z komputerów z systemem Windows i Unix w celu uzyskania dostępu do zdalnego folderu. Jeśli nie jest to dla ciebie wielka sprawa, prawdopodobnie nie skorzystasz z tego. Łatwo jest jednak automatycznie zamontować go podczas inicjalizacji (wystarczy wpisać odpowiednie wartości na /etc/fstab, w tym username=<your-samba-username>,password=<your-samba-password>w kolumnie opcji).

NFS

Pozwoli ci to uwierzytelnić tylko przez IP (bez nazwy użytkownika = szybciej, tylko do użytku w twojej wrogiej sieci LAN) lub za pośrednictwem biletów Kerberos (zbyt bolesne dla dwóch malin; ale przydatne w środowiskach korporacyjnych).

Ponieważ ma obsługę trybu jądra, będzie działał szybciej niż sshfs. Poza tym, ponieważ nie przeprowadzono szyfrowania , będzie on miał lepszą przepustowość, aw przypadku niewielkiego Raspberry ARM może to mieć znaczenie.

Poza tym konfiguracja nie jest tak bolesna, że ​​ufasz swojej sieci. Masz również obsługę automatyczną /etc/fstabi nie musisz umieszczać poufnych danych (takich jak nazwy użytkowników lub hasła), a jeśli masz synchronizowane nazwy użytkowników (takie same /etc/passwdi /etc/grouppliki), możesz użyć zwykłego zestawu narzędzi uprawnień POSIX ( chown, chgrpi chmod).


Używam mojego Pi jako serwera NFS z dyskami głównie z moimi filmami i innymi mediami (tj. Nie są to rzeczy krytyczne dla systemu, nie „/ home /” lub coś podobnego). NFS pozwala mi oglądać film bez konieczności kopiowania go na dysk lokalny, ale podczas zapisywania plików na dysku NFS wolę używać rsync. Dlatego zamontowałem dyski NFS tylko do odczytu i piszę rzeczy przez SSH (z rsync). To również powstrzymuje mnie przed przypadkowym rsynchronizowaniem na dysku zamontowanym w systemie plików NFS (co jest bardzo nieefektywne).
zrajm

@zrajm jak zamontować dyski na pi?
FutuToad,

arisu:/mnt/ytra /mnt/ytra nfs soft,ro,intr 0 2
zrajm

Samba może mylić niektóre aplikacje uniksowe, szczególnie w zakresie uprawnień lub stat()zwracanych danych, np. Rzeczy zależne od nlinkliczby, o której CIFS nie ma pojęcia. SSHFS Nie byłem pod wielkim wrażeniem, ponieważ uruchomił przełączniki kontekstowe na serwerze plików w górę i nie wspierał niezbędnego blokowania wymaganego przez programy wewnętrzne. Tak więc, NFS ...
thrig

38

SSHFS jest cudowny. Może montować zdalne katalogi w katalogu lokalnym za pomocą FUSE . Poniższe polecenia służą #do wskazania, że ​​polecenie zostało wykonane jako root, natomiast $oznacza wykonanie jako zwykły użytkownik. Ponieważ wymagane jest oprogramowanie FUSE, najpierw upewnij się, że jest ono dostępne i działa.

Jedno z poniższych poleceń lsmodi grepmoże ujawnić, czy oprogramowanie jest załadowane i gotowe do użycia. Wynik obu poleceń wskazuje, że fusejest dostępny.

# lsmod | grep fuse
$ grep -i fuse /lib/modules/$(uname -r)/modules.builtin

Jeśli żadna z komend nie przyniosła rezultatu, spróbuj załadować moduł jądra bez restartu za pomocą modprobei sprawdź ponownie.

# modprobe fuse
# lsmod fuse

Jeśli ładowanie modułu nie powiedzie się, zainstaluj oprogramowanie za pomocą apt-get.

# apt-get install fuse

Sprawdź ponownie po instalacji.

# modprobe fuse
# lsmod fuse

BEZPIECZNIK musi być zainstalowany i uruchomiony przed kontynuowaniem.


Sprawdź uprawnienia /dev/fuse. Uprawnienia powinny zapewniać zwykłemu użytkownikowi konto z dostępem do odczytu i zapisu. Pomiń tę część, jeśli ustaliłeś, że twoje zwykłe konto użytkownika ma już uprawnienia do odczytu i zapisu /dev/fuse.

# ls -l /dev/fuse

Wynik może być podobny do jednego z poniższych.

crw-rw-rw- 1 root root (all users can read/write)
crw------- 1 root fuse (only root can read/write)
crw-rw---- 1 root fuse (root and members of fuse group can read/write)

W 2013 roku mój Debian utworzył /dev/fusez 0600uprawnieniami, właściciela root, właściciela grupy fuse. Musiałem pozwolić grupie bezpieczników korzystać z urządzenia i dodać moje zwykłe konto użytkownika do grupy, jak pokazano poniżej.

# usermod -aG fuse $your_regular_user_account
# chmod 0660 /dev/fuse

Jeśli wymagane było członkostwo w nowej grupie, wyloguj się i zaloguj ponownie, aby zostać członkiem grupy.


Następnie zainstaluj sshpo obu stronach w następujący sposób.

# apt-get install ssh

Ta odpowiedź została napisana dla Debiana, ale na Ubuntu 18.x przynajmniej openssh-client, fusei kilka innych pakietów są częścią Ubuntu sshfsopakowaniu. sshfsOprogramowanie jest wymagane po stronie klienta, ale może być zainstalowany na obu stronach w razie potrzeby. Jedną z zależności pakietu jest fuse, ale instalator pomija oprogramowanie, które zostało już zainstalowane.

# Ubuntu 18.x: 
# apt-get install sshfs

Za pomocą fusei sshdostępny oraz z uprawnieniem do korzystania z urządzenia /dev/fuseutwórz punkt instalacji dla zdalnego systemu plików; i zamontuj ten zdalny system plików lokalnie w następujący sposób.

# mkdir /mnt/$directory_name
# chown $your_user:$group /mnt/$directory_name/
$ sshfs $remote_username@$remote_server_name: /mnt/$directory_name/

Aby zamontować katalog inny niż home, określ go po dwukropku.

$ sshfs $remote_username@$remote_server_name:/remote/directory /mnt/$directory_name

Aby odmontować, użyj fusermount.

fusermount -u /mnt/$directory_name

Jeśli masz komputer z systemem Windows, może on także używać SSHFS z win-sshfs . To oprogramowanie „zamapuje dysk” za pomocą SSHFS, dzięki czemu możesz mieć literę dysku Windows, która zawiera katalog zdalny.


1
Możesz znacznie poprawić szybkość działania SSHFS, korzystając z dodatkowych opcji. Zobacz ten artykuł, aby uzyskać więcej informacji i porównań prędkości z NFS: admin-magazine.com/HPC/Articles/Sharing-Data-with-SSHFS
blendenzo

Hej - Próbowałem użyć twoich instrukcji (dostosowując się do yum install fuse-sshfs.x86_64), ale kiedy modprobe fuseto zrobiłem, nie stworzyłem dla nich grupy bezpieczników. Więc kiedy to zrobiłem usermod -a -G fuse [your-user], zrozumiałem usermod: group 'fuse' does not exist. czy możesz pomóc z góry dziękuję
amfibia

lsmod | grep fusezwraca wynik i mam /dev/fuse, m, który jest własnością root. więc mówisz, że nic mi nie jest bez grupy?
amfibia

tak, dostajęcrw-rw-rw-. 1 root root 10, 229 Nov 21 15:32 /dev/fuse
amfibia

Po # apt-get install fuse-utils sshfs pojawia się komunikat „Nie można znaleźć pakietu fuse-utils”. Masz pomysł, dlaczego? (Ubuntu 18.04.01)
Kvothe

7

W Linuksie wybrałbyś NFS (zapoznaj się również z artykułem na archwiki na ten temat, który może zawierać również informacje dotyczące twojej dystrybucji). Ma bardziej zaawansowane funkcje niż samba. Jeśli potrzebujesz zablokować pliki (tzn. Równoczesny dostęp), powinieneś również zajrzeć do lockd, ponieważ nfs jest bezstanowy. Jest to jednak trudniejsze do skonfigurowania niż smb. Sugerowałbym wypróbowanie zarówno samby, jak i nfs, aby zobaczyć, który odpowiada Twoim potrzebom.


1

W przeszłości korzystałem zarówno z dysku sieciowego SFTP, jak i ExpanDrive i mogę powiedzieć, że sshfs przewyższa oba te elementy bez pytania.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.