แชร์ไฟล์ผ่านเครือข่ายท้องถิ่นได้อย่างไร


65

ฉันมีเดสก์ท็อป (Ubuntu 13.04 และ Win 7 Home Premium)และแล็ปท็อป (Ubuntu 12.04)ทั้งคู่มีอะแดปเตอร์ WiFi ฉันยังมีเราเตอร์ WiFi เชื่อมต่อกับอินเทอร์เน็ตซึ่งคอมพิวเตอร์ของฉันสามารถเข้าถึงได้

ฉันต้องการแบ่งปันไฟล์ระหว่างสก์ท็อปและแล็ปท็อปของฉันโดยใช้ WiFi (คล้ายกับ HomeGroup บน Windows 7 แต่โดยไม่ต้องใช้สายเคเบิล Ethernet) ฉันจะตั้งค่าอย่างไร

ฉันต้องการแชร์ไฟล์โดยใช้ระบบปฏิบัติการทั้งสองถ้าใครมีข้อมูลเกี่ยวกับการแชร์ไฟล์กับระบบปฏิบัติการใดกรุณาตอบ!


7
ที่เกี่ยวข้อง: askubuntu.com/questions/107208/…
Lucio

1
นี่ไม่ใช่สิ่งที่ซ้ำกันเพราะถามเกี่ยวกับการแชร์ไฟล์ระหว่าง Ubuntu และ Windows รวมถึงเครื่อง Ubuntu และ Ubuntu หมายเหตุเดสก์ทอปนั้นมีทั้ง Ubuntu และ Windows เมื่อมันถูกบูทไปที่ Ubuntu และแล็ปท็อปมี Ubuntu คุณจะต้องแบ่งปันไฟล์ Ubuntu กับ Ubuntu
user68186

คำตอบ:


77

การตั้งค่าเครือข่าย

เชื่อมต่อทั้งเดสก์ท็อปและแล็ปท็อปกับเราเตอร์ WiFi โดยใช้การตั้งค่ามาตรฐาน เมื่อต้องการตรวจสอบว่าคอมพิวเตอร์ทั้งสองเครื่องเชื่อมต่ออยู่ให้ทดสอบว่าคุณสามารถใช้อินเทอร์เน็ตจากคอมพิวเตอร์ทั้งสองเครื่องได้

ทางเลือก:ในการตั้งค่าเราเตอร์ดูที่อยู่ IP ในเครื่องที่กำหนดให้เดสก์ท็อปและแล็ปท็อป สิ่งเหล่านี้อาจมีลักษณะเช่น 192.168.0.100 หรือ 192.168.1.199 หากมีตัวเลือกในการกำหนดที่อยู่ IP เหล่านี้อย่างถาวรในเราเตอร์คุณสามารถทำได้


Windows → Ubuntu

ขั้นตอนที่ 1บนแล็ปท็อปสร้างโฟลเดอร์ที่คุณต้องการแชร์ อาจมีโฟลเดอร์ชื่อ "สาธารณะ" เลือกโฟลเดอร์นั้นถ้าคุณต้องการ คลิกขวาที่ไอคอนโฟลเดอร์แล้วเลือก "ตัวเลือกการแชร์" หน้าต่างใหม่จะเปิดขึ้น:

ป้อนคำอธิบายรูปภาพที่นี่

ทำเครื่องหมายที่ช่อง "แชร์โฟลเดอร์นี้"

คุณอาจต้องการตรวจสอบอีกสองช่อง "อนุญาตให้ผู้อื่นสร้างและลบไฟล์ในโฟลเดอร์นี้" สิ่งนี้จะอนุญาตให้ผู้ใช้ Windows บนเดสก์ท็อปของคุณสร้างและลบไฟล์ในโฟลเดอร์นี้

กล่องกาเครื่องหมาย "การเข้าถึงของผู้เยี่ยมชม" เป็นคำอธิบายด้วยตนเอง สิ่งนี้อาจมีประโยชน์หาก ID ผู้ใช้ Windows ของคุณไม่ตรงกับ ID ผู้ใช้ Ubuntu ของคุณ

