奇迹MU服务端常用的游戏端口有哪些?
架设奇迹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记录后,从55557端口传送给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提供数据库服务。这就是客户与数据库建立完全连接的全部过程。当然,同时服务器各个程序之间还进行着复杂交错的数据通信。
感谢您的阅读,服务器大本营-技术文章内容集合站,助您成为更专业的服务器管理员! 好东西,赞一个! 收藏了,楼主加油! 找了好久了{:14_695:} 这有人用过么,? 收藏了,改天让朋友看看! 支持感谢大佬分享 收藏了,怕楼主删了! 顶!顶!顶! {:14_686:}厉害了,感谢老板驰网飞飞!