آموزش اشتراک گذاری فایل بین لینوکس (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 منتقل کنید.
برای مشاهده محصولات دیگر سایت ما اینجا کلیک کنید.![]()
![]()
![]()
برای مشاهده محصولات متنوع تر به سایت NKTECH مراجعه نمایید.
برای مشاهده محصولات برند LAFAND به سایت لافند مراجعه نمایید.