Làm cách nào để chia sẻ một thư mục với một máy Linux khác trên cùng một mạng gia đình?


44

Tôi đang cố gắng chia sẻ một thư mục trên một máy Ubuntu với một máy Ubuntu khác trên cùng một mạng gia đình. Khi tôi nhấp chuột phải vào thư mục và chọn Tùy chọn chia sẻ, nó sẽ cho tôi biết tôi cần cài đặt dịch vụ chia sẻ mạng Windows để chia sẻ thư mục. Windows phải làm gì với điều này? Tôi không cố gắng chia sẻ với máy Windows ...

Câu trả lời:


22

Windows phải làm gì với điều này? Tôi không cố gắng chia sẻ với máy Windows ...

Bạn nói đúng, điều này có thể gây nhầm lẫn. Vì vậy, hãy để tôi cố gắng làm rõ các điều khoản trước hết:

Cách Windows chia sẻ tệp và máy in được gọi là SMB . Những người trong dự án SAMBA đã triển khai tất cả các giao thức và thông số kỹ thuật của Microsoft cho Linux. Do đó, Ubuntu hỗ trợ chia sẻ tệp giống như Windows, được gọi là Samba.

  • Bạn có thể sử dụng SAMBA để chia sẻ tệp giữa các máy Linux. Trong thực tế, bạn có thể thích nó trong trường hợp bạn có, ví dụ, có một người bạn hơn với máy tính Windows của họ.

  • Ngoài ra, bạn có thể sử dụng Cách chia sẻ tệp của Linux , đó là NFS (Hệ thống tệp mạng) - Câu trả lời cho câu hỏi trước đó giải thích cách thực hiện. (nhưng nó khá kỹ thuật)

Vì vậy, khi hội thoại Tùy chọn chia sẻ yêu cầu bạn cài đặt các gói, bạn không thực sự cài đặt bất kỳ phần mềm nào của Microsoft hoặc bất cứ thứ gì tương tự. Hãy tiếp tục và làm điều đó, nó hoàn toàn an toàn.

Phụ lục:

Bạn có thể cố gắng chỉ bật tính năng chia sẻ trước khi làm theo hướng dẫn của Salih Emin; nếu nó không hoạt động, bạn sẽ nhận được một cảnh báo đơn giản, sau đó bạn có thể thực hiện các bước mà Salih mô tả nếu cần. Tôi đã thử nó trên một hệ thống mới được cài đặt và cập nhật, và tôi thực sự cần phải làm điều này.


1
Cảm ơn đã giải thích. Thật buồn cười là tôi đang cố gắng thoát khỏi Microsoft, và hóa ra ngay cả Linux cũng sử dụng các tác phẩm của họ. Ừ
EmmyS

4
Chà, người samba đã thực hiện các giao thức của Microsoft tốt hơn nhiều so với chính Microsoft. Một số lời an ủi ở đó :-)
Stefano Palazzo

8

Hiện tại, có một lỗi nhỏ trong Lucid được liệt kê trong Launchpad: lỗi # 536766 . Lỗi này không nhắc người dùng cài đặt các gói cần thiết cần thiết để hoàn tất thiết lập chia sẻ tệp. Cho đến khi được giải quyết, đây là một cách giải quyết nhanh chóng.

Bạn cần cài đặt libapache2-mod-dnssd và khởi động lại. Nhấp vào liên kết này để cài đặt nó hoặc tìm libapache2-mod-dnssd trong Trung tâm phần mềm.

Khi bạn đã cài đặt xong, hãy truy cập Hệ thống → Tùy chọn → Chia sẻ tệp cá nhân và chọn hộp 'Chia sẻ tệp công khai trên mạng'.

văn bản thay thế

Khi đã xong, bạn sẽ có thể xem tất cả các máy tính khác trên mạng đã cho phép chia sẻ tệp công khai trong thư mục Công cộng. Chỉ cần nhấp vào Địa điểm → Mạng và ở đó bạn sẽ thấy tất cả các máy tính có sẵn và các thư mục Công cộng được chia sẻ của chúng.

