- چطور یک سرور TF2 پایدار، کمتاخیر و امن راهاندازی کنم؟
- انتخاب سرور و لوکیشن برای TF2
- پیشنیازها و نصب SteamCMD (گام اول)
- دانلود و نصب سرور TF2 با SteamCMD
- پیکربندی SRCDS و server.cfg
- اجرای سرور (پارامترها و systemd)
- پورتها و فایروال
- بهینهسازی سیستم و شبکه برای پینگ پایین
- پلاگینها، Sourcemod و Metamod
- امنیت، RCON و ضد DDoS
- آپدیت خودکار و بکاپ
- مانیتورینگ و عیبیابی
- نکات تکمیلی و بهترین تنظیمات برای کاربردهای خاص
- جمعبندی و گزینههای سرویس
- 常见问题解答
چطور یک سرور TF2 پایدار، کمتاخیر و امن راهاندازی کنم؟
در این راهنما قدمبهقدم از انتخاب لوکیشن و سختافزار تا نصب SteamCMD، پیکربندی SRCDS، بهینهسازی شبکه، امنیت و مانیتورینگ را پوشش میدهیم. این مقاله برای مدیران سرور, مدیران سایت, گیمرها و تیمهای DevOps مناسب است که میخواهند یک سرور TF2 با پایداری و پاسخدهی بالا راهاندازی کنند.
انتخاب سرور و لوکیشن برای TF2
برای داشتن ping پایین و تجربه بازی مناسب، لوکیشن دیتاسنتر باید نزدیک به بازیکنان هدف باشد. شرکت ما بیش از 85 لوکیشن جهانی ارائه میدهد که میتوانید بر اساس جمعیت پلیرها انتخاب کنید (اروپا: آمستردام، فرانکفورت؛ آمریکا: نیویورک، لسآنجلس؛ آسیا: توکیو، سنگاپور؛ برزیل و …).
مشخصات سختافزاری پیشنهادی
- CPU: 4 هسته واقعی با فرکانس بالا (سرعت تکهستهای مهمتر). Intel Xeon یا AMD EPYC با فرکانس بالا مناسباند.
- RAM: حداقل 4–8 گیگابایت برای سرور 24–32 نفره.
- دیسک: NVMe برای کاهش زمان بارگذاری نقشه و Workshop.
- شبکه: بسته به تعداد بازیکن و نقشهها، 1 Gbps اختصاصی توصیه میشود. برای جمعیت بالا از 10 Gbps استفاده کنید.
- ضد DDoS: پیشنهاد میشود سرور ضد DDoS یا سرویس محافظت داشته باشد تا حملات UDP را دفع کند.
انتخاب نوع سرویس
- VPS مخصوص گیم: مناسب سرورهای کوچک/متوسط با هزینه کمتر و شبکه بهینه.
- سرور اختصاصی: برای سرورهای با بازدید بالا و نیاز CPU قوی.
- سرور ابری با عملکرد بالا: برای مقیاسپذیری و توزیع لوکیشنها.
- سرور ضد DDoS: اگر احتمال حملات برای سرورتان وجود دارد، این گزینه ضروری است.
پیشنیازها و نصب SteamCMD (گام اول)
برای دانلود و نگهداری فایلهای SRCDS از SteamCMD استفاده میشود. مراحل زیر بر پایه توزیعهای مبتنی بر Debian/Ubuntu است.
sudo apt update && sudo apt upgrade -y
sudo apt install -y lib32gcc-s1 ca-certificates tmux wget unzipساخت کاربر اختصاصی برای سرور TF2 و دانلود SteamCMD:
sudo useradd -m -s /bin/bash tf2
sudo su - tf2
mkdir ~/steamcmd && cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
دانلود و نصب سرور TF2 با SteamCMD
مثال اسکریپت برای SteamCMD (save به update_tf2.txt):
login anonymous
force_install_dir /home/tf2/tf2_server
app_update 232250 validate
quitاجرای آپدیت/نصب:
cd ~/steamcmd
./steamcmd.sh +runscript update_tf2.txtبعد از اتمام، پوشه /home/tf2/tf2_server/ خواهد بود که فایلهای SRCDS داخل آن قرار دارند.
پیکربندی SRCDS و server.cfg
پوشه cfg را باز کنید (/home/tf2/tf2_server/tf/cfg)和一个 server.cfg بسازید یا ویرایش کنید. مثال تنظیمات پایه:
hostname "TF2 | Example Server"
rcon_password "StrongRconPasswordHere"
sv_password "" // اگر میخواهید سرور خصوصی باشد، رمز بگذارید
sv_lan 0
sv_region 0 // 0 = Automatic
sv_maxrate 200000
sv_minrate 80000
sv_maxupdaterate 66
sv_minupdaterate 10
sv_voiceenable 1
mp_timelimit 30
mp_maxrounds 0
tf_bot_quota 0
sv_logfile 1
sv_logbans 1
sv_logecho 1chmod 600).Map rotation و custom cfg
برای چرخش مپها، فایل mapcycle.txt یا پلاگینهایی برای Sourcemod استفاده کنید. برای exec فایلهای دیگر مثل autoexec.cfg 从 server.cfg 使用:
exec banned_user.cfgexec mapcycle.txt
اجرای سرور (پارامترها و systemd)
نمونه فرمان شروع SRCDS:
cd /home/tf2/tf2_server
./srcds_run -game tf -console -autoupdate -steam_dir /home/tf2/steamcmd -steamcmd_script /home/tf2/steamcmd/update_tf2.txt -port 27015 +map ctf_2fort +maxplayers 24 -tickrate 66ساخت unit systemd برای مدیریت سرویس (بهعنوان root):
/etc/systemd/system/tf2.service
[Unit]
Description=Team Fortress 2 Server
After=network.target
[Service]
Type=simple
User=tf2
WorkingDirectory=/home/tf2/tf2_server
ExecStart=/home/tf2/tf2_server/srcds_run -game tf -console -autoupdate -steam_dir /home/tf2/steamcmd -steamcmd_script /home/tf2/steamcmd/update_tf2.txt -port 27015 +map ctf_2fort +maxplayers 24 -tickrate 66
Restart=on-failure
LimitNOFILE=100000
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable --now tf2.service
sudo journalctl -u tf2 -f
پورتها و فایروال
پورتهای معمول TF2:
- UDP 27015 (بازی)
- TCP/UDP 27015 (Steam query/workshop)
- UDP 27005 (Steam client traffic)
- SourceTV: UDP 27020 (اگر فعال باشد)
نمونه قوانین ufw:
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp
sudo ufw allow 27005/udp
sudo ufw allow 27020/udp
sudo ufw enableبرای nftables یا iptables، معادل آنها را باز کنید. اگر سرور پشت NAT است، پورتها را در روتر/فایروال سختافزاری نیز فوروارد کنید.
بهینهسازی سیستم و شبکه برای پینگ پایین
چند تنظیم سیستمی که معمولاً برای سرورهای بازی مفید است:
تنظیمات sysctl پیشنهادی (برای UDP و بار شبکه سنگین)
sudo tee /etc/sysctl.d/99-tf2.conf <<EOF
net.core.rmem_max=26214400
net.core.wmem_max=26214400
net.core.netdev_max_backlog=5000
net.ipv4.udp_mem=65536 131072 262144
net.ipv4.udp_rmem_min=16384
net.ipv4.udp_wmem_min=16384
net.ipv4.tcp_mtu_probing=1
net.ipv4.tcp_fin_timeout=15
net.ipv4.tcp_tw_reuse=1
EOF
sudo sysctl --systemغیرفعال کردن GSO/GRO/TSO در کارت شبکه
غیرفعال کردن این ویژگیها میتواند تاخیر را کاهش دهد اما بار CPU را افزایش میدهد:
sudo apt install ethtool -y
sudo ethtool -K eth0 gro off gso off tso offتوجه: این تنظیمات بار CPU را افزایش میدهند؛ روی سرور اختصاصی با CPU قوی تست کنید.
CPU governor و IRQ affinity
برای جلوگیری از نوسان فرکانس:
for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo performance | sudo tee $i; doneاگر کارت شبکه چند صف دارد، میتوانید affinity وقایع IRQ را به هستههای اختصاصی تخصیص دهید تا تأخیر کاهش یابد (نیاز به دانش شبکه و بررسی /proc/interrupts دارد).
پلاگینها، Sourcemod و Metamod
برای امکانات مدیریتی و ضدچیت:
- 安装 Metamod: دانلود آخرین نسخه و استخراج در
/home/tf2/tf2_server/tf. - 安装 Sourcemod: دانلود و انتقال فایلهای
addons和cfgبه پوشهtf.
پس از نصب، میتوانید افزونههایی برای مسدودسازی چیت، مدیریت پلیرها، نمایش استاتها و خودکارسازی قوانین نصب کنید.
امنیت، RCON و ضد DDoS
نکات امنیتی مهم:
- RCON: rcon_password قوی انتخاب کنید و دسترسی RCON را فقط از آدرسهای مشخص شود. مثال با iptables را ببینید.
- استفاده از سرویس ضد DDoS: برای دفع UDP flood و amplification از سرویس ضد DDoS شبکهای استفاده کنید.
- لاگ و نگهداری: لاگها را بهصورت منظم بررسی کنید و فایلهای لاگ را رول کنید (logrotate).
- بروزرسانی منظم: SRCDS و سیستمعامل را با اسکریپتهای خودکار آپدیت کنید.
sudo iptables -A INPUT -p tcp --dport 27015 -s 1.2.3.4 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 27015 -j DROP
آپدیت خودکار و بکاپ
نمونه اسکریپت ساده آپدیت:
#!/bin/bash
/home/tf2/steamcmd/steamcmd.sh +runscript /home/tf2/steamcmd/update_tf2.txt
systemctl restart tf2بکاپ پوشه cfg و map و workshop:
tar -czf /backups/tf2_cfg_$(date +%F).tar.gz /home/tf2/tf2_server/tf/cfg /home/tf2/tf2_server/tf/mapsاستفاده از ذخیرهسازی ابری برای نگهداری بکاپ و نسخهبرداری از دیتای مهم توصیه میشود.
مانیتورینگ و عیبیابی
ابزارهای پایه برای پایش و عیبیابی:
- top/htop برای مانیتور CPU و RAM
ss -u -a | grep 27015برای بررسی سوکتهای UDP باز- tail -f tf/logs/* برای بررسی خطاها
- mcrcon یا ابزار RCON برای ارسال دستورات از راه دور
نکات عیبیابی: افت فریم یا لگ معمولاً به CPU یا شبکه مربوط است؛ اگر packet loss مشاهده شد از ابزارهایی مثل mtr برای بررسی مسیر استفاده کنید.
نکات تکمیلی و بهترین تنظیمات برای کاربردهای خاص
- برای سرورهای گیمینگ کوچک (تا 24 نفر): VPS با 4 هسته، 8GB RAM، NVMe کافی است.
- برای رقابتها و سرورهای با بازدید بالا: سرور اختصاصی با فرکانس بالا، 10Gbps uplink و ضد DDoS.
- TF2 به GPU سرور نیاز ندارد اما برای استریمرها یا ابزارهای جانبی که GPU نیاز دارند، میتوانید از سرور گرافیکی استفاده کنید.
- لوکیشن: حتماً نزدیکترین دیتاسنتر به بازیکنان انتخاب شود؛ برای مخاطب چندمنطقهای از چندین لوکیشن و DNS هوشمند/Anycast استفاده کنید.
توصیه مهم: قبل از اعمال تغییرات سیستمی در تولید، ابتدا در محیط آزمایشی تست کنید و پس از اعمال، پایش مستمر اجرا کنید.
جمعبندی و گزینههای سرویس
در این مقاله مراحل راهاندازی سرور Team Fortress 2 از نصب SteamCMD تا بهینهسازی شبکه و امنیت را پوشش دادیم. برای سروری با پینگ پایین و پایداری بالا میتوانید از VPS مخصوص گیم یا سرور اختصاصی استفاده کنید؛ شرکت ما بیش از 85 لوکیشن جهانی، سرور ضد DDoS، پلنهای VPS مخصوص گیم و سرور ابری با عملکرد بالا ارائه میدهد.









