## Ò»¡¢ºËÐÄÎÊÌⶨλÓëµ×²ãÂß¼
µ±Íæ¼ÒÔÚÍâÍøµÇ¼ʱ³öÏÖ**ÈËÎï½çÃæÎÞ·¨µã»÷¿ªÊ¼/Í˳ö**£¬½öÄܲÙ×÷"»Ö¸´ÈËÎï"°´Å¥Ê±£¬Õâ±¾ÖÊÉÏÊÇ**¿Í»§¶ËÓë·þÎñ¶ËͨѶÁ´Â·ÖжÏ**µÄ±íÏÖ¡£¸ù¾ÝµÄ¶à°¸ÀýÑéÖ¤£¬¸Ã¹ÊÕϵĸùÔ´Ö÷Òª·Ö²¼ÔÚÒÔÏÂÈý¸ö²ãÃæ£º
### 1.1 Íø¹ØÂß¼´íÎ󣨻ùÓÚ£©
- **¶Ë¿Ú·ÖÅä³åÍ»**£ºµ±RungateÍø¹ØÎ´ÕýÈ·¿ªÆô¶àÏß³Ìģʽʱ£¬Èô¿Í»§¶ËÇëÇó±»·ÖÅ䵽δÆô¶¯µÄÍø¹ØÊµÀý£¬½«µ¼ÖÂÖ¸ÁîÎÞÏìÓ¦
- **ͨѶÐÒéÒì³£**£ºLoginGate£¨µÇÂ¼Íø¹Ø£©ÓëSelGate£¨½ÇÉ«Íø¹Ø£©µÄÐÒé°æ±¾²»Ò»Ö£¨ÈçʹÓÃGOMÒýÇæÈ´ÅäÖÃÁËHEROµÄ¶Ë¿Ú¹æÔò£©
### 1.2 ÍøÂçÍØÆËȱÏÝ£¨»ùÓÚ£©
- **NAT´©Í¸Ê§°Ü**£ºÎ´ÕýÈ·Ó³Éä7100£¨½ÇÉ«Íø¹Ø¶Ë¿Ú£©ºÍ7200£¨ÓÎÏ·Íø¹Ø¶Ë¿Ú£©
- **·À»ðǽÀ¹½Ø**£ºWindows Defender»òµÚÈý·½·À»ðǽ¹ýÂËÁËUDP 7200-7300¶Ë¿Ú¶Î
### 1.3 ÒýÇæ¼æÈÝÐÔ£¨»ùÓÚ£©
- **Win7¼æÈÝģʽδÆôÓÃ**£º64Î»ÏµÍ³Î´Ç¿ÖÆÒÔXP SP3ģʽÔËÐеǼÆ÷
- **Êý¾Ý°üУÑé´íÎó**£ºÒýÇæ°æ±¾Óë¿Í»§¶Ë²¹¶¡µÄCRC32УÑ鲻ƥÅä
---
## ¶þ¡¢ÏµÍ³ÐÔ½â¾ö·½°¸È«Á÷³Ì
### 2.1 Íø¹ØÅäÖÃУ׼£¨¹Ø¼ü²½Ö裩
#### ²½Öè1£º¶àÏß³ÌÍø¹ØÐÞÕý
1. ´ò¿ª**RungateÅäÖÃÆ÷** → È¡Ïû¹´Ñ¡"ʹÓöàÏß³ÌÍø¹Ø"£¨²Î¿¼£©
2. ÊÖ¶¯Æô¶¯3¸öRungateʵÀý£º
```bat
start Rungate.exe -p 7200
start Rungate.exe -p 7201
start Rungate.exe -p 7202
```
3. ÔÚ**MirServer\Mir200\!Setup.txt**ÖÐÈ·ÈÏÍø¹Ø¶ÔÓ¦¹ØÏµ£º
```ini
[Gate]
Gate0=127.0.0.1 7200
Gate1=127.0.0.1 7201
Gate2=127.0.0.1 7202
```
#### ²½Öè2£º¶Ë¿ÚÓ³ÉäÓÅ»¯
¸ù¾ÝµÄÍâÍø¼ÜÉè¹æ·¶£¬ÐèÔÚ·ÓÉÆ÷Íê³ÉÒÔÏÂÓ³É䣺
| ·þÎñÃû³Æ | ÄÚÍø¶Ë¿Ú | ÍâÍø¶Ë¿Ú | ÐÒéÀàÐÍ |
|-------------|----------|----------|----------|
| LoginGate | 7000 | 7000 | TCP/UDP |
| SelGate | 7100 | 7100 | TCP |
| RunGate1 | 7200 | 7200 | UDP |
| RunGate2 | 7201 | 7201 | UDP |
> **ÑéÖ¤ÃüÁî**£º`telnet ÄãµÄÍâÍøIP 7100` Ó¦·µ»Ø"Connected"
---
### 2.2 ·þÎñ¶ËÉî¶Èµ÷ÊÔ
#### ·½°¸A£ºÐÒé×·×Ù·ÖÎö
1. ʹÓÃWiresharkץȡµÇ¼¹ý³ÌÊý¾Ý°ü
2. ¹ýÂË`ip.dst == ·þÎñÆ÷IP && udp.port == 7200`
3. ¼ì²éµÚ4½×¶ÎÊý¾Ý°üÊÇ·ñ°üº¬`0x3A 0x7B`ÌØÕ÷Âë
**µäÐÍ´íÎóÊý¾ÝÁ÷**£º
```
0000 00 1A 3D 71 D5 3D 00 15 17 3D 3C DF 08 00 45 00
0010 00 34 00 00 40 00 40 11 7A 8C C0 A8 01 64 C0 A8
0020 01 02 1C 3C 1C 3C 00 20 00 00 00 00 00 00 00 00
0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
```
*ȱʧ0x3A 0x7B±íʾ½Çɫ״̬ͬ²½Ê§°Ü*
#### ·½°¸B£º·þÎñ¶ËÈÕÖ¾Õï¶Ï
1. ²é¿´`MirServer\Log\SelGate.log`
2. ¹ýÂË"PlayerEnter"¹Ø¼ü´Ê
3. Õý³£ÈÕÖ¾Ó¦ÏÔʾ£º
```
2025-04-04 12:34:56 [INFO] PlayerEnter: User=TestUser IP=123.45.67.89 CharIndex=1
```
Èôδ³öÏָüǼ£¬ËµÃ÷½ÇÉ«Íø¹ØÎ´ÊÕµ½½øÈëÓÎÏ·ÇëÇó
---
### 2.3 ¿Í»§¶Ë¼æÈÝÐÔÐÞÕý
¸ù¾ÝµÄWin7ÓÅ»¯·½°¸£º
1. ÓÒ¼üµÇ¼Æ÷ → ÊôÐÔ → ¼æÈÝÐÔ
2. ¹´Ñ¡"ÒÔ¼æÈÝģʽÔËÐÐ" → Ñ¡Ôñ"Windows XP (Service Pack 3)"
3. ¹´Ñ¡"ÒÔ¹ÜÀíÔ±Éí·ÝÔËÐд˳ÌÐò"
4. ÉèÖÃDPIËõ·ÅΪ"Ó¦ÓóÌÐò"
**¸ß¼¶ÐÞ¸´**£¨Õë¶Ô4KÏÔʾÆ÷£©£º
```reg
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Legend\Display]
"HighDPI"=dword:00000001
"ScalingFactor"=dword:00000080
```
---
## Èý¡¢ÍâÍø»·¾³ÑéÖ¤Á÷³Ì
### 3.1 ÍøÂçÁ¬Í¨ÐÔ²âÊÔ¾ØÕó
| ²âÊÔÏî | ±¾»ú½á¹û | ÍâÍø½á¹û | ºÏ¸ñ±ê×¼ |
|-----------------------|----------|----------|-------------------|
| Telnet 7100¶Ë¿Ú | Á¬Í¨ | Á¬Í¨ | ÏÔʾ"Connected" |
| UDP 7200¶Ë¿ÚÑÓ³Ù | <50ms | <100ms | ÎÞ¶ª°ü |
| Êý¾Ý°üÍù·µÍêÕûÐÔ | 100% | ≥98% | ʹÓÃPingPlotterÑéÖ¤ |
### 3.2 ×Ô¶¯»¯¼ì²â½Å±¾
```powershell
# ÍâÍø¶Ë¿ÚɨÃè½Å±¾
$ports = @(7000,7100,7200,7201)
foreach ($port in $ports) {
$result = Test-NetConnection -ComputerName ÄãµÄÍâÍøIP -Port $port
Write-Output "$port ״̬: $($result.TcpTestSucceeded)"
}
```
---
## ËÄ¡¢½ø½×¹ÊÕÏÅŲéÖ¸ÄÏ
### 4.1 ¶àÒýÇæ¶Ô±È²âÊÔ
| ÒýÇæÀàÐÍ | ½ÇÉ«Íø¹ØÏìӦʱ¼ä | ×î´ó²¢·¢Á¬½Ó | ÐÒ鼿ÈÝÐÔ |
|------------|------------------|--------------|------------|
| GOMÒýÇæ | 120ms | 500 | ÐèרÓõǼÆ÷ |
| HEROÒýÇæ | 85ms | 800 | ͨÓÃÐÔÇ¿ |
| 3KM2ÒýÇæ | 200ms | 300 | Ðè²¹¶¡Ö§³Ö |
> ÈôÎÊÌâ½öÔÚÌØ¶¨ÒýÇæ³öÏÖ£¬½¨Òé¸ü»»ÎªHEROÒýÇæ
### 4.2 ÄÚ´æ³ØÕï¶Ï
1. ʹÓÃProcess Explorer²é¿´M2Server.exeµÄÄÚ´æ·ÖÅ䣺
- **Private Bytes**Ó¦Îȶ¨ÔÚ1.2-1.8GBÇø¼ä
- **Handle Count**³¬¹ý10000¿ÉÄܵ¼Ö¾ä±úй©
2. Èô·¢ÏÖÄÚ´æÒì³££¬×¢Èëµ÷ÊÔÆ÷·ÖÎö£º
```windbg
.load msec
!heap -p -a 0x79691
```
---
## Îå¡¢³¤Ð§Ô¤·À»úÖÆ
### 5.1 ·þÎñ¶Ë²¿Êð¹æ·¶
- **¶Ë¿Ú¸ôÀëÔÔò**£ºÃ¿¸öÍø¹ØÊµÀýʹÓöÀÁ¢¶Ë¿Ú¶Î£¨ÈçRunGate1=7200-7250£¬RunGate2=7251-7300£©
- **Ë«»úÈȱ¸·½°¸**£º²¿Êð±¸ÓÃSelGateÍø¹Ø£¨¶Ë¿Ú7101£©£¬ÔÚMir200\Mirgate.iniÖÐÅäÖãº
```ini
[BackupGate]
IP=192.168.1.100
Port=7101
```
### 5.2 ×Ô¶¯»¯ÔËάÌåϵ
1. ´´½¨¶Ë¿Ú¼à¿ØÈÎÎñ£º
```bat
:monitor
netstat -ano | findstr ":7100"
if %errorlevel%==1 (start SelGate.exe)
timeout /t 60
goto monitor
```
2. ÅäÖÃZabbix±¨¾¯¹æÔò£º
- ´¥·¢Æ÷£ºSelGate½ø³Ì´æ»î״̬=0³ÖÐø2·ÖÖÓ
- ¶¯×÷£º×Ô¶¯ÖØÆô·þÎñ²¢·¢ËÍÓʼþ¸æ¾¯
µ±Íæ¼ÒÔÚÍâÍøµÇ¼ʱ³öÏÖ**ÈËÎï½çÃæÎÞ·¨µã»÷¿ªÊ¼/Í˳ö**£¬½öÄܲÙ×÷"»Ö¸´ÈËÎï"°´Å¥Ê±£¬Õâ±¾ÖÊÉÏÊÇ**¿Í»§¶ËÓë·þÎñ¶ËͨѶÁ´Â·ÖжÏ**µÄ±íÏÖ¡£¸ù¾ÝµÄ¶à°¸ÀýÑéÖ¤£¬¸Ã¹ÊÕϵĸùÔ´Ö÷Òª·Ö²¼ÔÚÒÔÏÂÈý¸ö²ãÃæ£º
### 1.1 Íø¹ØÂß¼´íÎ󣨻ùÓÚ£©
- **¶Ë¿Ú·ÖÅä³åÍ»**£ºµ±RungateÍø¹ØÎ´ÕýÈ·¿ªÆô¶àÏß³Ìģʽʱ£¬Èô¿Í»§¶ËÇëÇó±»·ÖÅ䵽δÆô¶¯µÄÍø¹ØÊµÀý£¬½«µ¼ÖÂÖ¸ÁîÎÞÏìÓ¦
- **ͨѶÐÒéÒì³£**£ºLoginGate£¨µÇÂ¼Íø¹Ø£©ÓëSelGate£¨½ÇÉ«Íø¹Ø£©µÄÐÒé°æ±¾²»Ò»Ö£¨ÈçʹÓÃGOMÒýÇæÈ´ÅäÖÃÁËHEROµÄ¶Ë¿Ú¹æÔò£©
### 1.2 ÍøÂçÍØÆËȱÏÝ£¨»ùÓÚ£©
- **NAT´©Í¸Ê§°Ü**£ºÎ´ÕýÈ·Ó³Éä7100£¨½ÇÉ«Íø¹Ø¶Ë¿Ú£©ºÍ7200£¨ÓÎÏ·Íø¹Ø¶Ë¿Ú£©
- **·À»ðǽÀ¹½Ø**£ºWindows Defender»òµÚÈý·½·À»ðǽ¹ýÂËÁËUDP 7200-7300¶Ë¿Ú¶Î
### 1.3 ÒýÇæ¼æÈÝÐÔ£¨»ùÓÚ£©
- **Win7¼æÈÝģʽδÆôÓÃ**£º64Î»ÏµÍ³Î´Ç¿ÖÆÒÔXP SP3ģʽÔËÐеǼÆ÷
- **Êý¾Ý°üУÑé´íÎó**£ºÒýÇæ°æ±¾Óë¿Í»§¶Ë²¹¶¡µÄCRC32УÑ鲻ƥÅä
---
## ¶þ¡¢ÏµÍ³ÐÔ½â¾ö·½°¸È«Á÷³Ì
### 2.1 Íø¹ØÅäÖÃУ׼£¨¹Ø¼ü²½Ö裩
#### ²½Öè1£º¶àÏß³ÌÍø¹ØÐÞÕý
1. ´ò¿ª**RungateÅäÖÃÆ÷** → È¡Ïû¹´Ñ¡"ʹÓöàÏß³ÌÍø¹Ø"£¨²Î¿¼£©
2. ÊÖ¶¯Æô¶¯3¸öRungateʵÀý£º
```bat
start Rungate.exe -p 7200
start Rungate.exe -p 7201
start Rungate.exe -p 7202
```
3. ÔÚ**MirServer\Mir200\!Setup.txt**ÖÐÈ·ÈÏÍø¹Ø¶ÔÓ¦¹ØÏµ£º
```ini
[Gate]
Gate0=127.0.0.1 7200
Gate1=127.0.0.1 7201
Gate2=127.0.0.1 7202
```
#### ²½Öè2£º¶Ë¿ÚÓ³ÉäÓÅ»¯
¸ù¾ÝµÄÍâÍø¼ÜÉè¹æ·¶£¬ÐèÔÚ·ÓÉÆ÷Íê³ÉÒÔÏÂÓ³É䣺
| ·þÎñÃû³Æ | ÄÚÍø¶Ë¿Ú | ÍâÍø¶Ë¿Ú | ÐÒéÀàÐÍ |
|-------------|----------|----------|----------|
| LoginGate | 7000 | 7000 | TCP/UDP |
| SelGate | 7100 | 7100 | TCP |
| RunGate1 | 7200 | 7200 | UDP |
| RunGate2 | 7201 | 7201 | UDP |
> **ÑéÖ¤ÃüÁî**£º`telnet ÄãµÄÍâÍøIP 7100` Ó¦·µ»Ø"Connected"
---
### 2.2 ·þÎñ¶ËÉî¶Èµ÷ÊÔ
#### ·½°¸A£ºÐÒé×·×Ù·ÖÎö
1. ʹÓÃWiresharkץȡµÇ¼¹ý³ÌÊý¾Ý°ü
2. ¹ýÂË`ip.dst == ·þÎñÆ÷IP && udp.port == 7200`
3. ¼ì²éµÚ4½×¶ÎÊý¾Ý°üÊÇ·ñ°üº¬`0x3A 0x7B`ÌØÕ÷Âë
**µäÐÍ´íÎóÊý¾ÝÁ÷**£º
```
0000 00 1A 3D 71 D5 3D 00 15 17 3D 3C DF 08 00 45 00
0010 00 34 00 00 40 00 40 11 7A 8C C0 A8 01 64 C0 A8
0020 01 02 1C 3C 1C 3C 00 20 00 00 00 00 00 00 00 00
0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
```
*ȱʧ0x3A 0x7B±íʾ½Çɫ״̬ͬ²½Ê§°Ü*
#### ·½°¸B£º·þÎñ¶ËÈÕÖ¾Õï¶Ï
1. ²é¿´`MirServer\Log\SelGate.log`
2. ¹ýÂË"PlayerEnter"¹Ø¼ü´Ê
3. Õý³£ÈÕÖ¾Ó¦ÏÔʾ£º
```
2025-04-04 12:34:56 [INFO] PlayerEnter: User=TestUser IP=123.45.67.89 CharIndex=1
```
Èôδ³öÏָüǼ£¬ËµÃ÷½ÇÉ«Íø¹ØÎ´ÊÕµ½½øÈëÓÎÏ·ÇëÇó
---
### 2.3 ¿Í»§¶Ë¼æÈÝÐÔÐÞÕý
¸ù¾ÝµÄWin7ÓÅ»¯·½°¸£º
1. ÓÒ¼üµÇ¼Æ÷ → ÊôÐÔ → ¼æÈÝÐÔ
2. ¹´Ñ¡"ÒÔ¼æÈÝģʽÔËÐÐ" → Ñ¡Ôñ"Windows XP (Service Pack 3)"
3. ¹´Ñ¡"ÒÔ¹ÜÀíÔ±Éí·ÝÔËÐд˳ÌÐò"
4. ÉèÖÃDPIËõ·ÅΪ"Ó¦ÓóÌÐò"
**¸ß¼¶ÐÞ¸´**£¨Õë¶Ô4KÏÔʾÆ÷£©£º
```reg
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Legend\Display]
"HighDPI"=dword:00000001
"ScalingFactor"=dword:00000080
```
---
## Èý¡¢ÍâÍø»·¾³ÑéÖ¤Á÷³Ì
### 3.1 ÍøÂçÁ¬Í¨ÐÔ²âÊÔ¾ØÕó
| ²âÊÔÏî | ±¾»ú½á¹û | ÍâÍø½á¹û | ºÏ¸ñ±ê×¼ |
|-----------------------|----------|----------|-------------------|
| Telnet 7100¶Ë¿Ú | Á¬Í¨ | Á¬Í¨ | ÏÔʾ"Connected" |
| UDP 7200¶Ë¿ÚÑÓ³Ù | <50ms | <100ms | ÎÞ¶ª°ü |
| Êý¾Ý°üÍù·µÍêÕûÐÔ | 100% | ≥98% | ʹÓÃPingPlotterÑéÖ¤ |
### 3.2 ×Ô¶¯»¯¼ì²â½Å±¾
```powershell
# ÍâÍø¶Ë¿ÚɨÃè½Å±¾
$ports = @(7000,7100,7200,7201)
foreach ($port in $ports) {
$result = Test-NetConnection -ComputerName ÄãµÄÍâÍøIP -Port $port
Write-Output "$port ״̬: $($result.TcpTestSucceeded)"
}
```
---
## ËÄ¡¢½ø½×¹ÊÕÏÅŲéÖ¸ÄÏ
### 4.1 ¶àÒýÇæ¶Ô±È²âÊÔ
| ÒýÇæÀàÐÍ | ½ÇÉ«Íø¹ØÏìӦʱ¼ä | ×î´ó²¢·¢Á¬½Ó | ÐÒ鼿ÈÝÐÔ |
|------------|------------------|--------------|------------|
| GOMÒýÇæ | 120ms | 500 | ÐèרÓõǼÆ÷ |
| HEROÒýÇæ | 85ms | 800 | ͨÓÃÐÔÇ¿ |
| 3KM2ÒýÇæ | 200ms | 300 | Ðè²¹¶¡Ö§³Ö |
> ÈôÎÊÌâ½öÔÚÌØ¶¨ÒýÇæ³öÏÖ£¬½¨Òé¸ü»»ÎªHEROÒýÇæ
### 4.2 ÄÚ´æ³ØÕï¶Ï
1. ʹÓÃProcess Explorer²é¿´M2Server.exeµÄÄÚ´æ·ÖÅ䣺
- **Private Bytes**Ó¦Îȶ¨ÔÚ1.2-1.8GBÇø¼ä
- **Handle Count**³¬¹ý10000¿ÉÄܵ¼Ö¾ä±úй©
2. Èô·¢ÏÖÄÚ´æÒì³££¬×¢Èëµ÷ÊÔÆ÷·ÖÎö£º
```windbg
.load msec
!heap -p -a 0x79691
```
---
## Îå¡¢³¤Ð§Ô¤·À»úÖÆ
### 5.1 ·þÎñ¶Ë²¿Êð¹æ·¶
- **¶Ë¿Ú¸ôÀëÔÔò**£ºÃ¿¸öÍø¹ØÊµÀýʹÓöÀÁ¢¶Ë¿Ú¶Î£¨ÈçRunGate1=7200-7250£¬RunGate2=7251-7300£©
- **Ë«»úÈȱ¸·½°¸**£º²¿Êð±¸ÓÃSelGateÍø¹Ø£¨¶Ë¿Ú7101£©£¬ÔÚMir200\Mirgate.iniÖÐÅäÖãº
```ini
[BackupGate]
IP=192.168.1.100
Port=7101
```
### 5.2 ×Ô¶¯»¯ÔËάÌåϵ
1. ´´½¨¶Ë¿Ú¼à¿ØÈÎÎñ£º
```bat
:monitor
netstat -ano | findstr ":7100"
if %errorlevel%==1 (start SelGate.exe)
timeout /t 60
goto monitor
```
2. ÅäÖÃZabbix±¨¾¯¹æÔò£º
- ´¥·¢Æ÷£ºSelGate½ø³Ì´æ»î״̬=0³ÖÐø2·ÖÖÓ
- ¶¯×÷£º×Ô¶¯ÖØÆô·þÎñ²¢·¢ËÍÓʼþ¸æ¾¯

