- چرا باید یک سرور Factorio روی سرور لینوکسی راهاندازی کنم؟
- چرا VPS یا سرور اختصاصی برای Factorio؟
- پیشنیازها و دانلود Factorio Headless
- راهاندازی ابتدایی و اجرای سرور
- ایجاد سرویس systemd برای راهاندازی خودکار
- کانفیگ فایل server-settings.json (نکات مهم)
- اجرای Factorio در Docker (روش جایگزین)
- امنیت و فایروال
- بکاپگیری خودکار و نگهداری ذخیرهها
- بهینهسازی برای پینگ پایین و عملکرد بهتر
- مانیتورینگ و لاگها
- نکات مربوط به مودها و بهروزرسانی
- مثالهای عملی و بررسی مشکلات متداول
- استفاده از خدمات شرکت برای بهترین تجربه
- جمعبندی و پیشنهادات نهایی
- Preguntas frecuentes
چرا باید یک سرور 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+ Recomendado.
- یک کاربر غیر روت برای اجرای سرور.
- دسترسی 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.jsonEsta colocado.
ایجاد سرویس 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
EOFفعالسازی و اجرای سرویس:
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:latestVentajas: ایزولاسیون، راحتی در آپدیت و بکاپگیری.
امنیت و فایروال
توصیههای امنیتی پایه برای سرور بازی:
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ابزارهای پیشنهادی: Datos de red, Prometeo + Grafana یا ابزارهای سادهتر مثل htop y nload برای مشاهده مصرف منابع.
نکات مربوط به مودها و بهروزرسانی
- تست مودها: قبل از نصب مودها روی سرور اصلی، آنها را در یک محیط تست امتحان کنید؛ مودها میتوانند باعث کرش یا کندی شوند.
- هماهنگی ورژنها: نسخه کلاینتها و سرور باید همخوانی داشته باشند.
- روش آپدیت: هنگام آپدیت سرور حتماً از save بکاپ بگیرید، سرویس را متوقف کنید، آپدیت را انجام دهید و سپس سرور را مجدداً راهاندازی کنید.
مثالهای عملی و بررسی مشکلات متداول
مشکل: بازیکنان نمیتوانند متصل شوند
- بررسی فایروال و پورتها:
estado de ufw، بررسی پورتهای باز باss. - بررسی اینکه سرور در حال گوش دادن روی پورت UDP 34197 است:
- بررسی لاگها برای ارور یا پیغامهای مرتبط.
sudo ss -unlp | grep 34197مشکل: لگ سرور با افزایش بازیکن
- چک کردن فرکانس CPU، بار تکهستهای، مصرف RAM و I/O.
- در صورت نیاز ارتقا به نمونه با هسته قویتر یا توزیع بازیکنان روی چند سرور.
استفاده از خدمات شرکت برای بهترین تجربه
در صورت دسترسی به خدماتی مانند ۸۵+ لوکیشن جهانی, VPS para juegos, سرور ضد DDoS y سرور ابری با NVMe میتوانید تجربه بازی را بهطور قابلتوجهی بهبود دهید.
موارد قابل استفاده:
- انتخاب لوکیشن نزدیک به بازیکنان برای کاهش پینگ.
- نمونههایی با پردازندههای کلاک بالا و NVMe برای عملکرد بهتر.
- استفاده از سرور ضد-DDoS برای حفاظت در برابر حملات UDP.
- شبکه و BGP در صورت نیاز به روتینگ پیشرفته یا Anycast.
- CDN برای محتواهای ایستا (مودها، تصاویر) — توجه کنید CDN برای UDP بازی بلادرنگ کاربردی نیست.
جمعبندی و پیشنهادات نهایی
راهاندازی سرور Factorio نیازمند توجه به انتخاب سختافزار (CPU تکهستهای قوی، NVMe)، لوکیشن مناسب، تنظیمات امنیتی و پشتیبانگیری منظم است.
خلاصه پیشنهادها برای شروع سریع:
- یک VPS با CPU قوی و NVMe انتخاب کنید.
- نسخه headless را نصب و سرویس systemd را طبق راهنما تنظیم کنید.
- فایروال و بکاپگیری را خودکار کنید.
- لوکیشن سرور را براساس بازیکنان انتخاب کنید و از سرویس ضد-DDoS در صورت ضرورت استفاده نمایید.
برای اطلاعات درباره پلنها و دریافت مشاوره میتوانید به بخش پشتیبانی مراجعه کنید.









