بعد از تحویل یک VPS لینوکسی، فقط داشتن IP و رمز عبور برای استفاده امن و پایدار از سرور کافی نیست. کانفیگ سرور مجازی لینوکس یعنی انجام تنظیمات اولیه سیستمعامل، دسترسی کاربران، SSH، فایروال، شبکه و سرویسهای موردنیاز تا VPS برای میزبانی سایت، اجرای اپلیکیشن یا سایر کارهای سروری آماده شود.
اگر تازه VPS لینوکس گرفتهاید، ترتیب پیشنهادی این است: اتصال با SSH → بهروزرسانی سیستم → ساخت کاربر مدیریتی → فعالسازی SSH Key → امنسازی SSH → تنظیم فایروال → نصب سرویس موردنیاز → اتصال دامنه و SSL در صورت میزبانی وب → تنظیم بکاپ و مانیتورینگ.
در این راهنما مراحل را از صفر انجام میدهیم و در هر مرحله توضیح میدهیم چه دستوری اجرا کنید و چه نکتهای را قبل از رفتن به مرحله بعد بررسی کنید. اگر هنوز با مفهوم VPS آشنا نیستید، ابتدا راهنمای سرور مجازی چیست را بخوانید.

کانفیگ سرور مجازی لینوکس چیست؟
کانفیگ یا پیکربندی VPS لینوکس مجموعه تنظیماتی است که بعد از نصب سیستمعامل برای آمادهکردن سرور انجام میشود. این تنظیمات میتواند شامل بهروزرسانی بستهها، مدیریت کاربران و سطح دسترسی، پیکربندی SSH، تعریف قوانین فایروال، تنظیم نام میزبان و زمان، نصب وبسرور یا دیتابیس، اتصال دامنه و ایجاد سازوکار بکاپ باشد.
همه VPSها دقیقاً با یک وضعیت تحویل داده نمیشوند. بعضی ارائهدهندگان دسترسی مستقیم root میدهند و بعضی Imageها، بهویژه بعضی Cloud Imageها، یک کاربر اولیه مانند ubuntu یا debian با دسترسی sudo دارند. همچنین سرویس مدیریتشده ممکن است بخشی از این کارها را از قبل انجام داده باشد. بنابراین قبل از اجرای هر دستور، سیستمعامل و سطح دسترسی سرور خود را بررسی کنید.
چکلیست سریع کانفیگ VPS لینوکس
| مرحله | کار اصلی | هدف |
|---|---|---|
| ۱ | اتصال SSH | دسترسی امن به خط فرمان سرور |
| ۲ | بهروزرسانی سیستم | نصب وصلهها و نسخههای جدید بستهها |
| ۳ | تنظیم Hostname و زمان | مدیریت درست لاگها و سرویسها |
| ۴ | ساخت کاربر مدیریتی | کاهش استفاده روزمره از root |
| ۵ | SSH Key و Hardening | کاهش ریسک ورود غیرمجاز |
| ۶ | Firewall | باز نگه داشتن فقط پورتهای لازم |
| ۷ | نصب سرویسها | آمادهسازی VPS برای کاربرد واقعی |
| ۸ | DNS و SSL | در صورت میزبانی وب، اتصال دامنه و HTTPS |
| ۹ | Backup و Monitoring | بازیابی و تشخیص سریع مشکل |
پیشنیازهای کانفیگ سرور مجازی لینوکس
قبل از شروع، این اطلاعات و ابزارها را در دسترس داشته باشید:
- IP سرور: IPv4 یا IPv6 که ارائهدهنده برای VPS در اختیار شما قرار داده است.
- نام کاربری اولیه: ممکن است
root،ubuntu،debianیا نام دیگری باشد. - رمز عبور یا کلید SSH: روش ورود اولیه به سرور.
- SSH Client: در Windows 10/11، macOS و Linux معمولاً کلاینت OpenSSH از طریق Terminal در دسترس است؛ PuTTY نیز یک گزینه جایگزین در ویندوز است.
- دسترسی کنسول ارائهدهنده: بهتر است Console/VNC یا Recovery Console پنل سرویس را بشناسید تا اگر در تنظیم SSH یا فایروال اشتباه کردید بتوانید دوباره وارد سرور شوید.
اگر هنوز VPS تهیه نکردهاید، صفحه سرور مجازی لینوکس ایرانسرور امکان انتخاب سرویسهای مبتنی بر توزیعهای لینوکسی و مدیریت از طریق SSH را ارائه میکند.
مرحله ۱: اتصال به سرور مجازی لینوکس با SSH
SSH روش استاندارد مدیریت یک VPS لینوکسی از راه دور است. در Windows Terminal، PowerShell، ترمینال macOS یا Linux دستور زیر را اجرا کنید و SERVER_IP را با IP واقعی سرور جایگزین کنید:
ssh root@SERVER_IPاگر ارائهدهنده بهجای root یک نام کاربری دیگر داده است:
ssh username@SERVER_IPدر اولین اتصال، SSH اثر انگشت کلید میزبان (Host Key Fingerprint) را نشان میدهد. بهتر است آن را با اطلاعات ارائهدهنده تطبیق دهید و بعد اتصال را تأیید کنید. اگر پورت SSH تغییر کرده باشد، پورت را نیز مشخص کنید:
ssh -p 2222 username@SERVER_IPبرای آموزش جزئیتر کلیدها و ورود بدون رمز، راهنمای استفاده از SSH Key در سرور مجازی را ببینید.