อาจบอกคุณว่าไม่ได้ติดตั้งบริการแชร์:

ป้อนคำอธิบายรูปภาพที่นี่

คลิก "ติดตั้งบริการ" และปล่อยให้มันติดตั้งซอฟต์แวร์โดยให้รหัสผ่านสำหรับบัญชีผู้ใช้แล็ปท็อปเมื่อมันแจ้งให้ libpam-smbpassคุณอาจจะได้รับแจ้งให้ติดตั้งซอฟต์แวร์มากขึ้นเช่น ติดตั้งซอฟต์แวร์ทั้งหมด มันจะขอให้คุณเริ่มบริการใหม่และคลิกใช่

ขั้นตอนที่ 2เปิดหน้าต่างคุณสมบัติของโฟลเดอร์ "สาธารณะ" โดยคลิกขวาที่มัน ไปที่แท็บการอนุญาตและตรวจสอบให้แน่ใจว่ามีลักษณะดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

คลิกที่ปุ่ม "เปลี่ยนการอนุญาตของไฟล์ที่แนบมา" และตรวจสอบว่ามีลักษณะดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ตอนนี้คุณควรจะสามารถแก้ไขไฟล์ที่สร้างในอูบุนตูในโฟลเดอร์ "สาธารณะ" ของแล็ปท็อปใน Windows Explorer

อย่างไรก็ตามหากคุณสร้างไฟล์ใน Windows และวางไว้ในโฟลเดอร์สาธารณะของแล็ปท็อปคุณอาจไม่สามารถเปิดไฟล์นั้นเมื่อคุณไปที่แล็ปท็อป นี่เป็นเพราะ Windows และ Ubuntu ไม่เข้าใจความเป็นเจ้าของไฟล์และการอนุญาตของกันและกัน ดังนั้นในแล็ปท็อป Ubuntu ไฟล์ที่สร้างโดย Windows จะเป็นของ "Nobody" คุณจะต้องเปิด Nautilus ในฐานะผู้ดูแลระบบและเปลี่ยนสิทธิ์การเป็นเจ้าของและสิทธิ์การอ่าน - เขียนในแล็ปท็อป

ขั้นตอนที่ 3ไปที่ Windows บนคอมพิวเตอร์เดสก์ท็อปและเปิดWindows Explorerคลิกที่สามเหลี่ยมถัดจากเครือข่ายทางแผงด้านซ้าย จากรายการแบบหล่นลงที่คุณควรจะสามารถเลือกชื่อของคอมพิวเตอร์แล็ปท็อปที่ใช้อูบุนตู

ตอนนี้คุณน่าจะเห็นโฟลเดอร์ที่แชร์ของคุณ (พูดว่า "สาธารณะ") จากแล็ปท็อปใน Windows Explorer คลิกที่โฟลเดอร์ "สาธารณะ" และดูไฟล์ในโฟลเดอร์ คุณควรจะสามารถคัดลอกไฟล์จากโฟลเดอร์ Public ใน Ubuntu ไปยังโฟลเดอร์ในเครื่อง Windows ของคุณ

นี่คือคำแนะนำทีละขั้นตอนพร้อมรายละเอียดเพิ่มเติม


Ubuntu → Windows

ขั้นตอนที่ 1ตั้งค่าการแชร์โฟลเดอร์ Windows โดยใช้วิธีที่มีให้สำหรับ Windows ทำตามขั้นตอนในลิงค์ด้านบนสำหรับส่วน Windows

ขั้นตอนที่ 2เปิดเทอร์มินัลในแล็ปท็อป Ubuntu โดยกดCtrl+ Alt+ Tและป้อน:

sudo -H gedit /etc/samba/smb.conf

และมองหาสาย:

;   name resolve order = lmhosts host wins bcast

และแก้ไขให้เป็นแบบนี้

   name resolve order = bcast lmhosts host wins 

หมายเหตุไม่มี ในตอนต้นของบรรทัดที่แก้ไข บันทึกไฟล์และออกจาก gedit ป้อนสองบรรทัดต่อไปนี้ (ทีละครั้ง) เพื่อหยุดและเริ่มแซมบ้า:

