مجله ایرانیکاسرورآموزش سرور، هاست، وردپرس و شبکه
آموزشی

ساخت سرور Arma Reforger؛ آموزش نصب Mods، تنظیم RCON و رفع Connection Timeout

ساخت سرور Arma Reforger؛ آموزش نصب Mods، تنظیم RCON و رفع Connection Timeout Arma Reforger Server یک سرور اختصاصی برای اجرای بازی نظامی و تاکتیکی Arma Reforger است. با راه‌اندازی آن می‌توانید یک میدان…

ساخت سرور Arma Reforger؛ آموزش نصب Mods، تنظیم RCON و رفع Connection Timeout
خلاصه سریع این آموزش

ساخت سرور Arma Reforger؛ آموزش نصب Mods، تنظیم RCON و رفع Connection Timeout Arma Reforger Server یک سرور اختصاصی برای اجرای بازی نظامی و تاکتیکی Arma Reforger است. با راه‌اندازی…

۲۴ دقیقه مطالعه ۰ دیدگاه ۱۲ آبان ۱۴۰۵ آخرین به‌روزرسانی

فهرست مطالب

ساخت سرور Arma Reforger؛ آموزش نصب Mods، تنظیم RCON و رفع Connection Timeout

Arma Reforger Server یک سرور اختصاصی برای اجرای بازی نظامی و تاکتیکی Arma Reforger است. با راه‌اندازی آن می‌توانید یک میدان نبرد آنلاین برای دوستان، گروه‌های نظامی مجازی یا جامعه بازیکنان ایجاد کنید و کنترل تنظیمات بازی، سناریوها، Modها و دسترسی مدیران را در اختیار داشته باشید.

بازی Arma Reforger با موتور Enfusion ساخته شده و از سرور اختصاصی، محتوای Workshop و قابلیت‌های چندنفره پشتیبانی می‌کند. برای اجرای سرور نیازی به باز کردن نسخه گرافیکی بازی روی VPS نیست؛ کافی است فایل‌های Dedicated Server را دریافت و تنظیمات مناسب را اعمال کنید.

با این حال، ساخت سرور فقط به نصب فایل‌ها محدود نمی‌شود. یکی از مشکلات رایج، خطای Connection Timeout هنگام اتصال بازیکنان است. این مشکل می‌تواند از بسته بودن پورت UDP، تنظیم نادرست آدرس عمومی، اختلال شبکه، ناسازگاری نسخه‌ها یا بارگذاری نشدن Modهای موردنیاز ایجاد شود.

در این راهنما نصب سرور Arma Reforger روی ویندوز و لینوکس، تنظیم فایل JSON، مدیریت Workshop Mods، راه‌اندازی RCON، تنظیم Firewall، بررسی Logها، رفع خطای اتصال و آپدیت ایمن سرور را مرحله‌به‌مرحله آموزش می‌دهیم.

Arma Reforger Dedicated Server چیست و چه کاربردی دارد؟

Arma Reforger یک بازی شبیه‌سازی نظامی است که روی مبارزات تیمی، هماهنگی نیروها، استفاده از تجهیزات نظامی و اجرای مأموریت‌های چندنفره تمرکز دارد.

در حالت Player-Hosted، یکی از بازیکنان میزبان جلسه بازی می‌شود. اما در Dedicated Server، یک برنامه مستقل روی سرور اجرا می‌شود و پردازش رویدادهای بازی و ارتباط بازیکنان را مدیریت می‌کند.

مزایای راه‌اندازی سرور اختصاصی عبارت‌اند از:

  • اجرای مداوم سرور بدون نیاز به حضور میزبان در بازی.
  • ساخت سرور عمومی یا خصوصی.
  • انتخاب Scenario و حالت بازی.
  • افزودن Modهای رسمی و محتوای کاربران از Workshop.
  • مدیریت بازیکنان و دسترسی ادمین‌ها.
  • فعال‌سازی RCON برای مدیریت از راه دور.
  • تنظیم تعداد بازیکنان و پلتفرم‌های مجاز.
  • مشاهده Logها و بررسی مشکلات اتصال.
  • کنترل مصرف منابع با محدود کردن FPS سرور.

این سرور برای گروه‌های کوچک دوستانه و همچنین جوامع بزرگ‌تر علاقه‌مند به مأموریت‌های نظامی و سناریوهای سفارشی کاربرد دارد.

منابع سخت‌افزاری موردنیاز Arma Reforger Server

مصرف منابع Arma Reforger به تعداد بازیکنان، نوع Scenario، تعداد هوش مصنوعی، وسایل نقلیه، Modهای فعال و وسعت درگیری‌ها بستگی دارد.

برای مثال، یک سرور با ۱۰ بازیکن و سناریوی ساده ممکن است منابع کمتری نسبت به سروری با ۴۰ بازیکن، هوش مصنوعی گسترده و چندین Mod سنگین نیاز داشته باشد.

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

نوع سرور RAM پیشنهادی CPU پیشنهادی کاربرد
آزمایشی ۶ تا ۸ گیگابایت ۲ تا ۴ vCPU نصب و تست اتصال
خصوصی کوچک ۸ تا ۱۲ گیگابایت ۴ vCPU سریع بازی دوستانه و Modهای سبک
سرور متوسط ۱۶ تا ۲۴ گیگابایت ۶ vCPU سریع سناریوهای فعال و بازیکنان بیشتر
سرور عمومی سنگین ۳۲ گیگابایت یا بیشتر ۸ vCPU یا بیشتر سناریوهای بزرگ و Modهای متعدد