Nhấp đúp vào biểu tượng máy chủ sẽ gắn thư mục chung có liên quan trên màn hình của bạn.

Qua văn bản liên kết


Những gói đó có liên quan đến máy chủ web apache không? Tôi đã cài đặt apache như một phần của ngăn xếp LAMP và không muốn phá vỡ nó.
EmmyS

1
tìm tuyệt vời (Tôi đã chỉnh sửa câu trả lời bằng cách này, gói này sẽ cài đặt apache2.2-bin như một phần phụ thuộc, có vẻ dễ dàng hơn theo cách này)
Stefano Palazzo

1
@EmmyS, các gói sẽ không phá vỡ cài đặt apache của bạn. Tôi đang chạy những thứ đó và nhiều hơn nữa không có vấn đề.
RolandiXor

Tôi thấy liên kết này hữu ích trong việc thực sự chia sẻ một thư mục: Itsfoss.com/share- Folders
local

5

Bạn có thể chỉ cần chạy một máy chủ SimpleHTTP trong máy linux và truy cập tương tự trên máy kia.

Các bước:

  1. đầu tiên bắt đầu thiết bị đầu cuối từ thư mục sẽ được chia sẻ.
  2. chạy trong thiết bị đầu cuối - python -m SimpleHTTPServer
  3. kiểm tra ip của bạn bằng cách sử dụng ifconfig.
  4. nhập vào trình duyệt của máy khác địa chỉ ip: 8000 (ví dụ: nếu ip của bạn là 127.3.4.123 thì trong trình duyệt bạn gõ 127.3.4.123:8000)

Bạn nhận được các tập tin cần thiết trong thư mục để tải về.


4
Tải về! = Chia sẻ.
EmmyS

Đối với tôi đó là một câu trả lời tuyệt vời, mặc dù đối với Python3, đó làpython3 -m http.server
VanDavv

2

Tôi tin rằng đó là những gì gói SAMBA được liệt kê bên dưới, hoặc đó là phần ít nhất trong mô tả của họ. Để thay thế, bạn có thể thử Tùy chọn-> Chia sẻ tệp mà tôi tin rằng sử dụng một cơ chế khác. Samba là một thứ tiện dụng để cài đặt mặc dù.


Tôi đã có ấn tượng (sai, rõ ràng) rằng Samba cho phép chia sẻ giữa Linux và Windows. Tôi không muốn chia sẻ với Windows, chỉ với một máy Linux khác.
EmmyS

Không, bạn đã đúng. Tất cả các máy phải được cài đặt samba tất nhiên.
Stefano Palazzo

Cả hai máy đều cần sử dụng giao thức SMB. Windows thực hiện theo cách này. Máy Linux làm điều đó với samba.
con nhím mất trí nhớ

2

Bạn có thể cài đặt "qweborf". Nó sẽ chia sẻ thư mục qua HTTP và các máy chủ khác sẽ có thể truy cập bằng trình duyệt.

Nó cũng có thể kích hoạt webdav và cho phép thư mục được gắn kết là đọc / ghi một hệ thống tập tin (được thử nghiệm với davfs2, KDE, Gnome2, OsX).


2

Nếu bạn muốn tích hợp liền mạch trong Ubuntu và bạn không quan tâm đến khả năng tương thích Windows, SSH là huckleberry của bạn.

Xem Làm cách nào tôi có thể chia sẻ tệp giữa hai máy Linux qua mạng LAN?

Bạn có thể cần cài đặt máy chủ SSH với:

sudo apt-get install openssh-server

Từ ứng dụng quản lý tệp trên máy khách của bạn, bạn có thể truy cập máy chủ của mình bằng:

sftp://servername.local

Để truy cập các tệp từ thiết bị đầu cuối hoặc lập trình, sử dụng sshfsđể tạo điểm gắn kết trong hệ thống tệp của máy khách.


Các cách lập trình khác để sao chép tệp qua SSH bao gồm scpvà (thậm chí tốt hơn) rsync.
tộc

2

