- چرا باید یک سرور Factorio روی سرور لینوکسی راهاندازی کنم؟
- چرا VPS یا سرور اختصاصی برای Factorio؟
- پیشنیازها و دانلود Factorio Headless
- راهاندازی ابتدایی و اجرای سرور
- ایجاد سرویس systemd برای راهاندازی خودکار
- کانفیگ فایل server-settings.json (نکات مهم)
- اجرای Factorio در Docker (روش جایگزین)
- امنیت و فایروال
- بکاپگیری خودکار و نگهداری ذخیرهها
- بهینهسازی برای پینگ پایین و عملکرد بهتر
- مانیتورینگ و لاگها
- نکات مربوط به مودها و بهروزرسانی
- مثالهای عملی و بررسی مشکلات متداول
- استفاده از خدمات شرکت برای بهترین تجربه
- جمعبندی و پیشنهادات نهایی
- Sıkça Sorulan Sorular
چرا باید یک سرور Factorio روی سرور لینوکسی راهاندازی کنم؟
در این راهنما بهصورت گامبهگام و فنی نحوه راهاندازی سرور بازی آنلاین Factorio روی سرور لینوکسی (VPS یا سرور اختصاصی) توضیح داده شده است. این مقاله برای مدیران سرور، گیمرها و تیمهای بازیسازی تهیه شده تا یک سرور پایدار، کمتاخیر و امن برای بازیهای چندنفره ایجاد کنند.
چرا VPS یا سرور اختصاصی برای Factorio؟
Factorio در سرورهای با بازیکنان زیاد یا مودهای سنگین به CPU تکهستهای قوی، حافظه کافی و I/O سریع نیاز دارد. انتخاب بین VPS و سرور اختصاصی بسته به اندازه بازیکنان و بودجه متفاوت است:
- گروه کوچک (تا 8 بازیکن): VPS با CPU سریع، 2 vCPU و 4–8GB RAM کافی است.
- گروه متوسط (8–32 بازیکن): 4 vCPU، 8–16GB RAM، NVMe توصیه میشود.
- سرور بزرگ (>32 بازیکن یا مودهای سنگین): سرور اختصاصی با 6–12 هسته با کلاک بالا، 32GB+ رم و NVMe مناسب است.
برای کمترین پینگ، لوکیشن مناسب (از بین ۸۵+ لوکیشن جهانی) اهمیت دارد: اروپا (فرانکفورت، آمستردام)، شرق آمریکا (نیوجرسی)، غرب آمریکا (کالیفرنیا)، آسیا (سنگاپور، توکیو)، استرالیا (سیدنی) و برزیل (سائوپائولو).
پیشنیازها و دانلود Factorio Headless
پیشنیازها برای سرور لینوکسی:
- توزیع لینوکس: Ubuntu 20.04/22.04 یا Debian 11+ Tavsiye edilen.
- یک کاربر غیر روت برای اجرای سرور.
- دسترسی SSH و امکان نصب بستهها.
نمونه دستورات اولیه (Ubuntu):
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget unzip tar libstdc++6
sudo adduser --disabled-login --gecos "Factorio Server" factorio
sudo usermod -aG sudo factorioدانلود نسخه headless:
- از سایت رسمی Factorio نسخه headless را دانلود کنید (نسخه مربوطه را بررسی کنید).
- مثال (URL را با لینک رسمی جایگزین کنید):
sudo -u factorio mkdir -p /opt/factorio
cd /opt/factorio
sudo -u factorio wget https://www.factorio.com/get-download/latest/headless/linux64 -O factorio_headless.tar.xz
sudo -u factorio tar -xf factorio_headless.tar.xzراهاندازی ابتدایی و اجرای سرور
اجرای سرور با یک save جدید یا بارگذاری save موجود:
شروع سرور با یک سیو جدید:
sudo -u factorio /opt/factorio/bin/x64/factorio --start-server /opt/factorio/saves/my-save.zip --server-settings /opt/factorio/config/server-settings.json --port 34197بارگذاری یک save موجود (load latest):
sudo -u factorio /opt/factorio/bin/x64/factorio --start-server-load-latestپورتها:
- پورت بازی: UDP 34197 (پیشفرض)
- RCON: در صورت فعالسازی میتوان پورت TCP دلخواه تعیین کرد (مثلاً 27015). تنظیمات در فایل
server-settings.jsonYerleştirilmiştir.
ایجاد سرویس systemd برای راهاندازی خودکار
یک فایل سرویس برای راهاندازی و مدیریت خودکار سرور بسازید:
sudo tee /etc/systemd/system/factorio.service > /dev/null <<'EOF'
[Unit]
Description=Factorio Headless Server
After=network.target
[Service]
User=factorio
Group=factorio
Type=simple
WorkingDirectory=/opt/factorio
ExecStart=/opt/factorio/bin/x64/factorio --start-server /opt/factorio/saves/my-save.zip --server-settings /opt/factorio/config/server-settings.json --port 34197
Restart=on-failure
RestartSec=10
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
EOFHizmeti etkinleştirme ve çalıştırma:
sudo systemctl daemon-reload
sudo systemctl enable --now factorio.service
sudo journalctl -u factorio -fکانفیگ فایل server-settings.json (نکات مهم)
در مسیر /opt/factorio/config/server-settings.json تنظیمات زیر را بررسی یا ویرایش کنید:
- name: نام سرور
- description: توضیح برای بازیکنان
- max_players: حداکثر بازیکنان
- game_password: در صورت دلخواه برای ورود (برای سرورهای خصوصی پیشنهاد میشود)
- require_user_verification: true برای اعتبارسنجی Steam (در صورت نیاز)
نمونه ساده:
{
"name": "My Factorio Server",
"description": "سرور رسمی جامعه",
"max_players": 32,
"game_password": "securepassword",
"require_user_verification": true
}اجرای Factorio در Docker (روش جایگزین)
اگر ترجیح میدهید از Docker استفاده کنید، نمونه زیر یک راه سریع و ایزوله برای اجرا فراهم میکند:
docker run -d --name=factorio \
-p 34197:34197/udp \
-p 27015:27015/tcp \
-v /host/factorio/saves:/factorio/saves \
-v /host/factorio/config:/factorio/config \
--restart unless-stopped \
--user 1000:1000 \
factoriotools/factorio:latestAvantajları: ایزولاسیون، راحتی در آپدیت و بکاپگیری.
امنیت و فایروال
توصیههای امنیتی پایه برای سرور بازی:
1. محدود کردن دسترسی SSH:
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl reload sshd2. نمونه UFW برای باز کردن فقط پورتهای لازم:
sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
# اجازه SSH (اگر پورت 22 یا پورت دلخواه)
sudo ufw allow 22/tcp
# اجازه پورت بازی (UDP)
sudo ufw allow 34197/udp
# اگر RCON فعال است:
sudo ufw allow 27015/tcp
sudo ufw enable3. نصب Fail2Ban برای محافظت از SSH:
sudo apt install fail2ban -yبکاپگیری خودکار و نگهداری ذخیرهها
نمونه اسکریپت بکاپ ساده که با cron یا systemd timer قابل اجراست:
#!/bin/bash
SAVE_DIR=/opt/factorio/saves
BACKUP_DIR=/var/backups/factorio
mkdir -p $BACKUP_DIR
TIMESTAMP=$(date +%F_%T)
cp $SAVE_DIR/*.zip $BACKUP_DIR/factorio_save_$TIMESTAMP.zip
# نگهداری آخرین 7 بکاپ
ls -1t $BACKUP_DIR | tail -n +8 | xargs -I{} rm -f $BACKUP_DIR/{}اضافه کردن به crontab برای اجرای ساعتی:
0 * * * * /usr/local/bin/factorio_backup.shپیشنهاد: بکاپها را به Object Storage (S3 یا سازگار) یا سرور دیگری سینک کنید تا دادهها در صورت بروز مشکل حفظ شوند.
بهینهسازی برای پینگ پایین و عملکرد بهتر
- انتخاب لوکیشن: نزدیکترین لوکیشن جغرافیایی به بازیکنان یا لوکیشنی در مرکز جمعیت بازیکنان انتخاب کنید.
- CPU با کلاک بالا: شبیهسازی بازی Factorio تا حد زیادی به تکهسته وابسته است؛ انتخاب سروری با فرکانس تکهسته بالا (3.5GHz+) ترجیح داده میشود.
- حافظه و دیسک: SSD/NVMe برای I/O سریع هنگام ذخیره و بارگذاری جهان لازم است.
- شبکه و QoS: اطمینان از پهنای باند کافی (بهخصوص آپلود) و در صورت نیاز استفاده از شبکه low-latency و BGP.
مانیتورینگ و لاگها
برای مشاهده لاگها و بررسی وضعیت سرور:
sudo journalctl -u factorio -f
# یا اگر لاگ در فایل است:
tail -f /opt/factorio/factorio-current.logابزارهای پیشنهادی: Netdata, Prometheus + Grafana یا ابزارهای سادهتر مثل htop Ve nload برای مشاهده مصرف منابع.
نکات مربوط به مودها و بهروزرسانی
- تست مودها: قبل از نصب مودها روی سرور اصلی، آنها را در یک محیط تست امتحان کنید؛ مودها میتوانند باعث کرش یا کندی شوند.
- هماهنگی ورژنها: نسخه کلاینتها و سرور باید همخوانی داشته باشند.
- روش آپدیت: هنگام آپدیت سرور حتماً از save بکاپ بگیرید، سرویس را متوقف کنید، آپدیت را انجام دهید و سپس سرور را مجدداً راهاندازی کنید.
مثالهای عملی و بررسی مشکلات متداول
مشکل: بازیکنان نمیتوانند متصل شوند
- بررسی فایروال و پورتها:
ufw durumu، بررسی پورتهای باز باss. - بررسی اینکه سرور در حال گوش دادن روی پورت UDP 34197 است:
- بررسی لاگها برای ارور یا پیغامهای مرتبط.
sudo ss -unlp | grep 34197مشکل: لگ سرور با افزایش بازیکن
- چک کردن فرکانس CPU، بار تکهستهای، مصرف RAM و I/O.
- در صورت نیاز ارتقا به نمونه با هسته قویتر یا توزیع بازیکنان روی چند سرور.
استفاده از خدمات شرکت برای بهترین تجربه
در صورت دسترسی به خدماتی مانند 85'ten fazla küresel lokasyon, oyun için VPS, سرور ضد DDoS Ve سرور ابری با NVMe میتوانید تجربه بازی را بهطور قابلتوجهی بهبود دهید.
موارد قابل استفاده:
- انتخاب لوکیشن نزدیک به بازیکنان برای کاهش پینگ.
- نمونههایی با پردازندههای کلاک بالا و NVMe برای عملکرد بهتر.
- استفاده از سرور ضد-DDoS برای حفاظت در برابر حملات UDP.
- شبکه و BGP در صورت نیاز به روتینگ پیشرفته یا Anycast.
- CDN برای محتواهای ایستا (مودها، تصاویر) — توجه کنید CDN برای UDP بازی بلادرنگ کاربردی نیست.
جمعبندی و پیشنهادات نهایی
راهاندازی سرور Factorio نیازمند توجه به انتخاب سختافزار (CPU تکهستهای قوی، NVMe)، لوکیشن مناسب، تنظیمات امنیتی و پشتیبانگیری منظم است.
خلاصه پیشنهادها برای شروع سریع:
- یک VPS با CPU قوی و NVMe انتخاب کنید.
- نسخه headless را نصب و سرویس systemd را طبق راهنما تنظیم کنید.
- فایروال و بکاپگیری را خودکار کنید.
- لوکیشن سرور را براساس بازیکنان انتخاب کنید و از سرویس ضد-DDoS در صورت ضرورت استفاده نمایید.
برای اطلاعات درباره پلنها و دریافت مشاوره میتوانید به بخش پشتیبانی مراجعه کنید.