اگر SSH وصل نشد، فعلاً تنظیمات امنیتی را تغییر ندهید
ابتدا مطمئن شوید IP، نام کاربری و پورت درست هستند. سپس از پنل سرویس وضعیت VPS را بررسی کنید. اگر از Console ارائهدهنده دسترسی دارید، وضعیت سرویس SSH را نیز بررسی کنید:
sudo systemctl status ssh
sudo systemctl status sshdنام سرویس در توزیعها یکسان نیست؛ در Ubuntu/Debian معمولاً ssh و در خانواده RHEL معمولاً sshd استفاده میشود.
مرحله ۲: سیستمعامل و بستهها را بهروزرسانی کنید
یکی از اولین کارها پس از ورود، نصب بهروزرسانیهای موجود است. ابتدا نوع توزیع را ببینید:
cat /etc/os-releaseUbuntu و Debian
sudo apt update
sudo apt upgrade -yAlmaLinux، Rocky Linux، RHEL و CentOS Stream
sudo dnf upgrade --refresh -yدر سیستمهای قدیمیتر ممکن است همچنان دستور yum را ببینید، اما در نسخههای جدید خانواده RHEL، dnf انتخاب اصلی است.
بعد از نصب بعضی بهروزرسانیها، بهخصوص Kernel، ممکن است Reboot لازم باشد. در Ubuntu میتوانید وجود فایل زیر را بررسی کنید:
test -f /var/run/reboot-required && cat /var/run/reboot-requiredاگر راهاندازی مجدد لازم بود:
sudo rebootمرحله ۳: Hostname، منطقه زمانی و همگامسازی ساعت را بررسی کنید
این مرحله در بسیاری از آموزشهای کوتاه نادیده گرفته میشود، اما زمان صحیح برای لاگها، TLS، Cron Jobها، دیتابیس و عیبیابی اهمیت دارد.
وضعیت فعلی را بررسی کنید:
hostnamectl
timedatectl statusبرای تغییر Hostname، نام مناسب خود را جایگزین کنید:
sudo hostnamectl set-hostname app01.example.comبرای دیدن مناطق زمانی موجود:
timedatectl list-timezonesسپس منطقه زمانی موردنظر را تنظیم کنید؛ برای مثال:
sudo timedatectl set-timezone Asia/Tehranدر نسخههای جدید Ubuntu ممکن است همگامسازی زمان توسط Chrony انجام شود. مهمتر از ابزار، این است که خروجی timedatectl status نشان دهد ساعت سیستم درست و همگام است.
مرحله ۴: یک کاربر مدیریتی بسازید و استفاده روزمره از root را کاهش دهید
کار کردن دائمی با بالاترین سطح دسترسی، احتمال آسیب ناشی از یک دستور اشتباه یا سرقت Credential را بالا میبرد. بهتر است یک حساب عادی بسازید و فقط هنگام نیاز با sudo سطح دسترسی را افزایش دهید.
Ubuntu و Debian
sudo adduser deploy
sudo usermod -aG sudo deployAlmaLinux، Rocky Linux و RHEL
sudo useradd -m deploy
sudo passwd deploy
sudo usermod -aG wheel deployنام deploy فقط مثال است. بعد از ساخت کاربر، در یک ترمینال جدید با آن وارد شوید و مطمئن شوید دستور زیر بدون خطا اجرا میشود:
sudo whoamiخروجی باید root باشد. تا زمانی که ورود کاربر جدید را تست نکردهاید، Session اولیه خود را نبندید.
مرحله ۵: SSH Key را فعال و SSH را امنتر کنید
ورود با کلید عمومی در مقایسه با اتکای صرف به رمز عبور، گزینه مناسبتری برای مدیریت سرور است. جفت کلید را روی سیستم شخصی خود ایجاد کنید؛ کلید خصوصی نباید از ارائهدهنده دریافت شود یا در اختیار فرد دیگری قرار گیرد.
۱. ساخت کلید روی سیستم محلی
ssh-keygen -t ed25519برای کلید خصوصی Passphrase انتخاب کنید تا در صورت سرقت فایل کلید، یک لایه محافظتی اضافه داشته باشید.
۲. انتقال کلید عمومی به سرور
ssh-copy-id deploy@SERVER_IPاگر ssh-copy-id روی کلاینت شما موجود نیست، میتوانید محتوای فایل .pub را به ~/.ssh/authorized_keys همان کاربر اضافه کنید.
۳. اتصال را در یک Session جدید تست کنید
ssh deploy@SERVER_IPمهم: قبل از غیرفعال کردن Password Authentication یا ورود root، حتماً مطمئن شوید ورود با کلید در یک پنجره جداگانه کار میکند. Session فعلی را باز نگه دارید تا در صورت خطا قفل نشوید.
۴. تنظیمات SSH را Hardening کنید
فایل اصلی معمولاً /etc/ssh/sshd_config است و در برخی توزیعها فایلهای Drop-in نیز زیر /etc/ssh/sshd_config.d/ استفاده میشوند. برای یک تنظیم ساده میتوانید فایل اصلی را ویرایش کنید:
sudo nano /etc/ssh/sshd_configپس از تست موفق کلید، بسته به سیاست امنیتی خود این گزینهها را بررسی کنید:
PubkeyAuthentication yes
PermitRootLogin no
PasswordAuthentication noقبل از Restart، صحت سینتکس تنظیمات را بررسی کنید:
sudo sshd -tاگر خروجی نداشت، معمولاً یعنی خطای سینتکسی پیدا نشده است. سپس سرویس را مطابق توزیع Restart یا Reload کنید:
# Ubuntu / Debian
sudo systemctl restart ssh
# RHEL / AlmaLinux / Rocky Linux
sudo systemctl restart sshdآیا تغییر پورت SSH ضروری است؟
تغییر پورت پیشفرض میتواند حجم اسکنها و تلاشهای خودکار روی پورت 22 را کم کند، اما بهتنهایی یک کنترل امنیتی قوی محسوب نمیشود. SSH Key، غیرفعال کردن ورود رمزی در صورت امکان، محدود کردن کاربران و فایروال اهمیت بیشتری دارند. اگر پورت را تغییر میدهید، اول پورت جدید را در فایروال باز کنید، بعد تنظیم SSH را تغییر دهید تا دسترسی خودتان قطع نشود.
برای Hardening بیشتر، راهنمای افزایش امنیت سرور مجازی را مطالعه کنید.

