Factorioオンラインゲームサーバーの設定に関するチュートリアル
در این آموزش به نحوه راه اندازی سرور بازی Factorio پرداخته شده و نکات فنی و اجرایی برای بهترین عملکرد ارائه می‌شود.

Factorioオンラインゲームサーバーの設定に関するチュートリアル

この記事は、Factorioオンラインゲームサーバーの設定に関する包括的なガイドです。技術面と運用面の両方の手順を網羅し、マルチプレイヤーゲーム体験のための安定した安全なサーバーを構築するのに役立ちます。場所の選択、必要なソフトウェアのインストール、セキュリティ設定やバックアップまで、この記事ではすべてを網羅しています。.
0 株式
0
0
0
0

چرا باید یک سرور 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+ 推奨。.
  • یک کاربر غیر روت برای اجرای سرور.
  • دسترسی 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:

  1. از سایت رسمی Factorio نسخه headless را دانلود کنید (نسخه مربوطه را بررسی کنید).
  2. مثال (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.json 置いてあります。.

ایجاد سرویس 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:latest

利点: ایزولاسیون، راحتی در آپدیت و بکاپ‌گیری.

امنیت و فایروال

توصیه‌های امنیتی پایه برای سرور بازی:

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 sshd

2. نمونه 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 enable

3. نصب 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

ابزارهای پیشنهادی: ネットデータプロメテウス + グラファナ یا ابزارهای ساده‌تر مثل hトップ そして nload برای مشاهده مصرف منابع.

نکات مربوط به مودها و به‌روزرسانی

  • تست مودها: قبل از نصب مودها روی سرور اصلی، آن‌ها را در یک محیط تست امتحان کنید؛ مودها می‌توانند باعث کرش یا کندی شوند.
  • هماهنگی ورژن‌ها: نسخه کلاینت‌ها و سرور باید همخوانی داشته باشند.
  • روش آپدیت: هنگام آپدیت سرور حتماً از save بکاپ بگیرید، سرویس را متوقف کنید، آپدیت را انجام دهید و سپس سرور را مجدداً راه‌اندازی کنید.

مثال‌های عملی و بررسی مشکلات متداول

مشکل: بازیکنان نمی‌توانند متصل شوند

  • بررسی فایروال و پورت‌ها: ufwステータス، بررسی پورت‌های باز با ss.
  • بررسی اینکه سرور در حال گوش دادن روی پورت UDP 34197 است:
  • sudo ss -unlp | grep 34197
  • بررسی لاگ‌ها برای ارور یا پیغام‌های مرتبط.

مشکل: لگ سرور با افزایش بازیکن

  • چک کردن فرکانس CPU، بار تک‌هسته‌ای، مصرف RAM و I/O.
  • در صورت نیاز ارتقا به نمونه با هسته قوی‌تر یا توزیع بازیکنان روی چند سرور.

استفاده از خدمات شرکت برای بهترین تجربه

در صورت دسترسی به خدماتی مانند ۸۵+ لوکیشن جهانیゲーム用VPSسرور ضد DDoS そして سرور ابری با NVMe می‌توانید تجربه بازی را به‌طور قابل‌توجهی بهبود دهید.

موارد قابل استفاده:

  • انتخاب لوکیشن نزدیک به بازیکنان برای کاهش پینگ.
  • نمونه‌هایی با پردازنده‌های کلاک بالا و NVMe برای عملکرد بهتر.
  • استفاده از سرور ضد-DDoS برای حفاظت در برابر حملات UDP.
  • شبکه و BGP در صورت نیاز به روتینگ پیشرفته یا Anycast.
  • CDN برای محتواهای ایستا (مودها، تصاویر) — توجه کنید CDN برای UDP بازی بلادرنگ کاربردی نیست.

جمع‌بندی و پیشنهادات نهایی

راه‌اندازی سرور Factorio نیازمند توجه به انتخاب سخت‌افزار (CPU تک‌هسته‌ای قوی، NVMe)، لوکیشن مناسب، تنظیمات امنیتی و پشتیبان‌گیری منظم است.

خلاصه پیشنهادها برای شروع سریع:

  1. یک VPS با CPU قوی و NVMe انتخاب کنید.
  2. نسخه headless را نصب و سرویس systemd را طبق راهنما تنظیم کنید.
  3. فایروال و بکاپ‌گیری را خودکار کنید.
  4. لوکیشن سرور را براساس بازیکنان انتخاب کنید و از سرویس ضد-DDoS در صورت ضرورت استفاده نمایید.

برای اطلاعات درباره پلن‌ها و دریافت مشاوره می‌توانید به بخش پشتیبانی مراجعه کنید.

よくある質問

あなたも気に入るかもしれない