Đối với mạng chỉ dành cho Linux, tôi thấy SSHFS là bản địa, ổn định và cực kỳ nhanh. Tôi có hai thư mục chia sẻ / máy Xubfox (18.04) qua SSH.

Dưới đây là cách thiết lập sshfs này và tự động kết nối lại sau khi khởi động lại bằng fstab mà không phải cung cấp mật khẩu. Xin chân thành cảm ơn người dùng serverfault kubanchot vì cách kết nối lại sau khi tạm dừng / tiếp tục từ xa.

Tôi sẽ sử dụng "Máy cục bộ - hộp lướt" cho máy tính bạn đang kết nối và "Máy từ xa - devbox" cho máy tính bạn đang kết nối.

Thay thế "remoteuser" bên dưới bằng tên người dùng bạn đăng nhập bằng Remote machine và "localuser" bằng tên người dùng bạn đăng nhập bằng máy Local. Để xác minh tên người dùng nhập echo $USERvào thiết bị đầu cuối trên máy từ xa & cục bộ.

Ngoài ra, hãy kiểm tra userID och groupID của bạn, cả hai nên là 1000.

GroupID: id -g localuser ID người dùng:id -u localuser

1. Nhận địa chỉ IP của Máy cục bộ & Từ xa.

hostname -I

Tôi sẽ sử dụng 192.168.1.150 cho Máy cục bộ ('hộp lướt') và 192.168.1.151 cho Máy từ xa ('devbox')

2. Cài đặt gói trên Máy cục bộ và Từ xa

sudo apt install sshfs fuse ssh

3. Tạo một cầu chì nhóm và thêm localuser vào nó

Tạo nhóm: sudo groupadd fuse

Thêm người dùng cục bộ vào nhóm: sudo usermod -a -G fuse $user

4. Kích hoạt "allow_other" trong cấu hình cầu chì

Chúng tôi sẽ cần tùy chọn này khi gắn trong fstab

Chỉnh sửa /etc/fuse.confvới trình soạn thảo dòng lệnh của bạn. Xóa hashtag trước user_allow_othervà lưu lại.

5. Tạo khóa SSH trên máy cục bộ

Không cung cấp mật khẩu khi được nhắc . Chỉ cần nhấn Enter để để trống.

ssh-keygen -t rsa -C youremail@example.com

Các khóa được lưu trong thư mục /.ssh của máy cục bộ

6. Chuyển khóa SSH công khai của máy cục bộ sang máy Remote

ssh-copy-id -i ~/.ssh/id_rsa.pub remoteuser@192.168.1.151

Bạn sẽ được nhắc nhập mật khẩu cho người dùng Remote trên máy Remote. Khóa công khai của máy cục bộ hiện được thêm vào tệp ~ / .ssh / ủy quyền_key trên máy Remote.

7. Tạo một thư mục trên thư mục Local machine / mnt nơi bạn sẽ gắn thư mục Remote machine / home.

Chọn bất kỳ tên nào có ý nghĩa cho máy Remote của bạn.

sudo mkdir /mnt/devboxhome

8. Gắn thư mục máy / nhà từ xa từ thiết bị đầu cuối

Cú pháp cho sshfs là

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

chúng tôi sử dụng

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

ví dụ: giả sử "steve" là tên người dùng trên cả máy Local và Remote

sudo sshfs steve@192.168.1.151:/home/steve /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/steve/.ssh/id_rsa

Vì bạn đã chuyển khóa RSA công khai sang Máy từ xa, bạn không nên được nhắc nhập mật khẩu từ xa.

Bạn sẽ nhận được một cảnh báo rằng máy không đáng tin cậy và được nhắc nếu cần thêm. Thêm máy Remote là đáng tin cậy.

9. Xác minh: Duyệt từ xa Máy / thư mục nhà

Trong thiết bị đầu cuối trên Máy cục bộ, giờ đây bạn có thể liệt kê thư mục Máy / nhà từ xa trong / mnt / devboxhome

cd /mnt/devboxhome ls

hoặc sử dụng Nautilus để duyệt thư mục. Tuyệt quá.

