سویچ های نیکوتکنولوژی

آموزش اشتراک گذاری فایل بین لینوکس (Linux) و ویندوز (Windows)

آموزش اشتراک گذاری فایل بین لینوکس (Linux) و ویندوز (Windows)

اشتراک‌گذاری فایل بین سیستم‌های Linux و Windows یکی از نیازهای رایج در شبکه‌های کامپیوتری است. ممکن است در یک سازمان، یک سرور لینوکسی داشته باشید و کاربران با کامپیوترهای ویندوزی به آن متصل شوند، یا بخواهید بین یک سیستم لینوکس و ویندوز در شبکه داخلی فایل منتقل کنید.

خوشبختانه برای انجام این کار روش‌های مختلفی وجود دارد و لازم نیست حتماً از فلش یا هارد اکسترنال استفاده کنید.

در این مقاله روش‌های مختلف اشتراک‌گذاری فایل بین لینوکس و ویندوز را بررسی می‌کنیم و نحوه راه‌اندازی SMB/Samba، اتصال از ویندوز، اشتراک‌گذاری پوشه در لینوکس و همچنین روش‌های جایگزین مانند SFTP و SSH را توضیح می‌دهیم.


بهترین روش اشتراک فایل بین لینوکس و ویندوز چیست؟

اگر هدف شما این است که یک پوشه روی لینوکس ایجاد کنید و کاربران ویندوزی بتوانند مانند یک Network Drive به آن دسترسی داشته باشند، معمولاً Samba/SMB یکی از مناسب‌ترین گزینه‌ها است.

به‌صورت ساده:

Windows PC
     |
     | SMB
     |
Network
     |
     | SMB
     |
Linux Server
     |
 Shared Folder

Samba باعث می‌شود سیستم لینوکس بتواند سرویس اشتراک فایل سازگار با پروتکل SMB را در اختیار سیستم‌های ویندوزی قرار دهد.

برای انتقال فایل امن بین دو سیستم نیز می‌توان از SFTP روی SSH استفاده کرد.


روش‌های اشتراک فایل بین Linux و Windows

چند روش رایج برای این کار وجود دارد:

روش کاربرد
Samba / SMB اشتراک‌گذاری پوشه در شبکه و دسترسی از Windows
SFTP انتقال امن فایل
SCP کپی فایل از طریق SSH
FTP انتقال فایل، اما با امنیت پایین‌تر در حالت معمول
NFS مناسب‌تر برای محیط‌های Linux/Unix
WinSCP ابزار گرافیکی برای انتقال فایل بین Windows و Linux
SSH مدیریت و انتقال فایل به‌صورت امن

در ادامه ابتدا روش Samba را بررسی می‌کنیم، چون برای اشتراک‌گذاری فایل در شبکه Windows و Linux کاربرد بسیار زیادی دارد.


Samba چیست؟

Samba نرم‌افزاری است که امکان ارتباط سیستم‌های Linux و Unix با سرویس‌های فایل و پرینتر مبتنی بر SMB را فراهم می‌کند.

با استفاده از Samba می‌توان یک پوشه روی سرور لینوکس ایجاد کرد و آن را در شبکه به اشتراک گذاشت.

کاربر ویندوزی سپس می‌تواند با وارد کردن آدرس سرور به پوشه دسترسی پیدا کند.

برای مثال:

\\192.168.1.10\share

در این مثال:

  • 192.168.1.10 آدرس IP سرور لینوکس است.
  • share نام پوشه Share شده است.

پیش‌نیازهای اشتراک‌گذاری فایل

قبل از شروع باید چند مورد را بررسی کنید.

1. اتصال شبکه

سیستم لینوکس و ویندوز باید بتوانند یکدیگر را در شبکه ببینند.

برای مثال:

Linux:
192.168.1.10

Windows:
192.168.1.20

اگر هر دو سیستم در یک شبکه هستند، باید بتوانند ارتباط IP داشته باشند.

در ویندوز می‌توانید از دستور زیر استفاده کنید:

ping 192.168.1.10

اگر پاسخ دریافت کردید، ارتباط پایه شبکه برقرار است.


نصب Samba روی Linux

دستور نصب Samba به توزیع لینوکس بستگی دارد.

Ubuntu و Debian

در Ubuntu یا Debian می‌توانید از دستور زیر استفاده کنید:

sudo apt update
sudo apt install samba

بعد از نصب، وضعیت سرویس Samba را بررسی کنید:

sudo systemctl status smbd

در صورت نیاز می‌توانید سرویس را فعال کنید:

sudo systemctl enable --now smbd

ایجاد پوشه برای اشتراک‌گذاری

فرض کنیم می‌خواهیم پوشه‌ای با نام share ایجاد کنیم.

ابتدا:

sudo mkdir -p /srv/share

