°²È«Êǵ×Ïߣ¬Ð§ÂÊÊDZ£ÕÏ£¬±¸·ÝÊÇÉúÃüÏß¡£
µÚÒ»²¿·Ö£ºÖþÀΰ²È«·ÀÏß - µÖÓùÄÚÍâÍþв
·þÎñÆ÷£¬ÓÈÆäÊDZ©Â¶ÔÚ¹«ÍøÉϵģ¬Ê±¿ÌÃæÁÙ¶àÖÖÍþв£º¶ñÒâɨÃè¡¢DDoS¹¥»÷¡¢±©Á¦ÆÆ½â¡¢Êý¾Ýй¶¡¢¶ñÒâ²å¼þµÈ¡£ºöÊÓ°²È«£¬ÇáÔò·þÎñÆ÷å´»ú¡¢Íæ¼ÒÁ÷ʧ£¬ÖØÔòÊý¾Ý±»É¾¡¢¶àÄêÐÄѪ¸¶Ö®Ò»¾æ¡£
·À»ðǽÅäÖ㺵ÚÒ»µÀ³ÇÃÅ
²Ù×÷ϵͳ·À»ðǽ£º
Windows£º È·±£ÏµÍ³·À»ðǽÆôÓ㬲¢Ñϸñ¿ØÖÆÈëÕ¾¹æÔò¡£Ö»¿ª·Å±ØÒªµÄ·þÎñ¶Ë¿Ú£º
Êý¾Ý¿â¶Ë¿Ú£º MySQL (3306/TCP) - ×¢Ò⣺ǿÁÒ½¨Òé½öÏÞÄÚÍø·ÃÎÊ»òÐ޸Ķ˿ڣ¡
ÓÎÏ··þÎñ¶Ë¿Ú£º ÈÏÖ¤¶Ë¿Ú (e.g., 10001, 10101/TCP)£¬ Íø¹Ø¶Ë¿Ú (e.g., 29000, 29100/TCP)£¬ Ïß·¶Ë¿Ú (e.g., 9000-9100/TCP - ¾ßÌå¿´ÄãµÄGsÅäÖÃ)¡£
¹ÜÀí¶Ë¿Ú£º SSH (22/TCP - Linux)£¬ RDP (3389/TCP - Windows - ½¨ÒéÐ޸Ķ˿ڻò½öÏÞÌØ¶¨IP·ÃÎÊ)¡£
Linux (iptables/nftables)£º ÅäÖùæÔòÔÊÐíÖ¸¶¨IP·ÃÎÊÌØ¶¨¶Ë¿Ú£¬¾Ü¾øËùÓÐÆäËûÁ÷Á¿¡£ÀýÈ磺
sudo iptables -A INPUT -p tcp --dport 29000 -j ACCEPT # ÔÊÐíÍø¹Ø¶Ë¿Ú
sudo iptables -A INPUT -p tcp --dport 10101 -j ACCEPT # ÔÊÐíÈÏÖ¤¶Ë¿Ú
sudo iptables -A INPUT -j DROP # ĬÈϾܾøËùÓÐÆäËûÈëÕ¾
ÔÆ·þÎñḚ́²È«×飺 Èç¹ûÄãʹÓð¢ÀïÔÆ¡¢ÌÚÑ¶ÔÆµÈÔÆ·þÎñÆ÷£¬Îñ±ØÔÚÔÆÆ½Ì¨¿ØÖÆÌ¨ÅäÖð²È«×é²ßÂÔ£¬ÆäÓÅÏȼ¶¸ßÓÚϵͳ·À»ðǽ¡£½ö¿ª·ÅÓÎÏ·ºÍ¹ÜÀíËùÐè¶Ë¿Ú£¬¹æÔòÒª¾«×¼£¨Ô´IPÏÞÖÆ¸ü¼Ñ£©¡£
Ó¦ÓóÌÐò·À»ðǽ (WAF)£º Èç¹ûÌṩע²áÍøÒ³»òGM¹ÜÀíºǫ́£¬ÇÒÔ¤ËãÔÊÐí£¬¿É¿¼ÂÇÔÚNginx/Apache²ã²¿ÊðWAF¹æÔò£¬·ÀÓùSQL×¢Èë¡¢XSSµÈWeb¹¥»÷¡£
·þÎñÓëȨÏ޹ܿأº×îСȨÏÞÔÔò
Êý¾Ý¿â°²È«£º
¾ø²»Ê¹ÓÃĬÈÏÕ˺ţº ½ûÓà root Ô¶³Ì·ÃÎÊ£¬½ûֹʹÓÃÈõÃÜÂë»ò¿ÕÃÜÂ롣Ϊ²»Í¬·þÎñ¶Ë×é¼þ´´½¨×¨ÓÃÊý¾Ý¿âÓû§ (e.g., zx_authd, zx_gamed)¡£
¾«Ï¸»¯ÊÚȨ£º ʹÓà GRANT Óï¾ä£¬Ö»ÎªÃ¿¸ö·þÎñÕ˺ÅÊÚÓèÆäËùÐèÊý¾Ý¿âµÄ×îСȨÏÞ (e.g., SELECT, INSERT, UPDATE, DELETE)£¬±ÜÃâ ALL PRIVILEGES¡£
ÐÞ¸ÄĬÈ϶˿ڣº ½« MySQL/MSSQL ¶Ë¿Ú´ÓĬÈ쵀 3306/1433 ¸ÄΪһ¸ö·Ç±ê×¼¶Ë¿Ú¡£
ÏÞÖÆ·ÃÎÊÀ´Ô´£º ÔÚÊý¾Ý¿âÖÐÅäÖÃÖ»ÔÊÐí·þÎñ¶Ë·þÎñÆ÷IP·ÃÎÊÊý¾Ý¿â¡£
²Ù×÷ϵͳÕ˺ţº
±ÜÃâÓà root / Administrator ÈÕ³£²Ù×÷¡£´´½¨ÆÕͨȨÏÞÕ˺ŽøÐвÙ×÷¡£
ÓÃÓÚÔËÐзþÎñ¶Ë³ÌÐòµÄϵͳÕ˺Š(e.g., ÔÚ Linux Ï´´½¨ zxserver Óû§) Ö»¸³Óè·þÎñ¶ËĿ¼µÄ±ØÒª¶ÁдȨÏÞ¡£
SSH/RDP°²È«£º
½ûÓà root Ô¶³Ì SSH µÇ¼ (Linux)¡£
ʹÓÃÃÜÔ¿ÈÏÖ¤Ìæ´úÃÜÂëÈÏÖ¤ (Linux)¡£
ÐÞ¸ÄĬÈ϶˿ڡ£
ʹÓÃÇ¿ÃÜÂë²ßÂÔ¡£
ÅäÖà Fail2Ban (Linux) ×Ô¶¯·â½û¶à´ÎµÇ¼ʧ°ÜµÄIP¡£
Èí¼þ°²È«Óë¸üУº
¼°Ê±´ò²¹¶¡£º ÔÚ³ä·Ö²âÊÔµÄǰÌáÏ£¬¼°Ê±¸üвÙ×÷ϵͳÄںˡ¢Êý¾Ý¿âÈí¼þ¡¢ÔËÐп⣨Èç .NET, VC++£©µÄ°²È«²¹¶¡¡£¹Ø×¢ËùÓ÷þÎñ¶Ë°æ±¾ÊÇ·ñÓÐÒÑÖªÑÏÖØ°²È«Â©¶´¡£
¾¯ÌèµÚÈý·½¹¤¾ß£º ´Ó²»Ã÷À´Ô´ÏÂÔØµÄGM¹¤¾ß¡¢²å¼þ¡¢ÉõÖÁÃÀ»¯²¹¶¡£¬¶¼¿ÉÄܰµ²ØºóÃÅ»ò¶ñÒâ½Å±¾¡£Ö»Ê¹ÓÃÀ´×Ը߶ȿÉÐÅÀ´Ô´µÄ¹¤¾ß£¬²¢Ê¹ÓÃɱ¶¾Èí¼þɨÃè¡£
ÏÞÖÆÉÏ´«Èë¿Ú£º Èç¹ûÌṩÎļþÉÏ´«¹¦ÄÜ£¨ÈçÍæ¼ÒÍ·Ïñ£©£¬ÑϸñÏÞÖÆÉÏ´«ÎļþÀàÐÍ¡¢´óС£¬²¢¶ÔÉÏ´«Îļþ½øÐиôÀëºÍ¶ñÒâÄÚÈݼì²â¡£
µÚ¶þ²¿·Ö£º×Ô¶¯»¯Óë¹ÜÀí - ÌáÉýЧÂÊ£¬½â·ÅË«ÊÖ
·±ËöµÄÈÕ³£²Ù×÷»áÏûºÄ´óÁ¿¾«Á¦¡£ÉÆÓù¤¾ßʵÏÖ×Ô¶¯»¯£¬Äܼ«´óÌáÉýЧÂʺÍÏìÓ¦ËÙ¶È¡£
Åú´¦Àí/Shell½Å±¾£º»ù´¡×Ô¶¯»¯ÉñÆ÷
Ò»¼üÆôÍ££º ±àд start_all.bat (Win) »ò start_all.sh (Linux) ½Å±¾£¬°´Ë³ÐòÆô¶¯Êý¾Ý¿â¡¢ËùÓзþÎñ¶Ë½ø³Ì (authd, gamedbd, uniquenamed, gdeliveryd, Gs1, Gs2...)¡£Í¬Àí±àд stop_all.* ½Å±¾¡£
ÈÕÖ¾ÇåÀí£º ±àд¶¨Ê±ÈÎÎñ½Å±¾ (Windows ÈÎÎñ¼Æ»® / Linux cron)£¬¶¨ÆÚÇåÀíÀϵÄÈÕÖ¾Îļþ (*.log)£¬±ÜÃâÕ¼ÓôóÁ¿´ÅÅ̿ռ䡣Àý (Linux cron):
3 find /path/to/zx/logs/ -name ".log" -mtime +7 -exec rm -f {} \; # ÿÌì3µãɾ³ý7ÌìǰµÄÈÕÖ¾
±¸·Ýµ÷¶È£º ÕûºÏÊý¾Ý¿â±¸·Ý (e.g., mysqldump) ºÍ·þÎñ¶ËĿ¼´ò°üѹËõÃüÁîµ½½Å±¾ÖУ¬½áºÏ cron/ÈÎÎñ¼Æ»® ʵÏÖ×Ô¶¯±¸·Ý£¨¼ûµÚÈý²¿·Ö£©¡£
רҵÔËά¹¤¾ß£º
±¦ËþÃæ°å£º ¶ÔÓÚ²»ÊìϤÃüÁîÐеÄÓû§£¬±¦ËþÃæ°åÌṩÁËÖ±¹ÛµÄWeb½çÃæ½øÐзþÎñÆ÷״̬¼à¿Ø£¨CPU/RAM/Disk/Network£©¡¢·À»ðǽ¶Ë¿Ú¹ÜÀí¡¢¶¨Ê±ÈÎÎñÅäÖá¢Îļþ¹ÜÀí¡¢Êý¾Ý¿â¹ÜÀíµÈ£¬¼«´ó½µµÍÔËάÃż÷¡£°²×°Ê±×¢ÒⰲȫÅäÖá£
Ô¶³Ì×ÀÃæ/SSH¿Í»§¶Ë£º MobaXterm (WindowsÈ«ÄÜ)£¬ Xshell + Xftp (Windows)£¬ Termius (¿çƽ̨)£¬ Windows Ô¶³Ì×ÀÃæ¡£Ñ¡Ôñ˳ÊֵŤ¾ß¸ßЧ¹ÜÀí¡£
¼à¿Ø¸æ¾¯£º
»ù´¡¼à¿Ø£º ʹÓà Prometheus + Grafana + node_exporter (רҵǿ´óµ«¸´ÔÓ)£¬»òÔÆ·þÎñÉÌ×Ô´øµÄ¼à¿ØÏµÍ³£¬¼à¿Ø·þÎñÆ÷CPU¡¢ÄÚ´æ¡¢´ÅÅÌ¡¢ÍøÂç´ø¿í¡¢½ø³Ì״̬¡£ÉèÖÃãÐÖµ¸æ¾¯£¨Óʼþ¡¢Î¢ÐÅ¡¢¶¤¶¤£©¡£
·þÎñ״̬¼à¿Ø£º ¶¨Öƽű¾»ò¹¤¾ß¶¨ÆÚ¼ì²â¹Ø¼ü·þÎñ£¨Èç authd, gamedbd, MySQL£©½ø³ÌÊÇ·ñ´æÔÚ£¬¶Ë¿ÚÊÇ·ñ¼àÌý£¬×Ô¶¯³¢ÊÔÖØÆô²¢¸æ¾¯¡£¼òµ¥µÄÓÐ Supervisor (½ø³ÌÊØ»¤)¡£
ÅäÖùÜÀí¹¤¾ß (¸ß¼¶)£º Ansible, SaltStack ¿ÉÓÃÓÚÔÚ¶ą̀·þÎñÆ÷¼äÅúÁ¿Í¬²½ÅäÖᢲ¿Êð¸üУ¨ÊÊÓÃÓÚ·Ö²¼Ê½²¿Ê𣩡£
Êý¾Ý¿â¹ÜÀíÓÅ»¯£º
Navicat Premium / DBeaver£º Ç¿´óµÄGUI¹¤¾ß£¬ÓÃÓÚ¹ÜÀíÊý¾Ý¿â¡¢Ö´Ðвéѯ¡¢±à¼Êý¾Ý£¨½÷É÷£¡£©¡¢Éè¼Æ±í½á¹¹¡¢±¸·Ý»¹Ô¡£ÊìÁ·ÕÆÎկ书ÄÜÄܼ«´óÌáÉýά»¤Ð§ÂÊ¡£
Âý²éѯÈÕÖ¾£º ¶¨ÆÚ·ÖÎöÊý¾Ý¿âÂý²éѯÈÕÖ¾ (slow_query_log in MySQL)£¬ÕÒ³öÖ´ÐлºÂýµÄSQLÓï¾ä²¢½øÐÐÓÅ»¯£¨Ìí¼ÓË÷Òý¡¢Öع¹²éѯÓï¾ä£©¡£
¶¨ÆÚÓÅ»¯±í£º ¶ÔºËÐÄ¡¢±ä¶¯´óµÄ±í (Èç playeritems, mail, auction) ¶¨ÆÚÖ´ÐÐ OPTIMIZE TABLE <±íÃû>; (MyISAMÒýÇæÐ§¹ûºÃ£¬InnoDB½÷É÷ʹÓÃ)£¬ÓÅ»¯¿Õ¼äºÍÐÔÄÜ¡£
µÚÈý²¿·Ö£ºÊý¾Ý±¸·Ý - ×îºóµÄÉúÃüÏß
Èκΰ²È«´ëÊ©¶¼ÎÞ·¨×öµ½100%±£ÏÕ¡£Ó²¼þ¹ÊÕÏ¡¢Îó²Ù×÷¡¢ÀÕË÷²¡¶¾¡¢É¾¿âÅÜ·£¨¶ñÒâ»òʧÎ󣩶¼¿ÉÄÜ·¢Éú¡£ÍêÉÆµÄ±¸·ÝÓë»Ö¸´·½°¸ÊǵÖÓùÔÖÄѵÄÖÕ¼«ÊֶΡ£
ºËÐı¸·Ý¶ÔÏó£º
·þÎñ¶Ë³ÌÐòÓëÅäÖÃÎļþĿ¼£º Õû¸ö·þÎñ¶ËÎļþ¼Ð (°üº¬ gamed, config, start.sh/bat, ...)¡£ÕâÊÇ×î»ù´¡µÄ¡£
Êý¾Ý¿âÊý¾Ý£º ÕâÊÇÍæ¼ÒÕ˺š¢½ÇÉ«¡¢ÎïÆ·¡¢½ø¶ÈµÈºËÐÄ×ʲú£¡
¿Í»§¶Ë¹Ø¼üͬ²½Îļþ£º elements.data, gshop.data, tasks.data, pet.data ¼°Æä .se Îļþ¡£Èç¹û×Ô¼º×öÁËħ¸Ä£¬ËüÃǼ«ÆäÖØÒª¡£
GM¹¤¾ßÓë¹ÜÀí½Å±¾£º ·½±ã»Ö¸´ºó¿ìËÙ¼ÌÐøÔËά¡£
±¸·Ý²ßÂÔ£º
ƵÂÊ£º
Êý¾Ý¿â£º ÔöÁ¿±¸·ÝÿÈÕÒ»´Î£¬È«Á¿±¸·ÝÿÖÜÒ»´Î (¸ß»îÔ¾·þ¿É¸üƵ·±)¡£ÒµÎñµÍ·åÆÚÖ´ÐС£
·þÎñ¶ËĿ¼£º ³ÌÐò´úÂë±ä¶¯ÉÙ¡£ÔÚÿ´ÎÐÞ¸ÄÅäÖûò¸üгÌÐòºóÁ¢¼´±¸·Ý¡£¶¨Ê±È«Á¿±¸·ÝƵÂÊ¿ÉÉԵͣ¨ÈçÿÖÜ£©¡£
·½Ê½£º
Èȱ¸£º Êý¾Ý¿âÔÚÔËÐÐÖнøÐб¸·Ý (Èç mysqldump£¬ InnoDB ÒýÇæ¿ÉÓà --single-transaction ±£Ö¤Ò»ÖÂÐÔ)£¬²»Ó°Ïì·þÎñ¡£
À䱸£º Í£Ö¹·þÎñºó½øÐб¸·Ý¡£×ȫ³¹µ×£¨¶ÔMyISAMÓÈÆä±ØÒª£©£¬µ«ÐèҪͣ»úʱ¼ä¡£
¿ìÕÕ (Snapshot)£º Èç¹ûÄãʹÓÃÔÆ·þÎñÆ÷£¨Èç°¢ÀïÔÆ¡¢ÌÚÑ¶ÔÆECS£©£¬ÀûÓÃÔÆÆ½Ì¨µÄ´ÅÅÌ¿ìÕÕ¹¦ÄÜ¡£ËüÄÜ˲¼ä²¶»ñÕû¸öϵͳÅ̺ÍÊý¾ÝÅÌÔÚij¸öʱ¼äµãµÄ״̬£¬»Ö¸´¼«Æä¿ì½Ý£¨·ÖÖÓ¼¶£©£¬ÊÇÇ¿Á¦²¹³ä¡£½¨Ò鶨ÆÚ´´½¨£¨ÈçÿÈÕ×Ô¶¯¿ìÕÕ£©¡£
´æ´¢£º3-2-1 ÔÔò (»Æ½ð·¨Ôò)
3 ·ÝÊý¾Ý¸±±¾£º ±£ÁôÖÁÉÙÈý¸öÍêÕûµÄÊý¾Ý¸±±¾£¨±¾µØ+ÒìµØ£©¡£
2 ÖÖ²»Í¬½éÖÊ£º ±ÜÃâµ¥µã¹ÊÕÏ¡£ÀýÈ磺·þÎñÆ÷±¾µØÓ²ÅÌ + Áíһ̨·þÎñÆ÷/NAS (Òì»ú) + ÔÆ´æ´¢ (ÒìµØ)¡£
1 ·ÝÒìµØ±¸·Ý£º ½«Ò»·Ý±¸·ÝÊý¾Ý´æ´¢ÔÚÎïÀí·ÖÀëµÄµØ·½£¨ÈçÁíÒ»¸ö»ú·¿¡¢Ôƴ洢Ͱ£©£¬·À·¶»ðÔÖ¡¢Ë®ÔÖµÈÇøÓòÐÔÔÖÄÑ¡£
³£Óô洢½éÖÊ£º
·þÎñÆ÷±¾µØ (ÁÙʱ´æ´¢£¬·Ç³¤¾ÃÖ®¼Æ)
רÓñ¸·Ý·þÎñÆ÷/NAS (¸ß¿É¿¿ÐÔ£¬Ö§³ÖÍøÂç·ÃÎÊ)
¶ÔÏó´æ´¢·þÎñ (Èç°¢ÀïÔÆOSS£¬ ÌÚÑ¶ÔÆCOS£¬ AWS S3)£º¸ß¿É¿¿ÐÔ¡¢¿ÉÀ©Õ¹¡¢ÒìµØÈÝÔÖ¡£³É±¾¿É¿Ø¡£
ÒÆ¶¯Ó²ÅÌ/UÅÌ (ÓÃ×÷ÀëÏßÀ䱸·Ý£¬¶¨ÆÚ¸üÐÂ)
×Ô¶¯»¯£º ʹÓà ¶¨Ê±ÈÎÎñ½Å±¾ (cron/ÈÎÎñ¼Æ»®) + ÃüÁîÐй¤¾ß (mysqldump, tar, rclone) + ÔÆ´æ´¢SDK»òÃüÁî (ossutil, coscmd) ʵÏÖÈ«×Ô¶¯»¯±¸·ÝÉÏ´«¡£
¼ÓÃÜ£º ¶Ô°üº¬Ãô¸ÐÐÅÏ¢£¨ÌرðÊÇÓû§ÃÜÂ룩µÄ±¸·ÝÎļþ£¬Ó¦Ê¹ÓÃÇ¿¼ÓÃÜ (Èç gpg£¬ 7z ¼ÓÃÜѹËõ) ±£»¤¡£
»Ö¸´ÑÝÁ·£¡£º×î¹Ø¼üµÄÒ»²½£¡
±¸·ÝµÄ¼ÛÖµÔÚÓÚÄÜÓÐЧ»Ö¸´£¡¶¨ÆÚ½øÐлָ´ÑÝÁ·ÖÁ¹ØÖØÒª£¡
ÔÚ²âÊÔ»·¾³»òÁÙʱ·þÎñÆ÷ÉÏ£¬³¢ÊÔÓñ¸·ÝÎļþ»Ö¸´·þÎñºÍÊý¾Ý¿â¡£
¼Ç¼ÏêϸµÄ»Ö¸´²½ÖèÎĵµ¡£
²âÁ¿»Ö¸´Ê±¼äÄ¿±ê (RTO) ºÍ»Ö¸´µãÄ¿±ê (RPO)£¬ÑéÖ¤±¸·Ý·½°¸µÄÓÐЧÐÔ¡£
ÔÖÄѻָ´¼Æ»®£º Ã÷È·ÔÖÄѳ¡¾°£¨·þÎñÆ÷ÎïÀíË𻵡¢Êý¾Ý¿âÂ߼ɾ³ý¡¢ÀÕË÷²¡¶¾¼ÓÃÜÊý¾Ý£©ÏµľßÌ帺ÔðÈË¡¢ÁªÏµ·½Ê½ºÍ»Ö¸´²½Öè¡£
µÚËIJ¿·Ö£º³¤ÆÚÔËά - ³ÖÐø¸Ä½øÓëÊÓÒ°ÍØÕ¹
°æ±¾¹ÜÀí£º ¶Ô·þÎñ¶ËºËÐÄÎļþ¡¢ÅäÖÃÎļþ¡¢×Ô¼º±àдµÄ½Å±¾¹¤¾ßʹÓà Git ½øÐа汾¹ÜÀí¡£ÇåÎú¼Ç¼ÿ´ÎÐ޸ĵÄÄÚÈÝ£¬·½±ã×·×ÙÎÊÌâ¡¢±È½Ï²îÒìºÍ»Ø¹ö¡£
µÚÒ»²¿·Ö£ºÖþÀΰ²È«·ÀÏß - µÖÓùÄÚÍâÍþв
·þÎñÆ÷£¬ÓÈÆäÊDZ©Â¶ÔÚ¹«ÍøÉϵģ¬Ê±¿ÌÃæÁÙ¶àÖÖÍþв£º¶ñÒâɨÃè¡¢DDoS¹¥»÷¡¢±©Á¦ÆÆ½â¡¢Êý¾Ýй¶¡¢¶ñÒâ²å¼þµÈ¡£ºöÊÓ°²È«£¬ÇáÔò·þÎñÆ÷å´»ú¡¢Íæ¼ÒÁ÷ʧ£¬ÖØÔòÊý¾Ý±»É¾¡¢¶àÄêÐÄѪ¸¶Ö®Ò»¾æ¡£
·À»ðǽÅäÖ㺵ÚÒ»µÀ³ÇÃÅ
²Ù×÷ϵͳ·À»ðǽ£º
Windows£º È·±£ÏµÍ³·À»ðǽÆôÓ㬲¢Ñϸñ¿ØÖÆÈëÕ¾¹æÔò¡£Ö»¿ª·Å±ØÒªµÄ·þÎñ¶Ë¿Ú£º
Êý¾Ý¿â¶Ë¿Ú£º MySQL (3306/TCP) - ×¢Ò⣺ǿÁÒ½¨Òé½öÏÞÄÚÍø·ÃÎÊ»òÐ޸Ķ˿ڣ¡
ÓÎÏ··þÎñ¶Ë¿Ú£º ÈÏÖ¤¶Ë¿Ú (e.g., 10001, 10101/TCP)£¬ Íø¹Ø¶Ë¿Ú (e.g., 29000, 29100/TCP)£¬ Ïß·¶Ë¿Ú (e.g., 9000-9100/TCP - ¾ßÌå¿´ÄãµÄGsÅäÖÃ)¡£
¹ÜÀí¶Ë¿Ú£º SSH (22/TCP - Linux)£¬ RDP (3389/TCP - Windows - ½¨ÒéÐ޸Ķ˿ڻò½öÏÞÌØ¶¨IP·ÃÎÊ)¡£
Linux (iptables/nftables)£º ÅäÖùæÔòÔÊÐíÖ¸¶¨IP·ÃÎÊÌØ¶¨¶Ë¿Ú£¬¾Ü¾øËùÓÐÆäËûÁ÷Á¿¡£ÀýÈ磺
sudo iptables -A INPUT -p tcp --dport 29000 -j ACCEPT # ÔÊÐíÍø¹Ø¶Ë¿Ú
sudo iptables -A INPUT -p tcp --dport 10101 -j ACCEPT # ÔÊÐíÈÏÖ¤¶Ë¿Ú
sudo iptables -A INPUT -j DROP # ĬÈϾܾøËùÓÐÆäËûÈëÕ¾
ÔÆ·þÎñḚ́²È«×飺 Èç¹ûÄãʹÓð¢ÀïÔÆ¡¢ÌÚÑ¶ÔÆµÈÔÆ·þÎñÆ÷£¬Îñ±ØÔÚÔÆÆ½Ì¨¿ØÖÆÌ¨ÅäÖð²È«×é²ßÂÔ£¬ÆäÓÅÏȼ¶¸ßÓÚϵͳ·À»ðǽ¡£½ö¿ª·ÅÓÎÏ·ºÍ¹ÜÀíËùÐè¶Ë¿Ú£¬¹æÔòÒª¾«×¼£¨Ô´IPÏÞÖÆ¸ü¼Ñ£©¡£
Ó¦ÓóÌÐò·À»ðǽ (WAF)£º Èç¹ûÌṩע²áÍøÒ³»òGM¹ÜÀíºǫ́£¬ÇÒÔ¤ËãÔÊÐí£¬¿É¿¼ÂÇÔÚNginx/Apache²ã²¿ÊðWAF¹æÔò£¬·ÀÓùSQL×¢Èë¡¢XSSµÈWeb¹¥»÷¡£
·þÎñÓëȨÏ޹ܿأº×îСȨÏÞÔÔò
Êý¾Ý¿â°²È«£º
¾ø²»Ê¹ÓÃĬÈÏÕ˺ţº ½ûÓà root Ô¶³Ì·ÃÎÊ£¬½ûֹʹÓÃÈõÃÜÂë»ò¿ÕÃÜÂ롣Ϊ²»Í¬·þÎñ¶Ë×é¼þ´´½¨×¨ÓÃÊý¾Ý¿âÓû§ (e.g., zx_authd, zx_gamed)¡£
¾«Ï¸»¯ÊÚȨ£º ʹÓà GRANT Óï¾ä£¬Ö»ÎªÃ¿¸ö·þÎñÕ˺ÅÊÚÓèÆäËùÐèÊý¾Ý¿âµÄ×îСȨÏÞ (e.g., SELECT, INSERT, UPDATE, DELETE)£¬±ÜÃâ ALL PRIVILEGES¡£
ÐÞ¸ÄĬÈ϶˿ڣº ½« MySQL/MSSQL ¶Ë¿Ú´ÓĬÈ쵀 3306/1433 ¸ÄΪһ¸ö·Ç±ê×¼¶Ë¿Ú¡£
ÏÞÖÆ·ÃÎÊÀ´Ô´£º ÔÚÊý¾Ý¿âÖÐÅäÖÃÖ»ÔÊÐí·þÎñ¶Ë·þÎñÆ÷IP·ÃÎÊÊý¾Ý¿â¡£
²Ù×÷ϵͳÕ˺ţº
±ÜÃâÓà root / Administrator ÈÕ³£²Ù×÷¡£´´½¨ÆÕͨȨÏÞÕ˺ŽøÐвÙ×÷¡£
ÓÃÓÚÔËÐзþÎñ¶Ë³ÌÐòµÄϵͳÕ˺Š(e.g., ÔÚ Linux Ï´´½¨ zxserver Óû§) Ö»¸³Óè·þÎñ¶ËĿ¼µÄ±ØÒª¶ÁдȨÏÞ¡£
SSH/RDP°²È«£º
½ûÓà root Ô¶³Ì SSH µÇ¼ (Linux)¡£
ʹÓÃÃÜÔ¿ÈÏÖ¤Ìæ´úÃÜÂëÈÏÖ¤ (Linux)¡£
ÐÞ¸ÄĬÈ϶˿ڡ£
ʹÓÃÇ¿ÃÜÂë²ßÂÔ¡£
ÅäÖà Fail2Ban (Linux) ×Ô¶¯·â½û¶à´ÎµÇ¼ʧ°ÜµÄIP¡£
Èí¼þ°²È«Óë¸üУº
¼°Ê±´ò²¹¶¡£º ÔÚ³ä·Ö²âÊÔµÄǰÌáÏ£¬¼°Ê±¸üвÙ×÷ϵͳÄںˡ¢Êý¾Ý¿âÈí¼þ¡¢ÔËÐп⣨Èç .NET, VC++£©µÄ°²È«²¹¶¡¡£¹Ø×¢ËùÓ÷þÎñ¶Ë°æ±¾ÊÇ·ñÓÐÒÑÖªÑÏÖØ°²È«Â©¶´¡£
¾¯ÌèµÚÈý·½¹¤¾ß£º ´Ó²»Ã÷À´Ô´ÏÂÔØµÄGM¹¤¾ß¡¢²å¼þ¡¢ÉõÖÁÃÀ»¯²¹¶¡£¬¶¼¿ÉÄܰµ²ØºóÃÅ»ò¶ñÒâ½Å±¾¡£Ö»Ê¹ÓÃÀ´×Ը߶ȿÉÐÅÀ´Ô´µÄ¹¤¾ß£¬²¢Ê¹ÓÃɱ¶¾Èí¼þɨÃè¡£
ÏÞÖÆÉÏ´«Èë¿Ú£º Èç¹ûÌṩÎļþÉÏ´«¹¦ÄÜ£¨ÈçÍæ¼ÒÍ·Ïñ£©£¬ÑϸñÏÞÖÆÉÏ´«ÎļþÀàÐÍ¡¢´óС£¬²¢¶ÔÉÏ´«Îļþ½øÐиôÀëºÍ¶ñÒâÄÚÈݼì²â¡£
µÚ¶þ²¿·Ö£º×Ô¶¯»¯Óë¹ÜÀí - ÌáÉýЧÂÊ£¬½â·ÅË«ÊÖ
·±ËöµÄÈÕ³£²Ù×÷»áÏûºÄ´óÁ¿¾«Á¦¡£ÉÆÓù¤¾ßʵÏÖ×Ô¶¯»¯£¬Äܼ«´óÌáÉýЧÂʺÍÏìÓ¦ËÙ¶È¡£
Åú´¦Àí/Shell½Å±¾£º»ù´¡×Ô¶¯»¯ÉñÆ÷
Ò»¼üÆôÍ££º ±àд start_all.bat (Win) »ò start_all.sh (Linux) ½Å±¾£¬°´Ë³ÐòÆô¶¯Êý¾Ý¿â¡¢ËùÓзþÎñ¶Ë½ø³Ì (authd, gamedbd, uniquenamed, gdeliveryd, Gs1, Gs2...)¡£Í¬Àí±àд stop_all.* ½Å±¾¡£
ÈÕÖ¾ÇåÀí£º ±àд¶¨Ê±ÈÎÎñ½Å±¾ (Windows ÈÎÎñ¼Æ»® / Linux cron)£¬¶¨ÆÚÇåÀíÀϵÄÈÕÖ¾Îļþ (*.log)£¬±ÜÃâÕ¼ÓôóÁ¿´ÅÅ̿ռ䡣Àý (Linux cron):
3 find /path/to/zx/logs/ -name ".log" -mtime +7 -exec rm -f {} \; # ÿÌì3µãɾ³ý7ÌìǰµÄÈÕÖ¾
±¸·Ýµ÷¶È£º ÕûºÏÊý¾Ý¿â±¸·Ý (e.g., mysqldump) ºÍ·þÎñ¶ËĿ¼´ò°üѹËõÃüÁîµ½½Å±¾ÖУ¬½áºÏ cron/ÈÎÎñ¼Æ»® ʵÏÖ×Ô¶¯±¸·Ý£¨¼ûµÚÈý²¿·Ö£©¡£
רҵÔËά¹¤¾ß£º
±¦ËþÃæ°å£º ¶ÔÓÚ²»ÊìϤÃüÁîÐеÄÓû§£¬±¦ËþÃæ°åÌṩÁËÖ±¹ÛµÄWeb½çÃæ½øÐзþÎñÆ÷״̬¼à¿Ø£¨CPU/RAM/Disk/Network£©¡¢·À»ðǽ¶Ë¿Ú¹ÜÀí¡¢¶¨Ê±ÈÎÎñÅäÖá¢Îļþ¹ÜÀí¡¢Êý¾Ý¿â¹ÜÀíµÈ£¬¼«´ó½µµÍÔËάÃż÷¡£°²×°Ê±×¢ÒⰲȫÅäÖá£
Ô¶³Ì×ÀÃæ/SSH¿Í»§¶Ë£º MobaXterm (WindowsÈ«ÄÜ)£¬ Xshell + Xftp (Windows)£¬ Termius (¿çƽ̨)£¬ Windows Ô¶³Ì×ÀÃæ¡£Ñ¡Ôñ˳ÊֵŤ¾ß¸ßЧ¹ÜÀí¡£
¼à¿Ø¸æ¾¯£º
»ù´¡¼à¿Ø£º ʹÓà Prometheus + Grafana + node_exporter (רҵǿ´óµ«¸´ÔÓ)£¬»òÔÆ·þÎñÉÌ×Ô´øµÄ¼à¿ØÏµÍ³£¬¼à¿Ø·þÎñÆ÷CPU¡¢ÄÚ´æ¡¢´ÅÅÌ¡¢ÍøÂç´ø¿í¡¢½ø³Ì״̬¡£ÉèÖÃãÐÖµ¸æ¾¯£¨Óʼþ¡¢Î¢ÐÅ¡¢¶¤¶¤£©¡£
·þÎñ״̬¼à¿Ø£º ¶¨Öƽű¾»ò¹¤¾ß¶¨ÆÚ¼ì²â¹Ø¼ü·þÎñ£¨Èç authd, gamedbd, MySQL£©½ø³ÌÊÇ·ñ´æÔÚ£¬¶Ë¿ÚÊÇ·ñ¼àÌý£¬×Ô¶¯³¢ÊÔÖØÆô²¢¸æ¾¯¡£¼òµ¥µÄÓÐ Supervisor (½ø³ÌÊØ»¤)¡£
ÅäÖùÜÀí¹¤¾ß (¸ß¼¶)£º Ansible, SaltStack ¿ÉÓÃÓÚÔÚ¶ą̀·þÎñÆ÷¼äÅúÁ¿Í¬²½ÅäÖᢲ¿Êð¸üУ¨ÊÊÓÃÓÚ·Ö²¼Ê½²¿Ê𣩡£
Êý¾Ý¿â¹ÜÀíÓÅ»¯£º
Navicat Premium / DBeaver£º Ç¿´óµÄGUI¹¤¾ß£¬ÓÃÓÚ¹ÜÀíÊý¾Ý¿â¡¢Ö´Ðвéѯ¡¢±à¼Êý¾Ý£¨½÷É÷£¡£©¡¢Éè¼Æ±í½á¹¹¡¢±¸·Ý»¹Ô¡£ÊìÁ·ÕÆÎկ书ÄÜÄܼ«´óÌáÉýά»¤Ð§ÂÊ¡£
Âý²éѯÈÕÖ¾£º ¶¨ÆÚ·ÖÎöÊý¾Ý¿âÂý²éѯÈÕÖ¾ (slow_query_log in MySQL)£¬ÕÒ³öÖ´ÐлºÂýµÄSQLÓï¾ä²¢½øÐÐÓÅ»¯£¨Ìí¼ÓË÷Òý¡¢Öع¹²éѯÓï¾ä£©¡£
¶¨ÆÚÓÅ»¯±í£º ¶ÔºËÐÄ¡¢±ä¶¯´óµÄ±í (Èç playeritems, mail, auction) ¶¨ÆÚÖ´ÐÐ OPTIMIZE TABLE <±íÃû>; (MyISAMÒýÇæÐ§¹ûºÃ£¬InnoDB½÷É÷ʹÓÃ)£¬ÓÅ»¯¿Õ¼äºÍÐÔÄÜ¡£
µÚÈý²¿·Ö£ºÊý¾Ý±¸·Ý - ×îºóµÄÉúÃüÏß
Èκΰ²È«´ëÊ©¶¼ÎÞ·¨×öµ½100%±£ÏÕ¡£Ó²¼þ¹ÊÕÏ¡¢Îó²Ù×÷¡¢ÀÕË÷²¡¶¾¡¢É¾¿âÅÜ·£¨¶ñÒâ»òʧÎ󣩶¼¿ÉÄÜ·¢Éú¡£ÍêÉÆµÄ±¸·ÝÓë»Ö¸´·½°¸ÊǵÖÓùÔÖÄѵÄÖÕ¼«ÊֶΡ£
ºËÐı¸·Ý¶ÔÏó£º
·þÎñ¶Ë³ÌÐòÓëÅäÖÃÎļþĿ¼£º Õû¸ö·þÎñ¶ËÎļþ¼Ð (°üº¬ gamed, config, start.sh/bat, ...)¡£ÕâÊÇ×î»ù´¡µÄ¡£
Êý¾Ý¿âÊý¾Ý£º ÕâÊÇÍæ¼ÒÕ˺š¢½ÇÉ«¡¢ÎïÆ·¡¢½ø¶ÈµÈºËÐÄ×ʲú£¡
¿Í»§¶Ë¹Ø¼üͬ²½Îļþ£º elements.data, gshop.data, tasks.data, pet.data ¼°Æä .se Îļþ¡£Èç¹û×Ô¼º×öÁËħ¸Ä£¬ËüÃǼ«ÆäÖØÒª¡£
GM¹¤¾ßÓë¹ÜÀí½Å±¾£º ·½±ã»Ö¸´ºó¿ìËÙ¼ÌÐøÔËά¡£
±¸·Ý²ßÂÔ£º
ƵÂÊ£º
Êý¾Ý¿â£º ÔöÁ¿±¸·ÝÿÈÕÒ»´Î£¬È«Á¿±¸·ÝÿÖÜÒ»´Î (¸ß»îÔ¾·þ¿É¸üƵ·±)¡£ÒµÎñµÍ·åÆÚÖ´ÐС£
·þÎñ¶ËĿ¼£º ³ÌÐò´úÂë±ä¶¯ÉÙ¡£ÔÚÿ´ÎÐÞ¸ÄÅäÖûò¸üгÌÐòºóÁ¢¼´±¸·Ý¡£¶¨Ê±È«Á¿±¸·ÝƵÂÊ¿ÉÉԵͣ¨ÈçÿÖÜ£©¡£
·½Ê½£º
Èȱ¸£º Êý¾Ý¿âÔÚÔËÐÐÖнøÐб¸·Ý (Èç mysqldump£¬ InnoDB ÒýÇæ¿ÉÓà --single-transaction ±£Ö¤Ò»ÖÂÐÔ)£¬²»Ó°Ïì·þÎñ¡£
À䱸£º Í£Ö¹·þÎñºó½øÐб¸·Ý¡£×ȫ³¹µ×£¨¶ÔMyISAMÓÈÆä±ØÒª£©£¬µ«ÐèҪͣ»úʱ¼ä¡£
¿ìÕÕ (Snapshot)£º Èç¹ûÄãʹÓÃÔÆ·þÎñÆ÷£¨Èç°¢ÀïÔÆ¡¢ÌÚÑ¶ÔÆECS£©£¬ÀûÓÃÔÆÆ½Ì¨µÄ´ÅÅÌ¿ìÕÕ¹¦ÄÜ¡£ËüÄÜ˲¼ä²¶»ñÕû¸öϵͳÅ̺ÍÊý¾ÝÅÌÔÚij¸öʱ¼äµãµÄ״̬£¬»Ö¸´¼«Æä¿ì½Ý£¨·ÖÖÓ¼¶£©£¬ÊÇÇ¿Á¦²¹³ä¡£½¨Ò鶨ÆÚ´´½¨£¨ÈçÿÈÕ×Ô¶¯¿ìÕÕ£©¡£
´æ´¢£º3-2-1 ÔÔò (»Æ½ð·¨Ôò)
3 ·ÝÊý¾Ý¸±±¾£º ±£ÁôÖÁÉÙÈý¸öÍêÕûµÄÊý¾Ý¸±±¾£¨±¾µØ+ÒìµØ£©¡£
2 ÖÖ²»Í¬½éÖÊ£º ±ÜÃâµ¥µã¹ÊÕÏ¡£ÀýÈ磺·þÎñÆ÷±¾µØÓ²ÅÌ + Áíһ̨·þÎñÆ÷/NAS (Òì»ú) + ÔÆ´æ´¢ (ÒìµØ)¡£
1 ·ÝÒìµØ±¸·Ý£º ½«Ò»·Ý±¸·ÝÊý¾Ý´æ´¢ÔÚÎïÀí·ÖÀëµÄµØ·½£¨ÈçÁíÒ»¸ö»ú·¿¡¢Ôƴ洢Ͱ£©£¬·À·¶»ðÔÖ¡¢Ë®ÔÖµÈÇøÓòÐÔÔÖÄÑ¡£
³£Óô洢½éÖÊ£º
·þÎñÆ÷±¾µØ (ÁÙʱ´æ´¢£¬·Ç³¤¾ÃÖ®¼Æ)
רÓñ¸·Ý·þÎñÆ÷/NAS (¸ß¿É¿¿ÐÔ£¬Ö§³ÖÍøÂç·ÃÎÊ)
¶ÔÏó´æ´¢·þÎñ (Èç°¢ÀïÔÆOSS£¬ ÌÚÑ¶ÔÆCOS£¬ AWS S3)£º¸ß¿É¿¿ÐÔ¡¢¿ÉÀ©Õ¹¡¢ÒìµØÈÝÔÖ¡£³É±¾¿É¿Ø¡£
ÒÆ¶¯Ó²ÅÌ/UÅÌ (ÓÃ×÷ÀëÏßÀ䱸·Ý£¬¶¨ÆÚ¸üÐÂ)
×Ô¶¯»¯£º ʹÓà ¶¨Ê±ÈÎÎñ½Å±¾ (cron/ÈÎÎñ¼Æ»®) + ÃüÁîÐй¤¾ß (mysqldump, tar, rclone) + ÔÆ´æ´¢SDK»òÃüÁî (ossutil, coscmd) ʵÏÖÈ«×Ô¶¯»¯±¸·ÝÉÏ´«¡£
¼ÓÃÜ£º ¶Ô°üº¬Ãô¸ÐÐÅÏ¢£¨ÌرðÊÇÓû§ÃÜÂ룩µÄ±¸·ÝÎļþ£¬Ó¦Ê¹ÓÃÇ¿¼ÓÃÜ (Èç gpg£¬ 7z ¼ÓÃÜѹËõ) ±£»¤¡£
»Ö¸´ÑÝÁ·£¡£º×î¹Ø¼üµÄÒ»²½£¡
±¸·ÝµÄ¼ÛÖµÔÚÓÚÄÜÓÐЧ»Ö¸´£¡¶¨ÆÚ½øÐлָ´ÑÝÁ·ÖÁ¹ØÖØÒª£¡
ÔÚ²âÊÔ»·¾³»òÁÙʱ·þÎñÆ÷ÉÏ£¬³¢ÊÔÓñ¸·ÝÎļþ»Ö¸´·þÎñºÍÊý¾Ý¿â¡£
¼Ç¼ÏêϸµÄ»Ö¸´²½ÖèÎĵµ¡£
²âÁ¿»Ö¸´Ê±¼äÄ¿±ê (RTO) ºÍ»Ö¸´µãÄ¿±ê (RPO)£¬ÑéÖ¤±¸·Ý·½°¸µÄÓÐЧÐÔ¡£
ÔÖÄѻָ´¼Æ»®£º Ã÷È·ÔÖÄѳ¡¾°£¨·þÎñÆ÷ÎïÀíË𻵡¢Êý¾Ý¿âÂ߼ɾ³ý¡¢ÀÕË÷²¡¶¾¼ÓÃÜÊý¾Ý£©ÏµľßÌ帺ÔðÈË¡¢ÁªÏµ·½Ê½ºÍ»Ö¸´²½Öè¡£
µÚËIJ¿·Ö£º³¤ÆÚÔËά - ³ÖÐø¸Ä½øÓëÊÓÒ°ÍØÕ¹
°æ±¾¹ÜÀí£º ¶Ô·þÎñ¶ËºËÐÄÎļþ¡¢ÅäÖÃÎļþ¡¢×Ô¼º±àдµÄ½Å±¾¹¤¾ßʹÓà Git ½øÐа汾¹ÜÀí¡£ÇåÎú¼Ç¼ÿ´ÎÐ޸ĵÄÄÚÈÝ£¬·½±ã×·×ÙÎÊÌâ¡¢±È½Ï²îÒìºÍ»Ø¹ö¡£