این جدول پیشنهاد اولیه برای انتخاب VPS است و حداقل سخت‌افزاری رسمی یا تضمین ظرفیت مشخص محسوب نمی‌شود. کیفیت CPU، عملکرد تک‌هسته‌ای و منابع واقعی اختصاص‌یافته به ماشین مجازی نیز اهمیت دارند.

چرا CPU سریع مهم است؟

Arma Reforger علاوه بر ارتباط بازیکنان، باید وضعیت موجودات، وسایل نقلیه، هوش مصنوعی و رویدادهای بازی را پردازش کند. اگر پردازنده نتواند محاسبات را به‌موقع انجام دهد، ممکن است کاهش FPS سرور، تأخیر در واکنش‌ها یا ناپایداری اتصال ایجاد شود.

افزایش تعداد هسته‌ها همیشه به اندازه افزایش سرعت پردازش مؤثر نیست. بهتر است CPU و RAM را با پایش مصرف واقعی انتخاب کنید.

SSD یا NVMe چه تأثیری دارد؟

برای نصب فایل‌های بازی، دانلود Modها و نگهداری Logها استفاده از SSD یا NVMe پیشنهاد می‌شود. همچنین فضای کافی برای نسخه‌های جدید Workshop و Backupهای سرور در نظر بگیرید.

نسخه Stable و Experimental سرور Arma Reforger

پیش از نصب باید مشخص کنید که قصد استفاده از نسخه پایدار بازی را دارید یا نسخه آزمایشی.

نسخه Steam App ID کاربرد
Stable Dedicated Server 1874900 سرورهای معمولی و عمومی
Experimental Dedicated Server 1890870 آزمایش ویژگی‌ها و نسخه‌های در حال توسعه

برای راه‌اندازی سرور عمومی، نسخه Stable انتخاب مناسب‌تری است. نسخه Experimental ممکن است تغییرات آزمایشی داشته باشد و با Client یا Modهای نسخه پایدار سازگار نباشد.

در این مقاله از App ID شماره 1874900 استفاده می‌کنیم.

آموزش نصب Arma Reforger Server روی Windows Server

مرحله اول: دانلود SteamCMD

SteamCMD را از راهنمای رسمی Valve دریافت کنید و در مسیر زیر استخراج کنید:

C:\SteamCMD\

مرحله دوم: نصب Dedicated Server

Command Prompt را باز کنید و دستور زیر را اجرا کنید:

C:\SteamCMD\steamcmd.exe +force_install_dir C:\ArmaReforgerServer +login anonymous +app_update 1874900 validate +quit

با اجرای این دستور، فایل‌های نسخه پایدار Dedicated Server دانلود و بررسی می‌شوند.

در پایان، پوشه نصب را باز کنید و وجود فایل اجرایی زیر را بررسی کنید:

C:\ArmaReforgerServer\ArmaReforgerServer.exe

مرحله سوم: ساخت پوشه تنظیمات

در پوشه نصب، یک مسیر برای فایل JSON و یک مسیر مستقل برای داده‌ها و Logها در نظر بگیرید:

mkdir C:\ArmaReforgerServer\Configs

mkdir C:\ArmaReforgerData

فایل تنظیمات را با نام config.json داخل پوشه Configs ایجاد کنید.

مرحله چهارم: اجرای سرور

پس از ساخت فایل JSON مطابق بخش بعدی، دستور زیر را اجرا کنید:

C:\ArmaReforgerServer\ArmaReforgerServer.exe -config "C:\ArmaReforgerServer\Configs\config.json" -profile "C:\ArmaReforgerData" -maxFPS 60

پارامتر -config مسیر تنظیمات، پارامتر -profile محل نگهداری داده‌های اجرایی و -maxFPS سقف FPS سرور را مشخص می‌کند.

طبق توصیه Bohemia Interactive، محدود کردن FPS سرور به جلوگیری از مصرف بی‌رویه منابع کمک می‌کند.

آموزش نصب Arma Reforger Dedicated Server روی Ubuntu

برای اجرای سرور روی Linux نیز می‌توان از SteamCMD استفاده کرد. در این آموزش فایل‌های برنامه را در پوشه Home یک کاربر مستقل قرار می‌دهیم.

مرحله اول: نصب ابزارهای اولیه

sudo apt update

sudo apt install -y curl wget ca-certificates jq

SteamCMD را مطابق مستندات رسمی Valve نصب کنید. در Ubuntu ممکن است برای دریافت بسته steamcmd به فعال‌سازی مخزن multiverse و معماری i386 نیاز داشته باشید.

پس از نصب، مسیر اجرایی SteamCMD را بررسی کنید:

command -v steamcmd

مرحله دوم: ساخت کاربر مخصوص بازی

بهتر است Dedicated Server را با کاربر root اجرا نکنید.

sudo useradd -m -s /bin/bash reforger

sudo mkdir -p /home/reforger/server
sudo mkdir -p /home/reforger/profile
sudo mkdir -p /home/reforger/config

sudo chown -R reforger:reforger /home/reforger

اگر کاربر reforger از قبل ساخته شده است، دستور useradd را دوباره اجرا نکنید.

مرحله سوم: دانلود فایل‌های سرور

با کاربر مخصوص بازی، SteamCMD را اجرا کنید:

sudo -u reforger -H steamcmd +force_install_dir /home/reforger/server +login anonymous +app_update 1874900 validate +quit

پس از اتمام دانلود، فایل اجرایی را بررسی کنید:

ls -lah /home/reforger/server/ArmaReforgerServer

مرحله چهارم: اجرای آزمایشی

پس از ساخت فایل config.json، برای تست اولیه دستور زیر را اجرا کنید:

sudo -u reforger -H bash -c 'cd /home/reforger/server && ./ArmaReforgerServer -config /home/reforger/config/config.json -profile /home/reforger/profile -maxFPS 60'

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

مرحله پنجم: ساخت سرویس systemd

برای اجرای خودکار سرور، فایل سرویس ایجاد کنید:

sudo nano /etc/systemd/system/arma-reforger.service

محتوای زیر را قرار دهید:

[Unit]
Description=Arma Reforger Dedicated Server
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=reforger
Group=reforger
WorkingDirectory=/home/reforger/server
ExecStart=/home/reforger/server/ArmaReforgerServer -config /home/reforger/config/config.json -profile /home/reforger/profile -maxFPS 60
Restart=on-failure
RestartSec=10
TimeoutStopSec=120
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

سپس سرویس را فعال کنید:

sudo systemctl daemon-reload

sudo systemctl enable --now arma-reforger

برای بررسی وضعیت:

sudo systemctl status arma-reforger --no-pager

sudo journalctl -u arma-reforger -n 100 --no-pager

اگر سرور اجرا نمی‌شود، ابتدا فایل JSON، دسترسی پوشه Profile و وجود فایل اجرایی را بررسی کنید.

تنظیم فایل JSON سرور Arma Reforger

Arma Reforger از فایل JSON برای تنظیم سرور استفاده می‌کند. این فایل مشخص می‌کند سرور روی چه پورتی اجرا شود، چه سناریویی بارگذاری شود، چه تعداد بازیکن اجازه ورود داشته باشند و کدام Modها فعال باشند.

نام فایل می‌تواند config.json باشد و مسیر آن با پارامتر -config مشخص می‌شود.

نکته مهم: نام کلیدهای JSON به حروف بزرگ و کوچک حساس است. برای مثال bindPort و BindPort یکسان نیستند.

نمونه فایل تنظیمات پایه

نمونه زیر برای شروع با یک سناریوی رسمی و بدون Mod طراحی شده است. شناسه Scenario را قبل از اجرا با خروجی نسخه نصب‌شده تطبیق دهید.

{
  "bindPort": 2001,
  "publicPort": 2001,
  "game": {
    "name": "Iranica Arma Reforger Server",
    "password": "",
    "passwordAdmin": "CHANGE_ADMIN_PASSWORD",
    "admins": [],
    "scenarioId": "{ECC61978EDCC2B5A}Missions/23_Campaign.conf",
    "maxPlayers": 16,
    "visible": true,
    "crossPlatform": false,
    "supportedPlatforms": [
      "PLATFORM_PC"
    ],
    "gameProperties": {
      "fastValidation": true
    },
    "mods": []
  }
}

این نمونه از کلیدهای جدید bindPort و publicPort استفاده می‌کند. شناسه Scenario و کلیدهای قابل استفاده باید با مستندات و Build فعلی هماهنگ باشند.

معنی تنظیمات مهم

گزینه کاربرد
bindPort پورت UDP محلی سرور
publicPort پورتی که برای اتصال عمومی ثبت می‌شود
publicAddress آدرس عمومی سرور در صورت نیاز به تنظیم دستی
game.name نام نمایشی سرور
game.password رمز ورود بازیکنان
game.passwordAdmin رمز دسترسی مدیریتی
game.maxPlayers حداکثر بازیکنان
game.scenarioId سناریوی فعال
game.visible نمایش در فهرست سرورها
game.mods فهرست Modهای Workshop
gameProperties.fastValidation اعتبارسنجی سریع مورد توصیه سازنده

آیا باید publicAddress را دستی وارد کنیم؟

اگر سرور مستقیماً IP عمومی دارد، معمولاً بهتر است publicAddress را از فایل حذف کنید تا سیستم آدرس عمومی را به‌صورت خودکار تشخیص دهد.

اگر سرور پشت NAT یا شبکه Docker قرار دارد، ممکن است تشخیص خودکار آدرس اشتباه باشد. در این حالت باید آدرس عمومی و Port Forwarding را بررسی کنید.

برای مثال، اگر سرور در Docker آدرس خصوصی کانتینر را ثبت کند، بازیکنان خارج از سرور ممکن است نتوانند متصل شوند.

اعتبارسنجی JSON در Linux

jq empty /home/reforger/config/config.json

اگر دستور بدون خطا تمام شود، ساختار JSON معتبر است. با این حال، این بررسی تضمین نمی‌کند که شناسه Scenario یا تنظیمات بازی صحیح باشند.

انتخاب Scenario و Mission در Arma Reforger

سناریو تعیین می‌کند سرور چه حالت بازی یا مأموریتی را اجرا کند.

در Arma Reforger می‌توانید از سناریوهای رسمی یا سناریوهای منتشرشده توسط کاربران استفاده کنید.

پیدا کردن Scenario ID

برای نمایش سناریوهای موجود، سرور را با پارامتر زیر اجرا کنید:

./ArmaReforgerServer -listScenarios

این دستور را در پوشه نصب و با کاربر مخصوص بازی اجرا کنید. خروجی شناسه‌ها در Logهای سرور ثبت می‌شود.

یک Scenario ID معمولاً شامل شناسه داخل آکولاد و مسیر فایل .conf است.

تغییر Scenario در config.json

مقدار scenarioId را با شناسه صحیح جایگزین کنید:

"scenarioId": "{SCENARIO_GUID}Missions/Scenario.conf"

این مقدار فقط الگوی ساختار است و باید با Scenario ID واقعی جایگزین شود.

در تنظیمات اصلی بازی، تنها یک سناریو برای هر پیکربندی فعال تعریف می‌شود. برای اجرای چند سناریوی مستقل می‌توانید نمونه‌های جداگانه سرور با پورت‌ها و Profileهای متفاوت بسازید.

آموزش نصب Mods از Workshop روی Arma Reforger Server

Arma Reforger از Workshop داخلی برای انتشار و دریافت Modها استفاده می‌کند. این Modها می‌توانند تجهیزات نظامی، نقشه‌ها، وسایل نقلیه، اسلحه‌ها و سناریوهای جدید اضافه کنند.

برای مشاهده محتوای رسمی به Arma Reforger Workshop مراجعه کنید.

مرحله اول: انتخاب Mod سازگار

قبل از نصب Mod، موارد زیر را بررسی کنید:

  • سازگاری با نسخه فعلی Arma Reforger.
  • تاریخ آخرین آپدیت.
  • وابستگی به Modهای دیگر.
  • پشتیبانی از سرور اختصاصی.
  • سازگاری با سناریوی انتخابی.
  • محدودیت احتمالی برای بازیکنان کنسول.

مرحله دوم: دریافت Mod ID

هر Mod در Workshop یک شناسه اختصاصی دارد که باید در فایل JSON سرور ثبت شود.

برای مثال، ساختار یک Mod به شکل زیر است:

{
  "modId": "MOD_GUID",
  "name": "Example Mod"
}

در فایل واقعی، کلید شناسه باید به‌صورت modId و مقدار آن شناسه معتبر Workshop باشد. عبارت MOD_GUID فقط جایگزین آموزشی است.

مرحله سوم: اضافه کردن Mod به config.json

در بخش mods، بسته‌های موردنظر را تعریف کنید:

"mods": [
  {
    "modId": "FIRST_MOD_GUID",
    "name": "First Mod"
  },
  {
    "modId": "SECOND_MOD_GUID",
    "name": "Second Mod"
  }
]

این قطعه را داخل بخش game فایل اصلی قرار دهید. شناسه‌های نمونه باید با شناسه‌های واقعی جایگزین شوند.

آیا می‌توان نسخه Mod را مشخص کرد؟

بله. در تنظیمات جدید، فیلد version اختیاری است. اگر آن را تعریف نکنید، سرور از جدیدترین نسخه موجود استفاده می‌کند.

برای مثال:

{
  "modId": "REAL_MOD_GUID",
  "name": "Example Mod",
  "version": "1.0.0"
}

نسخه 1.0.0 فقط مثال است. باید نسخه منتشرشده و سازگار با همان Mod را وارد کنید.

تنظیم required برای Modها

در نسخه‌های جدید امکان مشخص کردن ضروری بودن یک Mod وجود دارد.

اگر required برابر true باشد، سرور برای راه‌اندازی صحیح به آن Mod نیاز دارد. اگر false باشد، در شرایطی که دانلود یا بارگذاری آن ممکن نباشد، سرور می‌تواند با هشدار از آن عبور کند.

برای Modهایی که Scenario اصلی به آن‌ها وابسته است، بهتر است required فعال بماند.

چرا دانلود Modها با مشکل مواجه می‌شود؟

علت‌های احتمالی عبارت‌اند از:

  • شناسه Workshop اشتباه.
  • حذف یا غیرفعال شدن Mod.
  • ناسازگاری نسخه Mod با بازی.
  • اختلال دسترسی سرور به سرویس Workshop.
  • کمبود فضای دیسک.
  • مجوز ناکافی برای نوشتن در پوشه Profile.

برای بررسی مشکل، Logهای سرور را هنگام راه‌اندازی مطالعه کنید و وضعیت دانلود Modها را بررسی کنید.

آموزش راه‌اندازی RCON در Arma Reforger Server

RCON مخفف Remote Console است و امکان اجرای دستورات مدیریتی از راه دور را فراهم می‌کند.

در Arma Reforger باید بین دو نوع RCON تفاوت قائل شوید:

  • RCON داخلی Arma Reforger که در فایل JSON تنظیم می‌شود.
  • BattlEye RCON که تنظیمات و پروتکل مدیریتی جداگانه دارد.

این دو روش جایگزین مستقیم یکدیگر نیستند و ابزار اتصال آن‌ها نیز ممکن است متفاوت باشد.

فعال‌سازی RCON داخلی بازی

در سطح اصلی فایل config.json، بخشی با نام rcon اضافه کنید:

"rcon": {
  "address": "0.0.0.0",
  "port": 19999,
  "password": "CHANGE_TO_A_LONG_RANDOM_PASSWORD",
  "permission": "admin",
  "maxClients": 4
}

این بخش باید در کنار game و سایر کلیدهای سطح اصلی JSON قرار بگیرد.

در این نمونه، RCON روی تمام رابط‌های IPv4 گوش می‌دهد. برای امنیت بیشتر، دسترسی Firewall به پورت 19999 را فقط برای IP مدیریتی مجاز کنید.

Permission در RCON

دو سطح مهم دسترسی عبارت‌اند از:

سطح دسترسی
admin امکان اجرای دستورات مدیریتی مجاز
monitor مناسب مشاهده وضعیت و دستورات غیرتغییردهنده

اگر فقط به مشاهده وضعیت سرور نیاز دارید، monitor انتخاب محدودتری است.

آیا RCON از TCP استفاده می‌کند؟

خیر. RCON داخلی Arma Reforger از UDP استفاده می‌کند و پورت پیش‌فرض آن 19999 است.

بنابراین باز کردن 19999/TCP به‌تنهایی مشکل اتصال RCON داخلی را حل نمی‌کند.

تنظیم RCON مربوط به BattlEye

اگر از ابزار مدیریتی سازگار با BattlEye استفاده می‌کنید، تنظیمات مربوط به آن در فایل BEServer_x64.cfg قرار می‌گیرد.

نمونه تنظیمات:

RConPort 5678
RConPassword CHANGE_TO_A_STRONG_PASSWORD

هشدار: این خطوط را به فایل موجود اضافه کنید و تنظیمات اصلی BattlEye را حذف یا بازنویسی نکنید. حذف مقادیر موردنیاز می‌تواند باعث خطای BattlEye و اخراج بازیکنان شود.

پورت‌های Arma Reforger Server و تنظیم Firewall

برای دسترسی بازیکنان به سرور، پورت اصلی UDP باید از اینترنت قابل دسترسی باشد.

جدول پورت‌های پیش‌فرض

پورت پروتکل کاربرد وضعیت
2001 UDP ارتباط اصلی بازی ضروری
17777 UDP Steam Query یا A2S اختیاری
19999 UDP RCON داخلی اختیاری

اگر RCON یا A2S را فعال نکرده‌اید، نیازی به باز کردن پورت آن‌ها نیست.

باز کردن پورت اصلی در Windows Firewall

PowerShell را با دسترسی Administrator اجرا کنید:

New-NetFirewallRule -DisplayName "Arma Reforger Game UDP" -Direction Inbound -Protocol UDP -LocalPort 2001 -Action Allow

اگر A2S فعال است:

New-NetFirewallRule -DisplayName "Arma Reforger A2S UDP" -Direction Inbound -Protocol UDP -LocalPort 17777 -Action Allow

باز کردن پورت‌ها در Ubuntu

sudo ufw allow 2001/udp

sudo ufw allow 17777/udp

sudo ufw status numbered

Rule پورت 17777 فقط در صورت استفاده از A2S لازم است.

قبل از فعال کردن UFW، از مجاز بودن پورت SSH اطمینان حاصل کنید تا دسترسی مدیریتی به VPS قطع نشود.

محدود کردن RCON به IP ادمین

به‌جای باز کردن RCON برای تمام اینترنت، می‌توانید دسترسی را به یک IP مشخص محدود کنید:

sudo ufw allow from ADMIN_PUBLIC_IP to any port 19999 proto udp

ADMIN_PUBLIC_IP باید با IP عمومی واقعی مدیر سرور جایگزین شود. همچنین نباید Rule عمومی دیگری برای همان پورت وجود داشته باشد که این محدودیت را بی‌اثر کند.

بررسی پورت‌های فعال

sudo ss -lunp | grep -E '2001|17777|19999'

این دستور وضعیت Socketهای UDP را نمایش می‌دهد. وجود Socket به معنی باز بودن قطعی پورت از اینترنت نیست.

رفع خطای Connection Timeout در Arma Reforger Server

خطای Connection Timeout زمانی رخ می‌دهد که Client نتواند فرایند اتصال به سرور را در زمان مناسب کامل کند.

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

مرحله اول: مطمئن شوید سرور واقعاً اجرا شده است

در Linux:

sudo systemctl status arma-reforger --no-pager

اگر سرویس متوقف شده یا مرتب Restart می‌شود، ابتدا خطاهای JSON و Log را بررسی کنید.

مرحله دوم: پورت UDP را بررسی کنید

در Linux:

sudo ss -lunp | grep ':2001'

اگر پورت Listen نیست، مقدار bindPort، وضعیت برنامه و خطاهای Startup را بررسی کنید.

مرحله سوم: تنظیمات bindPort و publicPort را تطبیق دهید

اگر سرور مستقیماً IP عمومی دارد، معمولاً bindPort و publicPort برابر هستند.

برای مثال:

"bindPort": 2001,
"publicPort": 2001

اگر از NAT یا Port Forwarding استفاده می‌کنید، publicPort باید پورتی باشد که از بیرون به سرور Forward شده است.

مرحله چهارم: مشکل آدرس عمومی در Docker را بررسی کنید

در بعضی تنظیمات Docker، سرور ممکن است آدرس داخلی کانتینر را برای اتصال بازیکنان ثبت کند.

برای مثال، اگر آدرس ثبت‌شده از محدوده خصوصی 172.x.x.x باشد، کاربران اینترنت نمی‌توانند مستقیماً به آن متصل شوند.

در این حالت باید تنظیمات شبکه Docker، آدرس عمومی و Port Forwarding را اصلاح کنید.

مرحله پنجم: نسخه Client و Server را بررسی کنید

اگر سرور نسخه Experimental دارد ولی بازیکن از نسخه Stable استفاده می‌کند، اتصال ممکن است به دلیل ناسازگاری نسخه برقرار نشود.

همچنین بعد از انتشار آپدیت جدید، ممکن است Client به‌روزرسانی شده باشد اما Dedicated Server هنوز نسخه قبلی را اجرا کند.

برای رفع این مشکل، نسخه‌ها را هماهنگ کنید و در صورت نیاز سرور را با SteamCMD آپدیت کنید.

مرحله ششم: Modها را بررسی کنید