مرحله ۶: فایروال را بدون قطع کردن SSH فعال کنید
فایروال باید فقط پورتهایی را باز نگه دارد که واقعاً برای سرویس شما لازماند. قبل از فعال کردن فایروال، اجازه SSH را ثبت کنید. ترتیب اجرای دستورات اهمیت دارد.
Ubuntu و Debian با UFW
sudo ufw allow OpenSSH
sudo ufw status verbose
sudo ufw enable
sudo ufw status verboseاگر وبسرور دارید، پورتهای HTTP و HTTPS را نیز باز کنید:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpاگر SSH روی پورت سفارشی مانند 2222 است، قبل از حذف Rule قبلی پورت جدید را مجاز کنید:
sudo ufw allow 2222/tcpAlmaLinux، Rocky Linux و RHEL با firewalld
sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
sudo firewall-cmd --list-allبرای وبسرور:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reloadبا دستور زیر میتوانید ببینید چه سرویسهایی روی چه پورتهایی در حال Listen هستند:
sudo ss -tulpn
مرحله ۷: سرویسهای موردنیاز را نصب کنید؛ نه همهچیز را
یک VPS خام الزاماً به Apache، Nginx، MySQL، PHP یا Docker نیاز ندارد. نرمافزارها را فقط براساس کاربرد سرور نصب کنید؛ هر سرویس اضافه هم منابع مصرف میکند و هم سطح حمله را افزایش میدهد.
برای میزبانی سایت: Nginx یا Apache
در Ubuntu/Debian برای Nginx:
sudo apt install nginx -y
sudo systemctl enable --now nginx
sudo systemctl status nginxیا اگر پروژه شما Apache میخواهد:
sudo apt install apache2 -y
sudo systemctl enable --now apache2برای آموزش تخصصی Apache میتوانید راهنمای نصب و کانفیگ وبسرور آپاچی در لینوکس را ببینید.
اگر پروژه دیتابیس MySQL نیاز دارد
sudo apt install mysql-server -y
sudo systemctl enable --now mysql
sudo mysql_secure_installationسوالها و رفتار mysql_secure_installation میتواند با نسخه MySQL و روش Authentication متفاوت باشد؛ بنابراین گزینهها را بدون خواندن، صرفاً با زدن Y رد نکنید.
اگر برنامه شما کانتینری است
بهجای نصب دستی تمام Runtimeها میتوانید از Docker استفاده کنید. برای این سناریو راهنمای نصب Docker روی Ubuntu را دنبال کنید.
مرحله ۸: دامنه را به VPS متصل و DNS را درست تنظیم کنید
برای اتصال عمومی دامنه به سرور، معمولاً باید در DNS Provider دامنه یک Record ایجاد کنید؛ ویرایش فایل /etc/hosts روی VPS، جایگزین DNS عمومی نیست و فقط Name Resolution محلی همان سیستم را تحت تأثیر قرار میدهد.
برای یک وبسایت ساده، معمولاً این ساختار کافی است:
| نوع رکورد | نام | مقدار |
|---|---|---|
| A | @ | IPv4 سرور |
| A یا CNAME | www | IPv4 سرور یا دامنه اصلی |
بعد از ذخیره رکوردها، با دستور زیر نتیجه را بررسی کنید:
dig +short example.comاگر با رکوردها، TTL، Resolver و Nameserver آشنا نیستید، راهنمای DNS چیست توضیح کاملتری ارائه میکند.

مرحله ۹: برای سرویس وب HTTPS و گواهی TLS فعال کنید
اگر VPS شما وبسایت یا Web API عمومی ارائه میکند، بعد از اینکه دامنه به IP سرور Resolve شد و پورتهای لازم باز شدند، TLS را فعال کنید. برای Nginx روی Ubuntu/Debian میتوانید از Certbot استفاده کنید:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.comبرای Apache باید Plugin مربوط به Apache را نصب کنید. قبل از درخواست گواهی، مطمئن شوید DNS دامنه به IP همین سرور اشاره میکند و پورت 80/443 از اینترنت قابل دسترسی است.
مرحله ۱۰: بکاپ، Snapshot و مانیتورینگ را از روز اول تنظیم کنید
کانفیگ سرور با اجرای سرویس تمام نمیشود. برای اینکه بعد از خطای انسانی، خرابی نرمافزاری یا Incident امنیتی امکان بازگشت داشته باشید، بکاپ منظم و قابل بازیابی لازم است. Snapshot برای بازگشت سریع مفید است، اما بهتنهایی جای Backup مستقل را نمیگیرد؛ چون ممکن است با همان زیرساخت دچار مشکل شود.
برای برنامهریزی دقیقتر بکاپ، راهنمای بکاپگیری از سرور مجازی را ببینید.
برای یک بررسی روزمره ساده، این دستورات کاربردیاند:
uptime
free -h
df -h
sudo ss -tulpn
systemctl --failedبرای خطاهای سرویسها نیز journalctl مهم است:
sudo journalctl -u nginx --since "1 hour ago"
sudo journalctl -p 3 -xbچکلیست نهایی پس از کانفیگ VPS لینوکس
- سیستمعامل و بستهها بهروز شدهاند.
- Hostname و زمان سیستم درست است.
- برای مدیریت روزمره یک کاربر دارای sudo/wheel ساخته شده است.
- ورود SSH با Key تست شده است.
- قبل از غیرفعال کردن Login قبلی، اتصال جدید در Session جداگانه تست شده است.
- فایروال فعال است و فقط پورتهای لازم باز هستند.
- سرویسهای غیرضروری نصب یا فعال نشدهاند.
- در صورت میزبانی وب، DNS به IP صحیح اشاره میکند.
- برای وبسایت عمومی HTTPS فعال است.
- بکاپ خارج از VPS و روش Restore مشخص است.
- CPU، RAM، Disk، پورتها و سرویسهای Failed قابل مانیتور هستند.