sudo stop smbd
sudo start smbd

ขั้นตอนที่ 3บนแล็ปท็อปให้เปิด Nautilus เบราว์เซอร์ไฟล์และคลิกที่เครือข่ายทางแผงด้านซ้าย คลิกที่ "เรียกดูเครือข่าย" คลิกผ่านไอคอนในหน้าต่างเครือข่ายหลักของ Nautilus และค้นหา Windows Desktop และโฟลเดอร์ที่แชร์ของคุณ ตรวจสอบว่าคุณสามารถคัดลอกไฟล์จากและไปยังโฟลเดอร์นี้

ดูข้อผิดพลาด "ไม่สามารถดึงรายการแชร์จากเซิร์ฟเวอร์" เมื่อเรียกดูการแชร์กับ Nautilusเพื่อการอ้างอิงการแก้ไข smb.conf


Ubuntu → Ubuntu

บูตเดสก์ท็อปไปที่ Ubuntu

ทั้งบนเดสก์ท็อปและแล็ปท็อปทำสิ่งต่อไปนี้เพื่อให้แน่ใจว่า ssh-server นั้นเป็น intalled:

เปิดเทอร์มินัลโดยกดCtrl+ Alt+ Tและป้อน

sudo apt-get install openssh-server

ป้อนรหัสผ่านของคุณเมื่อได้รับแจ้ง เคอร์เซอร์จะไม่เคลื่อนที่เมื่อคุณป้อนรหัสผ่าน นี่เป็นปกติ.

นี่จะติดตั้ง ssh-server หากยังไม่ได้ติดตั้ง หากติดตั้งแล้วมันจะไม่ทำอะไรเลย

เดสก์ท็อปก่อน:

เปิด Nautilus และค้นหารายการเมนู "ที่ตั้งอื่น" ที่ด้านล่างค้นหา Connect to Server:

การเชื่อมต่อ sftp [7]

ภายใต้ที่อยู่เซิร์ฟเวอร์ให้ป้อน:

sftp://laptop_user_id@laptop_name.local/home/laptop_user_id

ที่laptop_user_idเป็นรหัสผู้ใช้ที่คุณสร้างขึ้นสำหรับแล็ปท็อปของคุณ คุณสามารถค้นหา ID ผู้ใช้ของคุณโดยพิมพ์whoamiในเทอร์มินัล และlaptop_nameเป็นชื่อที่คุณมอบให้กับแล็ปท็อปเมื่อคุณติดตั้ง Ubuntu

หากคุณต้องการแชร์พาร์ติชันในฮาร์ดไดรฟ์ที่สองของเดสก์ท็อปภายใต้ที่อยู่เซิร์ฟเวอร์ให้ป้อน:

sftp://desktop_user_id@desktop_name.local/path/to/the/mount/point/of/the/partition/in/second/hard/drive

แทนที่path/to/.../driveด้วยพา ธ ที่แท้จริง

อีกวิธีหนึ่งถ้าคุณรู้ที่อยู่ IP ท้องถิ่นของแล็ปท็อปของคุณคุณสามารถแทนที่laptop_name.localด้วยที่อยู่ IP ท้องถิ่นของแล็ปท็อป

Connectกด คุณจะเห็นกล่องโต้ตอบรหัสผ่าน:

รหัสผ่านสำหรับ SSH

ป้อนรหัสผ่านที่เกี่ยวข้องกับ laptop_user_id และเลือกว่าคุณต้องการจดจำรหัสผ่านหรือไม่ Connectอีกครั้งคลิก

ตอนนี้คุณควรเห็นโฟลเดอร์บ้านของแล็ปท็อป

สังเกตเห็นมีเป็นรายการใหม่ภายใต้เครือข่ายบนแผงด้านซ้ายของ Nautilus laptop_user_idที่ขึ้นต้นด้วย คลิกขวาและเลือก "เพิ่มที่คั่นหน้า" เพื่อสร้างที่คั่นหน้าถาวรสำหรับโฟลเดอร์โฮมของแล็ปท็อปของคุณใน Nautilus ของเดสก์ท็อป