10. Kích hoạt kết nối lại sau khi khởi động lại

Chúng tôi sẽ thêm một mục trong / etc / fstab để thực hiện điều này. Bạn sẽ cần máy Localid của bạn userid och groupid - xem phần giới thiệu nếu bạn bỏ lỡ điều này. Chỉnh sửa / etc / fstab bằng trình chỉnh sửa dòng lệnh của bạn và thêm hai dòng này vào cuối / etc / fstab

# Mount devbox at boot remoteuser@192.168.1.151:/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 làm cho kernel chờ cho đến khi mạng hoạt động cho đến khi nó cố gắn kết thư mục trên máy Remote.
  • Vì chúng tôi đang chạy bằng root trong khi khởi động, chúng tôi phải chỉ định keyfile được lưu trong thư mục chính của localuser.
  • allow_other - người dùng không phải là người thực hiện việc gắn thực tế có thể truy cập hệ thống tệp được gắn.
  • idmap = user - chỉ dịch UID của người dùng kết nối
  • kết nối lại, ServersLiveInterval, ServerAliveCountMax - ssh gửi ping giữ nguyên. Nếu ServerAliveCountMaxping liên tiếp thất bại, kết nối lại.

Một người dùng đăng nhập như steve trên máy Local và Remote sẽ có:

steve@192.168.1.151:/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

QUAN TRỌNG : một dấu gạch chéo sau thư mục từ xa: steve@192.168.1.151: / home / steve /

lưu / etc / fstab và ....

11. Khởi động lại

Bây giờ bạn có thể truy cập thư mục Máy / nhà từ xa trong Máy cục bộ / mnt / devboxhome Trong Nautilus, bạn có thể kéo thư mục này vào thanh Địa điểm

12. Lặp lại

Trải qua các bước tương tự một lần nữa trên máy Remote để làm cho thư mục / home của máy Local được chia sẻ.


Câu trả lời tốt đẹp. Tôi không biết ai có thể gắn hệ thống tập tin sshfs trong fstab, cảm ơn vì điều đó.
Đá cẩm thạch hữu cơ

0

Cách chia sẻ tập tin của tôi:

sudo npm install -g http-server

Chuyển đến thư mục bạn muốn chia sẻ, mở terminal và chạy lệnh này:

http-server -o 

Bạn sẽ có thể truy cập thư mục đó trong tất cả các máy trong cùng một mạng trên địa chỉ IP được đề cập bởi đầu ra của lệnh đó.


0

zx81roadkill là đúng, sử dụng "sshfs". Samba là tào lao, NFS là rác. Sshfs hoàn toàn có thể sử dụng được từ máy tính của tôi ở California, đến máy tính ở Argentina. Nó hoàn toàn an toàn, nó cũng nhanh như mọi thứ khác (tôi có một dòng gibabit).

Sshfs tương đối mới so với Samba và NFS, nhưng nó vượt trội hơn nhiều so với. Đây là một ví dụ về việc chạy nó (giả sử bạn đã cài đặt tất cả các gói)

# 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

Khi bạn nhập mật khẩu, / tmp / my_mount sẽ chứa tất cả các tệp của "tên người dùng" trên "máy". Đừng bận tâm đến futz với Samba hoặc NFS. Họ chỉ là một nỗi đau vô nghĩa ở mông để cấu hình hoặc thiết lập.

Để ngắt kết nối:

fusermount -u /tmp/my_mount

và nếu thất bại (vì bất kỳ lý do gì):

umount -f /tmp/my_mount

Tất cả dữ liệu được gửi qua điểm gắn kết được mã hóa. Tại sao đây không phải là cách tiêu chuẩn, hoàn toàn được chấp nhận, khi thực hiện gắn kết với máy từ xa là một bí ẩn đối với tôi. Nó vượt trội hơn nhiều so với bất kỳ phương pháp nào khác về sự đơn giản.

Nếu bạn cần tốc độ thô, có lẽ mảnh rác đầy ắp Samba sẽ làm điều đó, hoặc NFS. Tôi không biết, 100 MB / s + là đủ tốt cho tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.