مشکلات رایج هنگام کانفیگ سرور مجازی لینوکس
خطای SSH: Connection refused
این خطا معمولاً یعنی روی IP و پورت موردنظر سرویسی در حال Listen نیست یا اتصال صراحتاً Reject میشود. موارد زیر را از Console سرور بررسی کنید:
sudo systemctl status ssh
sudo systemctl status sshd
sudo ss -lntpهمچنین مطمئن شوید پورت SSH در فایروال سیستم و Firewall/Security Rule پنل ارائهدهنده مسدود نشده باشد.
خطای SSH: Connection timed out
Timeout بیشتر به مشکل مسیر شبکه، IP اشتباه، Rule فایروال یا عدم دسترسی شبکه اشاره میکند. اگر Ping پاسخ نمیدهد لزوماً به معنی خاموش بودن سرور نیست، چون ICMP ممکن است مسدود باشد. اتصال به پورت SSH و Console ارائهدهنده معیار دقیقتری برای عیبیابی هستند.
خطای Permission denied (publickey)
ابتدا Username و کلید درست را بررسی کنید. سپس Permissionهای SSH کاربر را اصلاح کنید:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keysاگر کلید مشخصی دارید:
ssh -i /path/to/private_key username@SERVER_IPبعد از تغییر Firewall یا SSH دیگر نمیتوانم وارد سرور شوم
از Console/VNC پنل ارائهدهنده وارد شوید، Rule فایروال و فایل SSH را بررسی کنید و در صورت نیاز تغییرات را برگردانید. به همین دلیل توصیه کردیم هنگام تغییر SSH، Session قبلی را باز نگه دارید و اتصال جدید را جداگانه تست کنید.
سرویس اجرا نمیشود
وضعیت سرویس و لاگ آن را بررسی کنید:
sudo systemctl status SERVICE_NAME
sudo journalctl -u SERVICE_NAME -n 100 --no-pagerاگر فایل کانفیگ سرویس Syntax Check دارد، قبل از Restart آن را اجرا کنید؛ برای مثال Nginx:
sudo nginx -tسرور کند شده یا فضای دیسک پر است
free -h
df -h
du -xhd1 /var 2>/dev/null | sort -hپر شدن Disk میتواند باعث Failure سرویسها، ناتوانی در نوشتن Log یا حتی اختلال دیتابیس شود؛ بنابراین فقط CPU و RAM را مانیتور نکنید.
آیا تمام VPSهای لینوکس به همین کانفیگ نیاز دارند؟
خیر. این مقاله یک Baseline عمومی برای VPS مدیریتنشده است. تنظیمات نهایی باید با کاربرد سرور هماهنگ شوند. سرور وب، Database Server، VPN Gateway، Mail Server، Docker Host یا محیط CI/CD هرکدام پورتها، Policyهای امنیتی و نرمافزارهای متفاوتی نیاز دارند. همچنین در سرویس مدیریتشده بخشی از مسئولیتها ممکن است بر عهده ارائهدهنده باشد؛ محدوده مدیریت را از SLA یا مستندات همان سرویس بررسی کنید.
جمعبندی؛ VPS لینوکس را از «قابل اتصال» به «آماده استفاده» برسانید
برای کانفیگ سرور مجازی لینوکس بهتر است بهجای مجموعهای از دستورات پراکنده، یک مسیر مشخص داشته باشید: ابتدا اتصال SSH و بهروزرسانی، سپس مدیریت کاربر و امنیت، بعد فایروال و سرویسهای لازم و در نهایت DNS، TLS، بکاپ و مانیتورینگ. مهمتر از تعداد تنظیمات این است که هر تغییر را مرحلهای انجام دهید، قبل از بستن Session فعلی دسترسی جدید را تست کنید و برای تغییرات حساس راه بازگشت داشته باشید.
اگر قصد تهیه VPS با سیستمعامل لینوکس دارید، میتوانید مشخصات و موقعیتهای موجود را در صفحه خرید سرور مجازی لینوکس بررسی کنید.
سوالات متداول درباره کانفیگ سرور مجازی لینوکس
کانفیگ سرور مجازی لینوکس چیست؟
کانفیگ VPS لینوکس یعنی انجام تنظیمات سیستمعامل، کاربران، SSH، فایروال، شبکه و سرویسها برای آمادهسازی سرور جهت کاربرد واقعی و مدیریت امن آن.
بعد از خرید VPS لینوکس اولین کار چیست؟
بعد از بررسی اطلاعات ورود، ابتدا با SSH متصل شوید و سیستمعامل و بستهها را بهروز کنید. سپس کاربر مدیریتی، SSH Key و فایروال را تنظیم کنید و فقط بعد از آن سرویسهای موردنیاز پروژه را نصب کنید.
آیا برای کانفیگ VPS لینوکس باید همیشه با root وارد شویم؟
خیر. بعضی Imageها حتی ورود مستقیم root را بهصورت پیشفرض غیرفعال میکنند. برای مدیریت روزمره بهتر است از کاربر معمولی دارای دسترسی sudo یا wheel استفاده شود و سطح دسترسی فقط هنگام نیاز افزایش پیدا کند.
برای کانفیگ Ubuntu VPS از iptables استفاده کنیم یا UFW؟
UFW رابط سادهتری برای مدیریت Netfilter در Ubuntu است و برای بسیاری از سناریوهای معمول VPS مناسبتر است. در محیطهای پیچیده ممکن است nftables یا ابزارهای دیگری استفاده شوند. نکته مهم این است که قبل از فعالسازی Firewall، دسترسی SSH خود را مجاز کنید.
آیا تغییر پورت SSH امنیت VPS را تضمین میکند؟
خیر. تغییر پورت بیشتر اسکنهای خودکار و نویز لاگ را کاهش میدهد. استفاده از SSH Key، مدیریت درست کاربران، محدودکردن ورود root/رمز عبور در صورت امکان و Firewall کنترلهای مهمتری هستند.
چگونه دامنه را به سرور مجازی لینوکس وصل کنیم؟
در DNS Provider دامنه، یک A Record برای دامنه اصلی ایجاد کنید و آن را به IPv4 سرور متصل کنید. در صورت استفاده از IPv6 میتوانید AAAA Record نیز بسازید. ویرایش /etc/hosts روی VPS جایگزین DNS عمومی دامنه نیست.
برای کانفیگ VPS حتماً باید MySQL، Nginx و PHP نصب شوند؟
خیر. این نرمافزارها فقط زمانی نصب میشوند که پروژه به آنها نیاز داشته باشد. نصب سرویسهای غیرضروری منابع بیشتری مصرف میکند و سطح حمله سرور را افزایش میدهد.




