|
发表于 2004-4-10 14:31:43
|
显示全部楼层
QUOTE
以下为引用:
很多人做4F端口映射都很不成功,不是不开门,就是进入后黑屏,但是一般都能进入到输入帐号和密码的界面,这是为什么呢?关键问题就是传奇这个游戏的进入时的3次客户端连接过程,(其他游戏大部分也类似)。
传奇的3次连接过程为,1-连接到 logingate上,输入完用户和密码后,出现选择服务器画面,选择完服务器后,2-连接到SelChrGate上,选择完人物后,3-连接到RunGate上开始游戏。
关键问题在这里,由于传奇游戏在设计的时候,几个Gate是在不同的机器上运行的,(在此驳斥一下所谓的盛大服务器控制端,难道盛大穷的只有一台服务器?)每个Gate所在地机器的IP地址很可能是不同的,(当初设计的时候没有打算到用NAT),但是我们说服务器的时候只说了一个IP地址,那其他地址怎么办呢?原来这里有一个有趣的引导过程,在你进入loginGate,选择了服务器名称后,LoginGate就会在他自己的表(就是mirservermud2logsvr!addrtable.txt)中选出服务器名称对应的IP地址(remote)和端口(Gates),告诉客户端,这时客户端按照这个地址去连接SelChrGate,选择好人物后,SelChrGate又会告诉你RunGate的地址(就是mirservermud2dbsrv200addrtable.txt)和端口(mirservermud2dbsrv200serverinfo.txt)。
由于种种原因,我们在那些配置文件中只能写一个IP地址(每个Gate的IP地址可以不同)但同一个Gate不管对内网还是外网都是一样的IP地址(多机负载同样如此),这就要求我们所写的这个IP地址不管内网外网都要能访问,这个IP地址应该写什么呢,对,就是主服务器的外网IP,但是这时候,用winroute做端口映射的问题就来了,比如内网192.168.1.0/8 主服务器192.168.1.1,4F主机192.168.1.2,内网客户机192.168.2.9,主服务器外网218.218.218.218,已知主服务器在218.218.218.218开了一个端口3000指向192.168.1.2的3000端口,从192.168.1.9上运行telnet 218.218.218.218 3000 就会不能连接,这时候的现象就是外网能进,正常,内网不开门,当你把每个Gate的地址都改为内网IP 192.168.1.2的时候(这是不对的),内网能进了,外网进不来,因为他们收到的引导地址是192.168.1.2,一个他们永远也不可能连上的地址,
当这种情况发生后,要从端口映射上动手。
文章最后说“要从端口映射上动手”,但是没有了下文,不知道如何动手?有没有人可以解答?
根据albortcn所说的,只要内网可以通过外网ip访问内网服务器,问题就解决了。
如果是这样的话,在CL的端口映射设置时加dns就可以解决问题了 |
|