奇迹mu 服务端的常用端口及功能

来源: 作者: 点击:
奇迹mu 服务端的常用端口及功能

奇迹服务端,只有几个端口是需要对外开放的,其余端口,都是可以关闭的,避免过多的开放端口被攻击。

常用的奇迹服务端端口:
CS端口:44405
JS端口:55970
GS端口:55901 55903 55909

风之恋登录器端口:33446
数据库端口:1433

奇迹私发服服务器各程序启动参数分析,服务端带参数启动的程序有以下几个:
DataServer.exe 55960 创建55960数据交换端口
DataServer.exe 55962 创建55962数据交换端口
CS.exe 此程序虽然是不带参运行,但是默认创建了 44405 和 55557 UDP监听端口
JoinServer.exe /p55970 /caIP地址甲 /cp55557 创建55970监听端口 同时与IP地址甲的55557端口建立连接
GameServer.exe IP地址乙 55970 IP地址丙 55960 55901 与IP地址乙的55970端口,IP地址丙的55960端口建立连接,同时创建55901游戏端口

这些端口都有什么用呢?以下将继续更新 客户端透过服务器与数据库建立直接联系的全过程, 明白了这些,就可以知道哪些数据到底通过什么端口连接了哪个IP, 对于根据自己的情况采取合适的分机分线策略很有益处。

分析服务器启动过程和客户连接过程的数据通讯链路和通讯方式

服务器的启动:

启动两个DS创建了55960和55902端口做为数据通讯端口,这个相信大家都很容易理解。
启动CS后创建了两个端口 44405和55557。此时CS主程序面板上有个 JoinServer Live 现在的值是 OFF,意思就是说,JoinServer目前关闭中,它是怎么知道的呢?紧接CS启动的就是JS,它创建了55970端口,同时与CS创建的55557端口建立UDP连接,此时大家可以看到CS的JoinServer Live 值变成了ON,因为JS启动后向指定IP的55557端口发送了一个消息,表示JS启动完成,同时保持此端口的通讯,后面的GS启动会用到。GS启动完成后,与JS所创建的55970端口建立连接,发送一个包含GS信息的数据包,包括了GS启动的IP,验证码等信息,由JS记录后,从5557通道传送给CS,作为接受客户登陆时验证和连接信息使用,此时,JS和CS都已经认可了GS的启动,标志着整个服务器的启动完成。

客户端的连接:

我们常用登陆器都知道,客户端最初的连接是 某服务器 XXX.XXX.XXX.XXX 44405。这个44405在服务器端是由CS创建的,也就是说,客户端最初连接的是CS,CS接收到一个连接信息后,先判断客户端信息和由JS从55557送来的GS信息是否匹配,如果匹配则通过验证,从ConnectServer.dat文件中读取全部GS列表信息,所以客户端实际连接的IP和端口是由ConnectServer.dat文件来定义的。当客户成功登陆GS的时候,CS与用户脱离连接,同时由55557UDP通道向JS发送一个登陆信息,JS将此信息写入menb_stat表中,并对其进行管理和监视。此时,客户已经同GS建立了完全的连接,如果这个时候关闭CS对已连接的用户也是没有影响的。GS和客户的连接通道是由GS启动参数中的最后一个端口定义的,一般为55901,同时GS还通过55970联系着JS,随时向JS发送用户是否在线的信息以及判断JS存在的信息。GS的另外一个连接通道是通过55960与DS建立的连接,DS又通过ODBC与数据库建立了连接。所以说,客户与数据库之间的连接经历了 GS-DS-ODBC-SQL几个中转,GS进行数据运算,DS进行数据存储服务,ODBC提供数据连接服务,SQL提供数据库服务。这就是客户与数据库建立完全连接的全部过程。当然,同时服务器各个程序之间还进行着复杂交错的数据通信。