传奇版本

传奇论坛外网映射内网的最终解密

[复制链接]
查看53784 | 回复15 | 2012-12-12 19:20:38 | 显示全部楼层 |阅读模式
比较详细的说明了映射的一些理论
会给人一些启发 希望能有高人做出新的上外网的方法也许有朋友已经看过了
那就在温习一次吧
端口映射的必要性
大家知道
一个服务器想要被别人访问
就一定要有别人认可的IP地址
在局域网中(简单局域网
无路由)
要有和别人子网相同的IP地址
在广域网中
要有合法的Internet地址
才能被别人访问到
小常识:
10.0.0.0/8:10.0.0.0~10.255.255.255
172.16.0.0/12:172.16.0.0~172.31.255.255
192.168.0.0/16:192.168.0.0~192.168.255.255
这些IP地址都是保留地址
只能在局域网中使用
由于现在的IPv4地址资源很紧张
最多到 223.255.255.255
现在已分配到 219.xxx.xxx.xxx, 所以绝大多数网吧、单位只有一个或少数几个IP地址(数据局除外).所以大多数采用了NAT(network address translating)网络地址转换的方法来访问internet,除了主服务器
别人都不具备internet合法地址
如果你的网吧想建4F(包括任何服务),除非你的4F运行在主服务器上(太不安全了)
否则就要用到端口映射
2.端口映射的方法
其实端口映射很简单
很多软件都支持端口映射
比如windows 2000的routing  remote access, Wingate, Winroute, Portmap, 等等等等
简直是不计其数
注意:所有的端口映射软件都是工作在上网主机(218.218.218.218)上的
不过他们所说的破解封外一条龙的4F的端口映射不在这个讨论范围内
但是他们的工作原理又大不相同
routing  remote access 和winroute 是工作在链路层(互联层)的
而其他大部分则是工作在应用层
他们的区别就是
当别人连到你内网的服务器的时候
前者看到的是他们的真实IP,后者看到是你的主服务器的内部IP.
理论上
工作在链路层的效率比应用层要高
所以winroute 和 routing  remote access是首选
因为他们既支持NAT有支持portmap, 由于其他一些原因
我选择的是winroute.
但是用winroute 和routing  remote access 做端口映射的问题就是内网无法连接到服务器所开放的外网的端口上
这个问题将是我们一会将要讨论的重点问题
3.4F的端口映射问题
很多人做4F端口映射都很不成功
不是不开门
就是进入后黑屏
但是一般都能进入到输入帐号和密码的界面
这是为什么呢?关键问题就是传奇这个游戏的进入时的3次客户端连接过程
(其他游戏大部分也类似)
传奇的3次连接过程为,1-连接到 logingate上
输入完用户和密码后
出现选择服务器画面,选择完服务器后,2-连接到SelChrGate上
选择完人物后,3-连接到RunGate上开始游戏
关键问题在这里
由于传奇游戏在设计的时候
几个Gate是在不同的机器上运行的
(在此驳斥一下所谓的盛大服务器控制端
难道盛大穷的只有一台服务器?)每个Gate所在地机器的IP地址很可能是不同的
(当初设计的时候没有打算到用NAT)
但是我们说服务器的时候只说了一个IP地址
那其他地址怎么办呢?原来这里有一个有趣的引导过程
在你进入loginGate
选择了服务器名称后
LoginGate就会在他自己的表(就是/mirserver/mud2/logsvr/!addrtable.txt)中选出服务器名称对应的IP地址(remote)和端口(Gates),告诉客户端
这时客户端按照这个地址去连接SelChrGate,选择好人物后
SelChrGate又会告诉你RunGate的地址(就是/mirserver/mud2/dbsrv200/addrtable.txt)和端口(/mirserver/mud2/dbsrv200/serverinfo.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,一个他们永远也不可能连上的地址
当这种情况发生后
要从端口映射上动手
4.手把手教你做端口映射
4.1测试端口映射成功与否
各种软件的端口映射方法大同小异
一般有4个空是必须添得
外部IP
外部端口
内部IP
内部端口
这两个内部指的是 192.168.1.2这台机器
当然
有些软件还有其他选项
比如IP地址限制(黑名单)
最大连接数
流量检测等等
    推荐软件PortMap.

先做一个测试端口映射
在主服务器IP218.218.218.218(根据你自己的IP写)上开3000端口
(是端口号3000,不是3000个)指向192.168.1.2:3000, 192.168.1.2这台机器上只运行一个loginsvr.exe, 这时候在 192.168.1.9这台机器上(在4F主机192.168.1.2也可)运行telnet 192.168.1.2 3000
应该显示在线人数0人
服务器名称等信息,然后再试
运行telnet 218.218.218.218 3000
(根据你自己主机的地址改变) 如果这时候仍能看到和刚才一样的现象
恭喜你
映射十分成功,接下来的工作只要把每个Gate的IP都改成外网IP
就启动整个4F了
然后再做好7000 7100 7200 三个端口映射
就可以进行测试了
(如果你确定你的Gate的IP地址写的正确
那么如果不成功也不用重新启动4F,只是改动端口映射软件就行了)
每次只要测试 telnet 218.218.218.218 7xxx, 看看能不能连上就可以了
如果不能连上
换一换你的端口映射软件
5
提高篇
刚才说了winroute,现在该说他了
如果你用的软件是PortMap累的软件
你会看见所有外网的人登陆IP都是192.168.1.1,这可怎么封IP地址呢
也没法管理呀
这时候就要用到Winroute了
Winroute强大的功能和超强的稳定性无疑伦比的速度至今令我十分佩服
他就是我梦寐以求
寻找了多年的NAT软件
提供了所有我想要功能
包括Multi-NAT
但是美中不足
不能做4F的端口映射软件
就是因为他不能提供内网机器通过外网地址访问内网机器
但是我又不想舍弃
怎么办呢?办法有了
用Winroute和PortMap组合使用
因为他们工作在不同的协议层
所以并不互相冲突
两个都配置好端口映射后
Winroute的优先级比别人高
他先判断
如果是外网访问
他就负责转发
如果是内网
他就会把请求转发给PortMap,简直是太棒了
兼顾了速度和通用性
而且屏蔽IP地址简直易如反掌
还把内网和外网的访问给分开了
Winroute中包含了一个详尽的使用说明
可惜是英文
晚些时候我会翻译给大家的
这就是我现在用的端口映射方法
6
另类方法
这种方法完全不用端口映射
把3个Gate拷到主服务器上
连配置文件也不用改
依次运行
4F主机配置好后
运行除3个Gate外的所有程序
即可
盛大采用的就是这种方法
推荐所有人使用这种方法
7
其他情况
有些网吧没有主服务器
NAT在路由器上实现
那就要在路由器上做端口映射
部分路由器支持内部机器通过外部IP地址访问内部机器
对于不支持的
暂时没有办法解决
    这些问题不在此文章讨论范围之内
8
总结
本文只讲述了端口映射方法和4F端口映射不能成功的原因以及注意事项

论坛一条龙
虚无 | 2014-3-8 19:52:11 | 显示全部楼层
系统居然说我是在灌水,我有吗?
小蛋 | 2014-3-8 20:28:14 | 显示全部楼层
楼主是我最崇拜的人!
猫猫是猫猫 | 2014-3-8 20:19:03 | 显示全部楼层
楼主主机很热情啊!
郑宏 | 2014-3-8 20:14:16 | 显示全部楼层
今天皮痒了?
风云科技 | 2014-3-8 20:03:29 | 显示全部楼层
楼主是一个典型的文艺青年啊!
lixipei01 | 2014-3-25 16:15:51 | 显示全部楼层
有品位!
lixipei01 | 2014-3-25 15:46:34 | 显示全部楼层
楼上的能详细介绍一下么?
popmuyzih | 2014-3-25 16:19:41 | 显示全部楼层
帖子很有深度!
youhun1121 | 2014-3-25 15:51:38 | 显示全部楼层
感觉不错!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则