~3 min read • Updated Feb 18, 2026
1. مقدمه
این مستند نحوه استفاده از حالت Active و Passive برای اتصال به سرور FTP را توضیح میدهد. حالت Passive برای سرورهایی که پشت NAT قرار دارند ضروری است و از مسدود شدن ارتباط توسط فایروال جلوگیری میکند.
نکته مهم: سیستم بهصورت پیشفرض پورتهای Passive بین 49152 تا 65534 را برای سرورهای Pure-FTPd و ProFTPD فعال میکند.
2. تفاوت حالت Active و Passive
Active Mode
در حالت Active، سرور FTP پس از دریافت درخواست، از پورتی متفاوت به سمت کلاینت اتصال برقرار میکند. این رفتار در شبکههای NAT معمولاً توسط فایروال مسدود میشود.
Passive Mode
در حالت Passive، کلاینت هر دو اتصال را آغاز میکند. به همین دلیل، فایروال و NAT مانع ارتباط نمیشوند.
نکته: اگر کاربران FTP در پشت NAT قرار دارند، باید حالت Passive فعال شود و پورتهای Passive در سرور و فایروال باز شوند.
3. پیکربندی سرورهای FTP
در ادامه نحوه ویرایش تنظیمات سرورهای Pure-FTPd و ProFTPD توضیح داده شده است.
4. تنظیمات Pure-FTPd
- از طریق SSH با کاربر
rootوارد سرور شوید. - فایل
/var/cpanel/conf/pureftpd/localرا ایجاد یا ویرایش کنید. - اگر سرور پشت NAT است، مقدار زیر را وارد کنید:
ForcePassiveIP: 203.0.113.0اگر سرور پشت NAT نیست:
ForcePassiveIP: ~نکته: فقط یک مقدار ForcePassiveIP میتواند در فایل وجود داشته باشد.
تغییر بازه پورتهای Passive
echo "PassivePortRange: 49152 65534" >> /var/cpanel/conf/pureftpd/local
/usr/local/cpanel/scripts/setupftpserver pure-ftpd --forceراهاندازی مجدد سرویس
/usr/local/cpanel/scripts/setupftpserver pure-ftpd --force5. تنظیمات ProFTPD
- از طریق SSH با کاربر
rootوارد شوید. - فایل
/var/cpanel/conf/proftpd/localرا ایجاد یا ویرایش کنید. - اگر سرور پشت NAT است، مقدار زیر را وارد کنید:
MasqueradeAddress: 203.0.113.0اگر سرور پشت NAT نیست:
MasqueradeAddress: ~نکته: فقط یک مقدار MasqueradeAddress میتواند در فایل وجود داشته باشد.
تغییر بازه پورتهای Passive
echo "PassivePorts: 49152 65534" >> /var/cpanel/conf/proftpd/local
/usr/local/cpanel/scripts/setupftpserver proftpd --forceراهاندازی مجدد سرویس
/usr/local/cpanel/scripts/setupftpserver proftpd --force6. پیکربندی فایروال
ممکن است لازم باشد بازه پورتهای Passive را در فایروال باز کنید.
CSF
فایل /etc/csf/csf.conf را باز کنید و مطمئن شوید بازه پورتها در خط TCP_IN وجود دارد.
هشدار: از ۳۱ آگوست ۲۰۲۵، CSF دیگر پشتیبانی نمیشود.
nftables
nft add rule filter INPUT tcp dport 49152-65534 accept
nft -s list ruleset | tee /etc/sysconfig/nftables.conffirewalld
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --permanent --add-port=49152-65534/tcp
firewall-cmd --reloadiptables
yum install iptables-services
iptables -I INPUT -p tcp --dport 49152:65534 -j ACCEPT
service iptables save7. مشکلات Passive FTP در SolusVM و Xen
در برخی سرورهای CloudLinux با SolusVM و Xen ممکن است مشکلاتی شبیه فایروال رخ دهد. برای رفع مشکل:
IPTABLES_MODULES=ipt_REJECT ipt_tos ipt_TOS ipt_LOG ip_conntrack ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state iptable_nat ip_nat_ftp ipt_owner ipt_REDIRECTservice iptables restart8. رفع مشکلات Passive Mode
اگر سرور NAT نتواند اتصال Passive برقرار کند، مقدار ForcePassiveIP را برابر ~ قرار دهید تا سیستم تغییرات خودکار را غیرفعال کند.
9. بازیابی رابطهای FTP در cPanel
اگر سرویس FTP در حالت unmanaged باشد، رابطهای FTP در cPanel نمایش داده نمیشوند. برای رفع مشکل:
mkdir -p /var/cpanel/dynamicui/
touch /var/cpanel/dynamicui/ftpدر صورت حذف شدن فایل، پس از هر آپدیت دوباره آن را ایجاد کنید.
Written & researched by Dr. Shahin Siami