اگر اتصال به سرور بدون Mod موفق است اما سرور Modded مشکل دارد، احتمالاً یکی از Modها دانلود نشده یا با نسخه فعلی بازی ناسازگار است.

برای تشخیص دقیق، یک سرور آزمایشی با Scenario رسمی و فهرست mods خالی اجرا کنید.

اگر اتصال برقرار شد، Modها را مرحله‌ای فعال کنید.

مرحله هفتم: Packetهای ورودی را بررسی کنید

در Linux می‌توانید هنگام تلاش بازیکن برای اتصال، ترافیک UDP پورت بازی را بررسی کنید:

sudo apt install -y tcpdump

sudo tcpdump -ni any udp port 2001

اگر هنگام تلاش اتصال هیچ Packet ورودی مشاهده نمی‌شود، احتمال مشکل در مسیر شبکه، Firewall بیرونی یا Port Forwarding بیشتر است.

اگر Packetها دریافت می‌شوند ولی اتصال کامل نمی‌شود، Logهای برنامه، وضعیت پردازنده و تنظیمات بازی را بررسی کنید.

برای توقف tcpdump از Ctrl+C استفاده کنید.

مرحله هشتم: اتصال با IP مستقیم را آزمایش کنید

اگر سرور در Server Browser نمایش داده نمی‌شود، از قابلیت اتصال مستقیم با IP و پورت استفاده کنید.

نمونه آدرس:

YOUR_SERVER_IP:2001

YOUR_SERVER_IP باید با IP عمومی واقعی سرور جایگزین شود.

محل Logهای Arma Reforger Server و روش بررسی خطاها

Logها یکی از مهم‌ترین ابزارهای عیب‌یابی سرور هستند. هنگام نصب Mod، تغییر Scenario یا رفع Connection Timeout، بررسی Log معمولاً اطلاعات دقیق‌تری نسبت به حدس زدن علت مشکل ارائه می‌دهد.

محل ذخیره Logها

با پارامتر -profile می‌توانید مسیر اطلاعات اجرایی و گزارش‌های سرور را مشخص کنید.

در نصب Linux این مقاله، مسیر Profile برابر است با:

/home/reforger/profile/

برای پیدا کردن فایل‌های Log:

find /home/reforger/profile -type f \( -iname "*.log" -o -iname "*.rpt" \)

مشاهده Log سرویس

sudo journalctl -u arma-reforger -f

جست‌وجوی خطاهای مهم

برای بررسی فایل‌های متنی Log:

grep -RniE 'error|failed|timeout|workshop|addon|backend' /home/reforger/profile/ --include="*.log" --include="*.rpt"

در صورت نیاز، سطح جزئیات Log را با پارامترهای رسمی Startup تغییر دهید.

چه پیام‌هایی اهمیت دارند؟

نوع پیام موضوع بررسی
Failed to load scenario شناسه Scenario یا Mod وابسته
Workshop download failed شناسه Mod و ارتباط Workshop
Bind failed اشغال بودن پورت یا آدرس نامعتبر
Connection timeout شبکه، پورت و وضعیت Client
Backend registration error ارتباط سرور با سرویس‌های بازی
JSON parsing error ساختار یا مقدار تنظیمات

این پیام‌ها نمونه دسته‌بندی خطا هستند و متن دقیق آن‌ها ممکن است بین نسخه‌های مختلف بازی تفاوت داشته باشد.

امنیت Arma Reforger Server و مدیریت دسترسی‌ها

برای سرورهای عمومی، محدود کردن دسترسی مدیریتی و جلوگیری از افشای رمزها اهمیت زیادی دارد.

رمز ورود بازیکنان

برای خصوصی کردن سرور می‌توانید مقدار game.password را تنظیم کنید.

اگر سرور عمومی است، این مقدار می‌تواند خالی بماند؛ اما همچنان باید دسترسی مدیران را جداگانه محافظت کنید.

رمز ادمین

برای passwordAdmin از رمز طولانی و تصادفی استفاده کنید.

رمز مدیریت را داخل فایل‌های عمومی یا مخازن Git منتشر نکنید.

دسترسی فایل تنظیمات در Linux

برای محدود کردن خواندن فایل JSON:

sudo chown reforger:reforger /home/reforger/config/config.json

sudo chmod 600 /home/reforger/config/config.json

محدود کردن دسترسی RCON

RCON را فقط در صورت نیاز فعال کنید و در Firewall دسترسی آن را به IPهای مدیریتی محدود کنید.

همچنین اگر صرفاً مانیتورینگ لازم دارید، سطح permission را روی monitor قرار دهید.

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

سیستم‌عامل، فایل‌های Dedicated Server و Modهای مورد استفاده را به‌روز نگه دارید. پیش از نصب Modهای ناشناس، توضیحات و سابقه انتشار آن‌ها را بررسی کنید.

بهینه‌سازی مصرف CPU و RAM سرور Arma Reforger

Arma Reforger ممکن است در سناریوهای سنگین منابع زیادی مصرف کند. برای جلوگیری از افت عملکرد، بهتر است از ابتدا تنظیمات مناسب را اعمال کنید.

۱. محدود کردن FPS سرور

یکی از مهم‌ترین توصیه‌های رسمی استفاده از پارامتر -maxFPS است.

-maxFPS 60

مقدار ۶۰ برای شروع مناسب است. سازنده محدوده ۶۰ تا ۱۲۰ را توصیه کرده، اما افزایش FPS باید بر اساس ظرفیت واقعی CPU و نیاز سناریو انجام شود.

۲. فعال نگه داشتن fastValidation

در بخش gameProperties:

"fastValidation": true

این گزینه طبق مستندات رسمی برای سرورهای عمومی باید فعال بماند.

۳. تعداد Modها را مدیریت کنید

Modهای بزرگ ممکن است زمان راه‌اندازی، مصرف حافظه و حجم دانلود بازیکنان را افزایش دهند.

اگر بعد از نصب یک Mod مصرف منابع بالا رفت، عملکرد آن را روی سرور آزمایشی بررسی کنید.

۴. مصرف منابع Linux را بررسی کنید

free -h

ps -eo pid,comm,%cpu,%mem,rss --sort=-rss | head -15

برای بررسی فضای دیسک:

df -h

du -sh /home/reforger/profile

۵. از سناریوهای سبک‌تر برای تست استفاده کنید

اگر سرور هنگام اجرای یک Scenario خاص کند می‌شود، ابتدا عملکرد آن را با یک Scenario رسمی و ساده مقایسه کنید.

این روش کمک می‌کند مشخص شود مشکل از منابع پایه سرور است یا محتوای سفارشی.

Backup و آپدیت Arma Reforger Server

پیش از آپدیت بازی یا تغییر Modها، از فایل JSON، پوشه Profile و داده‌های مرتبط با سناریو نسخه پشتیبان تهیه کنید.

برخلاف بعضی بازی‌ها، نوع و محل داده‌های پایدار در Arma Reforger می‌تواند به Scenario و Modهای نصب‌شده بستگی داشته باشد. بنابراین صرفاً کپی کردن فایل اجرایی، Backup کامل محسوب نمی‌شود.

مرحله اول: توقف سرور

sudo systemctl stop arma-reforger

مرحله دوم: تهیه Backup

ابتدا پوشه Backup بسازید:

sudo mkdir -p /var/backups/arma-reforger

سپس از پوشه‌های Config و Profile نسخه پشتیبان تهیه کنید:

sudo tar -czf "/var/backups/arma-reforger/reforger-$(date +%Y%m%d-%H%M%S).tar.gz" -C /home/reforger config profile

اگر Scenario یا Mod شما داده‌های پایدار را خارج از این مسیرها ذخیره می‌کند، آن مسیرها را نیز به برنامه Backup اضافه کنید.

مرحله سوم: آپدیت فایل‌های سرور

با SteamCMD:

sudo -u reforger -H steamcmd +force_install_dir /home/reforger/server +login anonymous +app_update 1874900 validate +quit

مرحله چهارم: بررسی سازگاری Modها

قبل از راه‌اندازی مجدد، مطمئن شوید Modهای ضروری با نسخه جدید بازی سازگار هستند.

اگر یک Mod اصلی هنوز آپدیت نشده، بهتر است ابتدا روی سرور آزمایشی عملکرد آن را بررسی کنید.

مرحله پنجم: راه‌اندازی مجدد

sudo systemctl start arma-reforger

sudo journalctl -u arma-reforger -n 100 --no-pager

پس از آپدیت، اتصال بازیکن، Scenario فعال، دانلود Modها و عملکرد RCON را آزمایش کنید.

برای Rollback ممکن است لازم باشد نسخه قبلی فایل‌های بازی و داده‌های سازگار با آن را با هم بازیابی کنید. بازگرداندن صرفاً config.json همیشه کافی نیست.

جدول رفع مشکلات رایج Arma Reforger Server

مشکل علت احتمالی راه‌حل
Connection Timeout پورت بسته یا اختلال شبکه بررسی UDP 2001 و Logها
سرور در Browser نمایش داده نمی‌شود ثبت آدرس عمومی یا تنظیمات نمایش بررسی publicAddress و visible
سرور بعد از اجرا بسته می‌شود JSON نامعتبر یا Scenario اشتباه بررسی jq و Log
Mod دانلود نمی‌شود شناسه اشتباه یا ارتباط Workshop بررسی Mod ID و شبکه
RCON متصل نمی‌شود پورت یا رمز نادرست بررسی UDP 19999 و Firewall
خطای BattlEye تنظیمات ناقص یا تغییر فایل اصلی بازیابی تنظیمات معتبر
FPS سرور پایین است CPU ناکافی یا Scenario سنگین پایش منابع و بهینه‌سازی
Client نسخه ناسازگار دارد تفاوت Stable و Experimental هماهنگ کردن نسخه‌ها
Scenario اجرا نمی‌شود Scenario ID یا Mod وابسته اشتباه بررسی -listScenarios
مشکل پس از Update Mod ناسازگار یا تغییر تنظیمات بررسی Log و Backup

سؤالات متداول درباره Arma Reforger Server

آیا Arma Reforger Dedicated Server روی Linux اجرا می‌شود؟

بله. نسخه اختصاصی سرور برای Linux ارائه می‌شود و می‌توانید آن را با SteamCMD نصب کنید.

App ID سرور Arma Reforger چیست؟

شناسه نسخه Stable برابر 1874900 و نسخه Experimental برابر 1890870 است.

پورت اصلی Arma Reforger چیست؟

پورت پیش‌فرض بازی 2001/UDP است. پورت‌های 17777 و 19999 نیز برای A2S و RCON کاربرد دارند.

چرا سرور Arma Reforger در Server Browser نمایش داده نمی‌شود؟

ممکن است آدرس عمومی اشتباه ثبت شده باشد، تنظیم visible غیرفعال باشد یا سرور نتواند با سرویس‌های موردنیاز ارتباط برقرار کند.

چگونه Connection Timeout را رفع کنیم؟

ابتدا وضعیت سرور، پورت 2001/UDP، Firewall، آدرس عمومی و Port Forwarding را بررسی کنید. سپس نسخه بازی، Modها و Logها را کنترل کنید.

آیا Arma Reforger از Workshop Mods پشتیبانی می‌کند؟

بله. می‌توانید شناسه Modهای منتشرشده در Workshop را در بخش mods فایل JSON تعریف کنید.

آیا Modها خودکار دانلود می‌شوند؟

سرور می‌تواند Modهای تعریف‌شده را از Workshop دریافت کند و بازیکنان نیز هنگام اتصال برای دریافت محتوای موردنیاز راهنمایی می‌شوند.

فایل تنظیمات سرور چه فرمتی دارد؟

تنظیمات اصلی در یک فایل JSON ذخیره می‌شوند و مسیر آن با پارامتر -config تعیین می‌شود.

چگونه Scenario را تغییر دهیم؟

شناسه سناریو را در game.scenarioId قرار دهید. برای پیدا کردن شناسه‌های معتبر از -listScenarios استفاده کنید.

RCON داخلی Arma Reforger از چه پورتی استفاده می‌کند؟

پورت پیش‌فرض RCON داخلی برابر 19999/UDP است.

تفاوت RCON داخلی و BattlEye RCON چیست؟

این دو سیستم مدیریت از راه دور، تنظیمات و ابزارهای اتصال متفاوتی دارند. RCON داخلی در JSON و BattlEye RCON در فایل تنظیمات BattlEye مدیریت می‌شود.

چرا RCON متصل نمی‌شود؟

رمز، پورت UDP، آدرس Bind و محدودیت Firewall را بررسی کنید. همچنین مطمئن شوید از کلاینت سازگار با نوع RCON استفاده می‌کنید.

آیا می‌توان سرور Arma Reforger را روی Docker اجرا کرد؟

بله، اما باید Port Forwarding و آدرس عمومی را به‌درستی تنظیم کنید. ثبت آدرس داخلی کانتینر می‌تواند باعث شکست اتصال بازیکنان شود.

چگونه مصرف CPU سرور را کاهش دهیم؟

از پارامتر -maxFPS استفاده کنید، fastValidation را فعال نگه دارید و مصرف Modها و Scenarioهای سنگین را بررسی کنید.

Logهای سرور کجا ذخیره می‌شوند؟

با پارامتر -profile می‌توانید محل داده‌های اجرایی و Logها را مشخص کنید. در Linux همچنین می‌توانید خروجی سرویس را با journalctl مشاهده کنید.

آیا آپدیت سرور باعث حذف تنظیمات می‌شود؟

اگر فایل JSON و Profile را جدا از پوشه نصب نگهداری کنید، مدیریت آپدیت ساده‌تر می‌شود. با این حال، قبل از هر Update باید Backup بگیرید.

جمع‌بندی

برای ساخت Arma Reforger Server ابتدا Dedicated Server نسخه Stable را با SteamCMD و شناسه 1874900 نصب کنید. سپس فایل JSON را بسازید و تنظیمات پورت، Scenario، تعداد بازیکنان و دسترسی مدیران را مشخص کنید.

برای نصب Mods از Workshop داخلی بازی استفاده کنید و شناسه بسته‌های موردنظر را در بخش game.mods قرار دهید. همچنین در صورت نیاز می‌توانید RCON داخلی را برای مدیریت از راه دور فعال کنید.

اگر با خطای Connection Timeout مواجه شدید، ابتدا پورت UDP 2001، Firewall، آدرس عمومی و وضعیت اجرای سرور را بررسی کنید. سپس نسخه Client، Modها و Logهای سرور را کنترل کنید.

برای عملکرد بهتر نیز محدود کردن FPS، فعال نگه داشتن fastValidation و انتخاب منابع مناسب VPS اهمیت زیادی دارد. در نهایت، پیش از هر آپدیت از تنظیمات، Profile و داده‌های سناریو نسخه پشتیبان تهیه کنید.

منابع و مستندات معتبر

برای بررسی ساختار جدید سرور، تنظیمات JSON، پورت‌ها، RCON و دستورهای اجرایی از مستندات رسمی Bohemia Interactive و Valve استفاده شده است.

۱. Bohemia Interactive — Arma Reforger Server Hosting

راهنمای رسمی نصب Dedicated Server، شناسه SteamCMD، اجرای Linux و تنظیمات میزبانی.

مشاهده راهنمای Server Hosting

۲. Bohemia Interactive — Server Config

مرجع رسمی کلیدهای JSON، تنظیمات شبکه، Mods، Scenario، A2S و RCON.

مشاهده مستندات Server Config

۳. Bohemia Interactive — Startup Parameters

معرفی پارامترهای -config، -profile، -maxFPS، -listScenarios و گزینه‌های اجرای سرور.

مشاهده Startup Parameters

۴. Arma Reforger Workshop

مرجع رسمی مشاهده و دریافت Modها، نقشه‌ها و سناریوهای سفارشی.

ورود به Workshop

۵. Valve Developer Community — SteamCMD

مستندات رسمی نصب و به‌روزرسانی برنامه‌های Steam با خط فرمان.

مطالعه راهنمای SteamCMD

اشتراک‌گذاری مقاله
گفت‌وگو درباره آموزش

دیدگاه‌ها (۰)

هنوز دیدگاهی ثبت نشده است.

دیدگاه یا سؤال خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *