ساخت سرور 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 و تنظیمات میزبانی.
۲. Bohemia Interactive — Server Config
مرجع رسمی کلیدهای JSON، تنظیمات شبکه، Mods، Scenario، A2S و RCON.
۳. Bohemia Interactive — Startup Parameters
معرفی پارامترهای -config، -profile، -maxFPS، -listScenarios و گزینههای اجرای سرور.
۴. Arma Reforger Workshop
مرجع رسمی مشاهده و دریافت Modها، نقشهها و سناریوهای سفارشی.
۵. Valve Developer Community — SteamCMD
مستندات رسمی نصب و بهروزرسانی برنامههای Steam با خط فرمان.






دیدگاهها (۰)