ดูหน้านี้สำหรับรูปภาพจากรุ่นที่เก่ากว่า

ตอนนี้แล็ปท็อป

ทำตามกระบวนการเดียวกันกับเดสก์ท็อปด้านบน


ฉันจะลองใช้วิธีของ Ur และจะตอบ U จนกว่าจะถึงวันนั้น Thank U มาก ๆ สำหรับคำตอบ! -to user68186
Gaurav

2
:) เสร็จแล้วฉันติดตั้งSSHในแล็ปท็อปตามที่คุณพูดและทำงานเสร็จตอนนี้ฉันสามารถเห็นแล็ปท็อปของฉันในเดสก์ท็อปและเดสก์ท็อปของฉันในแล็ปท็อปขอบคุณมากและขอบคุณมากสำหรับเวลาที่คุณใช้คำถามนี้
Gaurav

2
@Gaurav Samba เป็นบริการที่ทำงานในพื้นหลัง ไม่มีส่วนต่อประสานผู้ใช้แบบกราฟิกตามชื่อนั้น นั่นเป็นเหตุผลที่คุณจะไม่พบมันใน Dash คุณติดอยู่ในขั้นตอนใด คุณเห็นโฟลเดอร์แชร์ใน Windows จาก Ubuntu หรือไม่ คุณเห็นโฟลเดอร์แชร์ใน Ubuntu จาก Windows หรือไม่
user68186

1
หมายเหตุสำหรับ Ubuntu ไปยัง Ubuntu ช่องป้อนข้อมูล "เชื่อมต่อกับเซิร์ฟเวอร์" จะปรากฏที่ด้านล่างของหน้า "ตำแหน่งอื่น" สำหรับไฟล์ (Nautilus) รุ่นล่าสุดและเป็นเรื่องง่ายที่จะพลาด - askubuntu.com/a/851681
bonger

1
@Bonger ขอบคุณ! ฉันได้อัปเดตข้อความและรูปภาพเพื่อให้สอดคล้องกับการเปลี่ยนแปลง
user68186

3

ฉันจะเสนอทางเลือกบางอย่างที่ดูไม่เหมือน SAMBA แต่น่าจะดีกว่าสำหรับกรณีการใช้งานอื่น ๆ

เซิร์ฟเวอร์ HTTP

HTTPเป็นโปรโตคอลที่ใช้ในการเข้าถึงเว็บไซต์ปกติดังนั้นทุกระบบปฏิบัติการจึงถูกบังคับให้ใช้งาน!

ค้นหา IP 192.168.0.10ของคุณบนคอมพิวเตอร์ต้นทางเช่น บน Ubuntu:

ifconfig

สร้างเซิร์ฟเวอร์ในไดเรกทอรีที่มีไฟล์ที่คุณต้องการถ่ายโอน:

python -m SimpleHTTPServer 8080

บนคอมพิวเตอร์ที่รับเปิดเบราว์เซอร์และไปที่:

192.168.0.10:8080

ตอนนี้คุณสามารถนำทางผ่านไดเรกทอรีไปยังไฟล์ที่คุณต้องการ

ฉันไม่แน่ใจว่าวิธีนี้รวดเร็วหรือมีประสิทธิภาพ แต่เป็นวิธีการติดตั้งและพกพาที่ง่ายที่สุดวิธีหนึ่ง

ทางเลือกที่เร็วขึ้นจะกล่าวถึงที่: https://stackoverflow.com/questions/12905426/what-is-a-faster-alternative-to-pythons-simplehttpserver

rsync

ระหว่างคอมพิวเตอร์ Ubuntu สองเครื่องนี่เป็นตัวเลือกที่ยอดเยี่ยม: https://en.wikipedia.org/wiki/Rsync

ก่อนอื่นตรวจสอบให้แน่ใจว่าคุณสามารถ SSH จากคอมพิวเตอร์เครื่องหนึ่งไปยังอีกเครื่องหนึ่งได้:

ssh server-username@192.168.0.10

คุณสามารถสร้างบัญชีใหม่สำหรับผู้ใช้หากคุณต้องการเก็บรหัสผ่านของคุณเป็นส่วนตัว

คุณอาจต้องทำงานบนเซิร์ฟเวอร์และไคลเอนต์:

sudo apt-get install ssh

จากนั้นเมื่อคุณจัดการเข้าสู่ระบบเพื่อคัดลอกไฟล์จากเซิร์ฟเวอร์ไปยังไคลเอนต์เพียงทำ:

rsync -av server-username@192.168.0.10:/full/path/to/remote/directory .

สามารถคัดลอกหลายไดเรกทอรีได้ในครั้งเดียวตามที่อธิบายไว้ที่https://unix.stackexchange.com/questions/308810/copying-multiple-files-using-rsync-over-ssh :

rsync -av 'server-username@192.168.0.10:/full/path/to/remote/directory "/full/path/to/remote/directory with space"' .

นี่คือวิธีตัวหารร่วมที่ต่ำที่สุด: มีประสิทธิภาพมากที่สุด, มีประสิทธิภาพ, แพร่หลายใน Linux และความปลอดภัยขึ้นอยู่กับการอนุญาตของไฟล์ที่รู้จักกันดี + โครงร่างผู้ใช้

สิ่งนี้อาจไม่ง่ายบน Windows ที่คิดว่า:

NFS

ส่วนใหญ่สำหรับเครื่อง Ubuntu สองเครื่องนี่คือ SAMBA สำหรับ Linux ด้วยการสนับสนุนที่สร้างไว้ในเคอร์เนล Linux: https://en.wikipedia.org/wiki/Network_File_System

โดยทั่วไปจะช่วยให้คุณไปยังmountโฟลเดอร์จากเซิร์ฟเวอร์ในแขก

การตั้งค่าและการแก้ไขปัญหาอาจเป็นเรื่องยากกว่าเล็กน้อยrsyncแต่เป็นไปได้อย่างแน่นอนนี่เป็นบทความที่ดี: https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nount-on-th-th อูบุนตู-16-04

อาจมีการใช้งาน Windows บางส่วนด้วย: https://docs.microsoft.com/en-us/windows-server/storage/nfs/nfs-overviewแต่ฉันเดาว่า Microsoft ต้องให้การสนับสนุนโปรโตคอล SMB ของตัวเองดีกว่า


1
sudo apt-get install servefile

servefileเหมาะสำหรับการใช้งานร่วมกันแบบสบาย ๆ มันวิ่งเซิร์ฟเวอร์ HTTP บนพอร์ต 8080 (ยกเว้นกรณีที่ -p < พอร์ต > ระบุไว้) ดังนั้นจึงสามารถสื่อสารได้อย่างรวดเร็วด้วยอุปกรณ์ใด ๆ กับเบราว์เซอร์

ตัวอย่าง:

  • ชื่อไฟล์ servfile # เพียงแค่ให้บริการไฟล์


    ฉันได้รับ 3 URL เพราะฉันมี 3 IP จาก 3 LAN ที่แตกต่างกันโดยปกติคุณจะได้รับเพียง 1 แต่มันยอดเยี่ยมมากที่แสดงให้คุณเห็น

  • servfile -u ~ / Pictures # ให้คุณอัพโหลดไฟล์ไปยังโฟลเดอร์Pictures

    อัพโหลดไฟล์

  • บริการไฟล์ -l ~ / รูปภาพ # ทำหน้าที่เนื้อหาของโฟลเดอร์

    เนื้อหาของโฟลเดอร์

  • เสิร์ฟไฟล์ -tc gzip ~ / Pictures # สร้างไฟล์ tar จากไฟล์หรือโฟลเดอร์ใด ๆ และบีบอัดไฟล์ได้ทันที

    ป้อนคำอธิบายรูปภาพที่นี่

BTWด้วยวิธีนี้ฉันถึงความเร็วการถ่ายโอน 1Gbps (ความเร็วสูงสุดของ LAN)

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