حالا می‌توانیم مالکیت و مجوزهای پوشه را تنظیم کنیم.

برای یک محیط آزمایشی می‌توان مثلاً از این دستور استفاده کرد:

sudo chmod 777 /srv/share

اما استفاده از 777 در محیط عملیاتی معمولاً توصیه نمی‌شود، زیرا دسترسی بسیار گسترده‌ای ایجاد می‌کند.

در محیط واقعی بهتر است مالکیت و Permissionها بر اساس کاربران و گروه‌های مورد نیاز تنظیم شوند.


ایجاد کاربر برای Samba

بهتر است برای دسترسی کاربران ویندوزی یک حساب مشخص در لینوکس داشته باشید.

برای مثال:

sudo adduser networkuser

بعد از ایجاد کاربر، آن را به دیتابیس کاربران Samba اضافه کنید:

sudo smbpasswd -a networkuser

در این مرحله یک رمز عبور برای کاربر Samba تعیین می‌شود.

این اطلاعات هنگام اتصال از Windows مورد استفاده قرار می‌گیرد.


تنظیم فایل Samba

فایل اصلی تنظیمات Samba معمولاً در مسیر زیر قرار دارد:

/etc/samba/smb.conf

می‌توانید آن را با ویرایشگری مانند nano باز کنید:

sudo nano /etc/samba/smb.conf

در انتهای فایل می‌توان یک Share جدید تعریف کرد.

برای مثال:

[Share]
    path = /srv/share
    browseable = yes
    read only = no
    guest ok = no
    valid users = networkuser

در این تنظیمات:

[Share]

نام Share است.

path

مسیر پوشه‌ای است که قرار است به اشتراک گذاشته شود.

browseable

مشخص می‌کند Share در مرور شبکه قابل مشاهده باشد یا خیر.

read only

با مقدار no اجازه نوشتن روی Share داده می‌شود.

guest ok

با مقدار no کاربران باید احراز هویت شوند.

valid users

مشخص می‌کند چه کاربرانی اجازه دسترسی داشته باشند.


بررسی تنظیمات Samba

قبل از راه‌اندازی مجدد Samba بهتر است تنظیمات را بررسی کنید.

دستور زیر برای بررسی فایل تنظیمات کاربرد دارد:

testparm

اگر خطای جدی در تنظیمات وجود نداشته باشد، می‌توان سرویس را Restart کرد.

sudo systemctl restart smbd

باز کردن پورت‌های Samba در Firewall

اگر روی Linux فایروال فعال باشد، باید دسترسی مورد نیاز Samba را مجاز کنید.

برای مثال اگر از UFW استفاده می‌کنید:

sudo ufw allow samba

سپس وضعیت Firewall را بررسی کنید:

sudo ufw status

نکته مهم این است که بهتر است دسترسی SMB را فقط برای شبکه‌های مورد اعتماد مجاز کنید و آن را مستقیماً روی اینترنت قرار ندهید.


پیدا کردن IP سرور لینوکس

برای اینکه از Windows به Linux متصل شویم، باید IP سرور لینوکس را بدانیم.

یکی از روش‌ها:

ip addr

یا:

hostname -I

فرض کنیم نتیجه به شکل زیر باشد:

192.168.1.10

حالا می‌توانیم از سیستم ویندوزی به Share متصل شویم.


اتصال Windows به پوشه اشتراکی Linux

در Windows کلیدهای زیر را فشار دهید:

Win + R

سپس آدرس زیر را وارد کنید:

\\192.168.1.10\Share

و Enter بزنید.

اگر تنظیمات درست باشد، ویندوز اطلاعات ورود را درخواست می‌کند.

نام کاربری:

networkuser

و رمز عبوری که هنگام اجرای smbpasswd تعیین کرده‌اید.

پس از احراز هویت، پوشه Share شده در اختیار شما قرار می‌گیرد.


اتصال به Linux از طریق File Explorer

حتی نیازی نیست همیشه از Run استفاده کنید.

File Explorer ویندوز را باز کنید و در قسمت Address Bar بنویسید:

\\192.168.1.10\Share

سپس Enter بزنید.

اگر همه چیز صحیح باشد، محتوای پوشه لینوکس نمایش داده می‌شود.


تبدیل Share لینوکس به Network Drive در Windows

اگر کاربران دائماً از این پوشه استفاده می‌کنند، می‌توانید آن را به‌عنوان Network Drive در ویندوز Map کنید.

در File Explorer:

This PC → Map Network Drive

سپس یک Drive Letter انتخاب کنید.

مثلاً:

Z:

در قسمت Folder بنویسید:

\\192.168.1.10\Share

در صورت نیاز گزینه اتصال با اطلاعات کاربری متفاوت را انتخاب کنید.

بعد از اتصال، Share لینوکس مانند یک Drive معمولی در Windows نمایش داده می‌شود.


اشتراک‌گذاری فایل از Windows برای Linux

اشتراک‌گذاری فقط یک‌طرفه نیست.

اگر بخواهید یک پوشه Windows را در اختیار Linux قرار دهید، می‌توانید از SMB استفاده کنید.

برای مثال در Windows یک Folder را Share کنید.

سپس در Linux می‌توانید Share را Mount کنید.

ابتدا ابزارهای لازم را نصب کنید.

در Ubuntu/Debian:

sudo apt install cifs-utils

سپس یک Mount Point ایجاد کنید:

sudo mkdir -p /mnt/windows-share

حالا می‌توانید Share ویندوز را Mount کنید:

sudo mount -t cifs //192.168.1.20/share /mnt/windows-share -o username=windowsuser

در این مثال:

192.168.1.20

آدرس سیستم Windows است.

و:

share

نام پوشه Share شده است.


روش دوم: انتقال فایل با SFTP

اگر هدف شما فقط انتقال فایل است و به Network Share دائمی نیاز ندارید، SFTP گزینه بسیار خوبی است.

SFTP روی SSH کار می‌کند و برای انتقال امن فایل طراحی شده است.

در این روش معمولاً یک SSH Server روی Linux فعال است.

مثلاً در Ubuntu:

sudo apt install openssh-server

سپس:

sudo systemctl enable --now ssh

اکنون می‌توانید از Windows با یک نرم‌افزار SFTP به سرور لینوکس متصل شوید.


استفاده از WinSCP برای انتقال فایل

یکی از ابزارهای شناخته‌شده برای این کار WinSCP است.

در WinSCP معمولاً اطلاعات زیر را وارد می‌کنید:

File protocol: SFTP
Host name: 192.168.1.10
Port: 22
User name: networkuser
Password: ********

پس از اتصال، معمولاً یک محیط دوطرفه مشاهده می‌کنید:

Windows              Linux
--------------------------------
Documents            /home/user
Downloads            /var/www
Desktop              /srv/share

حالا می‌توانید فایل‌ها را با Drag & Drop بین Windows و Linux جابه‌جا کنید.


SFTP یا Samba؛ کدام را انتخاب کنیم؟

انتخاب روش به نوع استفاده بستگی دارد.

اگر هدف شما ایجاد یک پوشه اشتراکی دائمی در شبکه است، Samba معمولاً انتخاب مناسبی است.

اگر هدف شما انتقال امن فایل است، SFTP گزینه مناسبی است.

به‌صورت خلاصه:

ویژگی Samba/SMB SFTP
Network Share بله معمولاً خیر
مناسب Windows بسیار مناسب مناسب
انتقال امن با تنظیمات مناسب بله
دسترسی شبیه Drive بله معمولاً خیر
کاربرد اصلی File Sharing Secure File Transfer
پروتکل SMB SSH/SFTP

استفاده از SCP

یکی دیگر از روش‌های انتقال فایل، استفاده از SCP است.

مثلاً از Linux می‌توان فایلی را به سیستم دیگری منتقل کرد:

scp file.txt user@192.168.1.20:/home/user/

یا می‌توان فایل را از سرور دریافت کرد:

scp user@192.168.1.10:/home/user/file.txt .

SCP نیز بر پایه SSH کار می‌کند.

با این حال برای مدیریت گرافیکی فایل‌ها در Windows، ابزارهایی مانند WinSCP معمولاً تجربه ساده‌تری ارائه می‌دهند.


مشکلات رایج هنگام اتصال Windows به Linux

گاهی تنظیمات درست انجام شده اما اتصال برقرار نمی‌شود. در این شرایط چند مورد را باید بررسی کنید.

1. بررسی IP

ابتدا مطمئن شوید IP صحیح است.

در Linux:

ip addr

در Windows:

ipconfig

2. بررسی ارتباط شبکه

از Windows:

ping 192.168.1.10

اگر Ping جواب نمی‌دهد، ابتدا مشکل شبکه را بررسی کنید.

البته عدم پاسخ Ping به‌تنهایی ثابت نمی‌کند SMB خراب است، زیرا ممکن است ICMP روی Firewall مسدود شده باشد.


3. بررسی سرویس Samba

در Linux:

sudo systemctl status smbd

اگر سرویس اجرا نمی‌شود:

sudo systemctl restart smbd

4. بررسی تنظیمات Samba

دستور زیر را اجرا کنید:

testparm

این دستور می‌تواند خطاهای مربوط به فایل smb.conf را مشخص کند.


5. بررسی Firewall

ممکن است سرویس Samba فعال باشد اما Firewall اجازه اتصال ندهد.

در Ubuntu:

sudo ufw status

در صورت نیاز:

sudo ufw allow samba

البته در محیط سازمانی بهتر است Ruleها را محدود به Subnetهای مورد نیاز کنید.


6. بررسی Username و Password

اگر ویندوز به Share متصل می‌شود اما اجازه دسترسی ندارد، اطلاعات کاربری Samba را بررسی کنید.

برای مشاهده کاربران Samba می‌توان از دستورهای مدیریتی Samba استفاده کرد و در صورت نیاز رمز عبور کاربر را مجدداً تنظیم کرد:

sudo smbpasswd networkuser

7. بررسی Permissionهای Linux

حتی اگر Samba اجازه دسترسی بدهد، Permissionهای خود Linux نیز باید اجازه خواندن یا نوشتن را صادر کنند.

برای بررسی:

ls -ld /srv/share

اگر کاربر Samba مجوز لازم را نداشته باشد، ممکن است با خطای Permission Denied مواجه شوید.


نکات امنیتی مهم در اشتراک فایل

راه‌اندازی File Sharing فقط به معنی فعال کردن سرویس نیست؛ امنیت نیز اهمیت زیادی دارد.

از Guest Access غیرضروری استفاده نکنید

اگر اطلاعات مهمی روی Share قرار دارد، بهتر است از احراز هویت کاربران استفاده کنید.


دسترسی‌ها را محدود کنید

لازم نیست همه کاربران بتوانند تمام فایل‌ها را مشاهده یا ویرایش کنند.

می‌توانید برای گروه‌ها و کاربران مختلف Permissionهای جداگانه تعریف کنید.

مثلاً:

IT Team       → Read/Write
Employees     → Read
Guests        → No Access

SMB را روی اینترنت باز نکنید

یکی از نکات بسیار مهم این است که سرویس SMB را مستقیماً روی اینترنت منتشر نکنید.

اگر نیاز به دسترسی از خارج سازمان دارید، بهتر است از راهکارهای امن مانند:

  • VPN
  • Zero Trust Access
  • SFTP
  • سایر روش‌های امن دسترسی از راه دور

استفاده شود.


آموزش اشتراک گذاری فایل بین لینوکس (Linux) و ویندوز (Windows)در شبکه سازمانی

در یک سازمان بزرگ بهتر است طراحی File Sharing کمی حرفه‌ای‌تر انجام شود.

برای مثال:

                 Internet
                    |
                 Firewall
                    |
              Core Switch
                    |
        +-----------+-----------+
        |                       |
   Windows Clients         Linux File Server
                                |
                              Samba
                                |
                             Storage

در این معماری می‌توان دسترسی کاربران را بر اساس VLAN، Subnet، گروه کاربری و سیاست‌های Firewall کنترل کرد.

همچنین بهتر است Backup مناسبی از اطلاعات مهم تهیه شود.


آیا Samba فقط برای Windows است؟

خیر.

Samba می‌تواند در محیط‌های مختلف استفاده شود و برای برقراری ارتباط File Sharing بین سیستم‌های Linux، Windows و سایر سیستم‌هایی که از SMB پشتیبانی می‌کنند کاربرد دارد.

به همین دلیل Samba یکی از ابزارهای مهم در شبکه‌های ترکیبی محسوب می‌شود.


جمع‌بندی آموزش اشتراک گذاری فایل بین لینوکس (Linux) و ویندوز (Windows)

اشتراک فایل بین Linux و Windows کار پیچیده‌ای نیست و بسته به نیاز می‌توان از روش‌های مختلفی استفاده کرد.

اگر هدف شما ایجاد یک پوشه اشتراکی در شبکه باشد، Samba و SMB یکی از رایج‌ترین روش‌هاست.

اگر هدف شما انتقال امن فایل باشد، SFTP و SSH انتخاب مناسبی هستند.

به‌صورت خلاصه:

File Sharing دائمی در شبکه
        ↓
    Samba / SMB

انتقال امن فایل
        ↓
       SFTP

کپی فایل با خط فرمان
        ↓
       SCP

برای یک شبکه سازمانی، علاوه بر راه‌اندازی سرویس، باید مواردی مانند Permission، Authentication، Firewall، Network Segmentation، Backup و امنیت دسترسی‌ها نیز در نظر گرفته شوند.

در نهایت، انتخاب روش مناسب به این بستگی دارد که آیا به یک Network Share دائمی نیاز دارید یا صرفاً می‌خواهید فایل‌ها را به‌صورت امن بین Linux و Windows منتقل کنید.

برای مشاهده محصولات دیگر سایت ما اینجا کلیک کنید.آموزش اشتراک گذاری فایل بین لینوکس (Linux) و ویندوز (Windows)

برای مشاهده محصولات متنوع تر به سایت NKTECH مراجعه نمایید.

برای مشاهده محصولات برند LAFAND به سایت لافند مراجعه نمایید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *