我最近搭建了一个私人游戏电信高防服务器100g,怎样把官方原游戏客户端的游戏ip,修改成我搭建的私服的游戏ip

最近好多人看过的文章:
作为一个新时代的人,真的是离不开Google。但国内大环境如此,访问Google困难重重。但是再难,工作也是要展开的!我们之前还可以通过购买商家们的爬墙服务来实现访问Google,但这阵严打,这类服务商死掉了一大批,很多朋友也平白遭受了损失!以后政策会越来越收紧,能提供此类服务的商家会越来越少,取得合法资质运营此类业务的商家,其费用估计也是天价。在这种情况下,我推荐大家自行搭翻墙SS服务器翻墙,个人自己搭建自己使用的梯子,不会成为重点打击对象。
以下教程并非推销,也并非复制粘贴,小编亲测(现在也是在用这个,已用一年多了,非常稳定,访问外网就像打开百度一样快)!对了,小编最近刚刚用它翻墙购买了一台Google Pixel 2 XL,还在运输途中呢!据说这部手机拍照非常Nice,有点迫不及待了!好了,再说就偏题了,哈哈哈…
注:特别说明!此翻墙SS服务器适用于各种常见终端设备(Windows、Mac OS、安卓Android、IOS、梅林等等系统),不限制终端数量并可多人同时在线,但建议少分享(一传十十传百,不保证每个人都不乱来,很容易被封)…
以下文件若涉及解压密码,一律为“www.yigeni.com”。
本教程介绍的并非免费翻墙,需要购买一台境外服务器来作为自己的专用翻墙SS服务器。本篇教程全程傻瓜化,无任何技术难度,不需要输入任何命令,不需要记住任何代码。
分三步走,大概花十分钟就能建立起你自己的专用翻墙SS服务器,完全不必觉得这会非常困难。本篇教程以Bandwagonhost(搬瓦工)的 10G KVM – PROMO VPS(本服务器比较火爆,有时会出现断货,记得选择KVM服务器)为基础,使用Shadowsocks为梯子程序。
※废话不多说,开始本篇教程。
先打开以下链接,然后选择一款KVM主机,再按如下步骤“1、”处开始一步一步操作。
对了,如果需要小编代劳,请打赏手续费50块,谢谢,保证搭建成功!
—&点击打开以下链接:
…………………………………………………………………………………………………………………………………..
主机配置:SSD:10G | 内存:512M | CPU:1x Intel Xeon | 流量:500G/月 | 链接速度:1千兆 | 免费更换IP
(使用优惠码“BWH1ZBPVK”再省6%)
主机配置:SSD:20G | 内存:1G | CPU:2x Intel Xeon | 流量:1TB/月 | 链接速度:1千兆 | 免费更换IP
(使用优惠码“BWH1ZBPVK”再省6%)
(使用优惠码“BWH1ZBPVK”再省6%)
搬瓦工官网地址:
…………………………………………………………………………………………………………………………………..
1、购买一台境外服务器用于搭建翻墙SS服务器的服务端
选择一款KVM主机购买:
年付 19.99 美元 KVM 架构 VPS(本教程采用此服务器,本服务器比较火爆,有时会出现断货)1 核 CPU 512M 内存 每月 500G 流量&– 本篇教程使用
说明:以上搬瓦工在售的套餐中,不可更换机房与IP的套餐搬瓦工说明为 “DIRECT ROUTE” 中国直连路由,但实测意义不大,和普通版机房几无差别。
直连VPS:流量更大,但不可更换机房与IP。
普通VPS:流量偏小(够用),但可更换机房与IP(防止被封)。
OK!各有优缺点,自己取舍。对了,最近搬瓦工更新了IP新规则,详见&&…
为什么要选年付呢?因为年付相比每月付款等于5.5折!搬瓦工也有30天退款保证,觉得不好用再申请退款也可以(月付基本上已经取消了)。
6个数据中心可选,建议选择“Los(洛杉矶)” ,离中国距离最近,开通以后也可以随意切换(直连路由套餐无法切换)。选完之后,点击最下面的“Add to Cart”。
进入到购物车,可以看到结账明细,下面有优惠码输入框,输入“BWH1ZBPVK”6%优惠码,然后点击“Validate Code”,节省一点是一点吧。
输入之后是这样的之后点“Checkout”结账。
新用户会要求填写一些信息注册账户,全部用拼音如实填写即可。注意地址一定要如实填写,不用写得那么细,但起码要和你所在城市一样,要不检测到 IP 地址与填写城市不一致,会被判欺诈,导致购买失败!
三种支付方式供选择,哪个方便选哪个吧,本次以某宝为例说明。
点“Complete Order”后再点“Pay now”。
跳转到某宝网站选择扫码或登陆账号完成支付。
支付成功!
跳转回搬瓦工,显示订单完成,并显示订单号,购买服务器完成!
2、搭建 shadowsocks server 端
搬瓦工直接在后台集成了Shadowsokcs,登陆后台就能一键安装,方便小白用户(它知道你们看见命令行会头痛)。
在用户中心 选择 My Services。
可以看到你刚才购买的服务器已经激活运行,点击 KiviVM Control Panel 进入 VPS 管理面板,进入面板后你会看到一些服务器的运行信息,如内存使用量,磁盘使用量,流量使用情况等,可能你会看不懂,没关系,略过这些,我们直接安装shadowsocks server 如下图所示!
注:最近很多新购买的服务器在VPS管理面板没有“Shadowsocks Server”这一项,若是发生此原因,请按如下操作即可正常安装!若页面中没有Shadowsocks Server这一项,说明一键搭建SS功能被去掉了,这时候需要在当前浏览器的新标签中打开以下网址:
https://kiwivm.64clouds.com/main-exec.php?mode=extras_shadowsocks
,打开后就是安装页面,点击页面中的Install Shadowsocks Server安装即可(安装前提是服务器已打开运行)。特别强调:VPS管理面板“Shadowsocks Server”这一项是被去掉的,所以之后所有ss服务器操作与管理都只能通过以上链接打开!
安装成功显示如下:
点击“Go Back”后,看到如下图:
(建议将端口改成“8443”,其实1~65535都ok,只要没被占用或冲突,最终须保持服务端与客户端一致)
然后,往下拉浏览器滚动条,就能看到“Shadowsocks Server”的配置信息了,如下图所示:
Shadowsocks服务端配置完成!
记住上图信息,后面客户端信息按此图对应填写(IP、端口、密码、加密方式)即可!
注:若安装完Shadowsocks Server后,“Status”不是显示“Running”,而是显示“Stopped”,接着点击“Start”后出现“Shadowsocks Server Failed to start(error:8411770)”。即SS服务无法启动,一直处于停止状态。那么遇到此情况,请参考“”这篇文章。
若可正常启动请忽略此段文字。
3、配置 shadowsocks 本地客户端
搬瓦工不愧为 Linux 小白挚友,直接在后台就给出了客户端配置教程。
对了,以下所有文件,如有解压密码,密码均为:www.yigeni.com!
安卓Android手机用户:
方法一:直接下载–&(提取密码:7di1,文件解压密码:www.yigeni.com)。
方法二:访问 Google Play 商店下载 。手机里没有 play 商店?无法翻墙?废话…没关系,打开“http://apps.evozi.com/apk-downloader/”,然后将链接“https://play.google.com/store/apps/details?id=com.github.shadowsocks”粘贴进去进行下载,当然也可搜索APK名称进行下载。
注:最好使用小编推荐链接下载,第三方其它路径下载可能会出现问题。
对了,如果旧版本不能用,可尝试下载最新版本,
下载地址–&:“https://github.com/shadowsocks/shadowsocks-android/releases”。
IOS 苹果 Iphone 用户:
方法一:a、首先保证电脑(Windows系统)安装了iTunes,然后使用数据线将苹果手机连接到电脑,并能识别到手机;
b、接着关闭iTunes,然后在电脑浏览器中打开“https://www.25pp.com/ios/search_app_0/Shadowrocket/”,接着点击下面的“Shadowrocket”下载,这时会弹出一个窗口,接着点击“立即安装”,然后PP助手会自动下载到本地电脑上,接着再将下载好的PP助手安装到电脑上;
c、到这里之后,再返回“https://www.25pp.com/ios/search_app_0/Shadowrocket/”点击“Shadowrocket”下载,这时你会看到“Shadowrocket”正在手机上安装,等待安装完成;
d、好了,可以打开IOS苹果手机端“Shadowrocket”了,接着在APP界面点击”添加节点“,填写搬瓦工ss服务器对应配置信息即可;
方法二:直接在App Store里选择以下App之一安装。
比如:Shadowrocket(2.99美元)、FirstWingy(0.99美元)、Wingy(0.99美元)等,其它相关APP请自行测试。
注:由于苹果IOS系统比较奇葩,以上App下载需要“美国苹果ID”(支付须外币卡或某宝充值),中国苹果ID可能无法搜索App或下载。
点此查看–&(提取密码:5ez4)!
Mac OS 用户:
直接下载–&(提取密码:q559,文件解压密码:www.yigeni.com)。
注:如果旧版本不能用,可尝试下载最新版本,
下载地址–&:“https://github.com/shadowsocks/ShadowsocksX-NG/releases”。
Windows 用户:
直接下载–&(提取密码:k7ti,文件解压密码:www.yigeni.com)。
或尝试新版本:(提取密码:13pm,文件解压密码:www.yigeni.com)。
注:需要Microsoft .NET Framework 3.5支持(Windows 7以下,含Windows 7),
下载地址–&:”http://www.microsoft.com/zh-CN/download/details.aspx?id=21″。
或需要Microsoft .NET Framework 4.6.2支持(Windows 7以上,不含Windows 7),
下载地址–&:”https://www.microsoft.com/zh-cn/download/details.aspx?id=53321″。
对了,如果旧版本不能用,可尝试下载最新版本,
下载地址–&:“https://github.com/shadowsocks/shadowsocks-windows/releases”。
注意:此工具不是 VPN 之类全局代理,本质上只是一个 Socks5 代理,通过修改系统代理实现翻墙,可能会被某卫士或其它电脑安全管家之类的软件静默阻止,造成软件运行出错。运行前请退出某卫士或某管家,或把 SS 客户端加入其白名单!建议最好不要安装某卫士或管家,安装正统的杀毒软件,如卡巴斯基、NOD32、诺顿、McAfee,这些软件都不会对SS进行阻止!
Windows客户端操作:
这是绿色软件,下载之后解压就能用(部分电脑需要安装.NET),打开 shadowsocks.exe 会看到通知栏有一个纸飞机图标 双击它!
填入服务端信息后确定,会自己最小化到通知栏,右键单击-启用系统代理(其中“系统代理模式”一般为“PAC模式”,有时可尝试切一切)。
好了,你可以打开浏览器看下能不能正常访问YouTube或Google!
OK!Windows客户端搞定!
安卓Android客户端操作:
打开手机ss客户端,点击右上角+号,选择手动设置。
在弹出页面中填写你的ss(Shadowsocks Server)服务器IP、远程端口、密码、加密方式,点击对号保存,如下图:
OK!安卓Android客户端搞定!
IOS苹果Iphone客户端操作:
打开小飞机,点击“添加节点”,输入对应ss(Shadowsocks Server)服务器信息即可,如下图:
OK!IOS苹果Iphone客户端搞定!
Mac OS客户端操作:
解压帖子里下载的RAR文件之后双击安装,安装完成之后即可看到小飞机ss在右上角运行,然后再点击“服务器设置”,在打开的窗口左下角点击“+”号,之后再填写ss(Shadowsocks Server)服务器信息即可科学上网了!参考如下图:
OK!Mac OS客户端搞定!
–&安全提醒:
a、网上有一些人在售卖或者免费提供SS 帐号(或者所谓的什么加速服务),我想说的是,你永远不知道电脑那一端的那个陌生人在想些什么,想干什么!使用别人提供的 SS 帐号是有安全隐患的,因为他知道你的加密方式,并且服务端掌握在他手里,他是可以对你的网络通信进行监听的,我们做外贸的,有时信息泄露的后果挺严重的,望大家慎重;
b、Shadowsocks 只是一个帮你穿越长城防火墙的小工具,它无法帮你保持匿名!在使用时务必遵守中国(人在中国)和服务器所在地(服务器在美国)的法律!墙外言论纷杂,接收信息时务必保持自己的理性思辨;
不差钱!不想用美国的服务器,只要速度快!没问题!阿里云HK、LinodeJP 等高富帅服务器欢迎你!
特别说明(解答操作遇到问题的网友):
1、很多网友还没仔细看帖或没有动手就说不会,然后各种问小编(抱歉,小编没有义务回答无脑问题,精力有限),遇到问题麻烦细心点多使用排除法,仔细读帖三遍或带详细服务器配置图及客户端配置图在QQ群与大家讨论!
对了,如果需要小编代劳,请打赏手续费50块,谢谢,保证搭建成功;
2、有些网友反应“搬瓦工”无法直接注册,这可能是“搬瓦工”故意为了防恶意注册吧!解决方法:选择一款KVM主机,然后按步骤购买并填好注册信息,即可成功注册(其实,按小编帖子一步一步来就不会有问题);
3、翻墙速度的快慢跟服务器没关系,服务器很稳定的,主要看你本地网络(如果网络不纯净就会有问题,比如拨打电信10000或拨打移动10086或拨打联通10010报装的网络就没什么问题),当然手机4G就是看信号了。电脑端有时会出现国内网站打不开,在“系统代理模式”那里切换“PAC模式”与“全局模式”,一般是“PAC模式”(也就是智能分流模式,根据规则去匹配你所访问的网站,国外网站走代理,国内网站不走代理),部分特殊网站需要“全局模式”(国内外所有网站都走代理)才能打开。具体更多请自行百度或谷歌搜索;
4、特别补充说明,PC端或手机端配置填写错误是没有任何提示的,包括密码错误。建议复制粘贴各项参数;
5、如果你发现什么也没动,之前正常突然上不了的话(先排除网络与手机问题),那么小编建议去搬瓦工服务器面板重新更新一下端口或者重启一下服务器,当然小编上了半年就遇到这种情况一次,哈哈哈;
6、很多用户说延时太高,无法接受,那么请问打开Youtube 1080P是不是秒开,国外网站是不是秒开?那不就ok!你是用来翻出去,不是用来实时监控或实时在线或打游戏等,如果有此要求,请一定要买上面的搬瓦工香港服务器。这种情况无论哪家VPS都会是这样,距离原因,中国本土的香港服务器就没有问题;
7、如果购买服务器时是选择“普通版QN机房”的,后期使用是可以更换不同机房的(中国直连不可更换),一般更换机房会更换IP,当然也可能会导致SS服务器需要重新搭建(即重新安装服务器系统与Shadowsocks Server)。
小编建议:非操作熟练的不要瞎折腾了;对了,如果IP被封,搬瓦工每10周可免费更换一次IP,当然被封的IP也可以付费更换,并且付费已由原来的8美元变成2.8美元(显示是8美元,支付时是2.8美元),具体链接&&;
8、登录搬瓦工官网(https://bwh1.net/aff.php?aff=30544),然后依次点击Services–&My Services–&KiwiVM Control Panel,进去之后,接着就能看到左侧菜单栏有一项“Migrate to another DC”,ok,点击进去选择自己想要更换的机房即可(若IP被封无法更换机房,正常IP才可更换机房);
9、部分极少数用户电脑或手机系统较新,有的会出现下载本站网盘客户端无法使用(建议更新客户端试试),如果仍不行,可进入本站官方①群:(验证码:www.yigeni.com,错误不给进,以及进群之后不知道帖子在哪或伸手党的直接 T!)讨论,群文件里会有最新版本下载。其它问题请反馈或者留言或者发送Email至:,小编会尽快回复各位。
注:非使用本站ss服务器的进群一律T,请找对应组织!
–&另外,为了更好的翻墙,附上各平台版本Google Chrome 浏览器,以下为官方原始版(无任何修改)。
Windows 32位 Chrome 下载地址:;
Windows 64位 Chrome 下载地址:;
##### Android Chrome 下载地址:;
##### Mac OS Chrome 下载地址:;
喜欢这篇文章 !? 请作者喝杯咖啡 !?
您的支持将鼓励我们继续创作!
用 [微信] 扫描二维码打赏
用 [支付宝] 扫描二维码打赏
分享/收集生活中的美,遇见世界上另外一个你!...
搭建ss – 赵立强董星的小屋后使用快捷导航没有帐号?
请完成以下验证码
查看: 1669|回复: 6
游戏服务器怎么搭建服务器群?多服务器怎么共享IP?IP怎么重定向?
在线时间197 小时
芯币1835枚
E金币124枚
TA的帖子TA的资源
一粒金砂(高级), 积分 305, 距离下一级还需 195 积分
一粒金砂(高级), 积分 305, 距离下一级还需 195 积分
公司需要开发一个骨干网机房网络产品,有硬件板卡,多个板卡有单独IP,但与外界连接需要有个公用IP,现在对共用IP这个技术开发团队缺乏相关技术指导。为了形象说明需求,我以游戏服务器来说明。
目前我所了解的网络协议:
我们家里面的路由器都有NAT地址转换功能,内网多台IP可以用一个外网IP访问Internet,但是NAT规则要求必须是内部用户向外界发出connect请求,于是在路由器上有个短暂的“开门时间”,外部的应答数据才能被路由器转发。
若外部服务器想connect内部用户,NAT的“门关闭”数据被截断掉。
未知技术:
倘若用户玩某网游,在选择服务器区时选择“上海电信区”,在连接server(110.0.0.1)后,server怎么将数据包“重定向”到192.168.0.3?
我个人认为server在这里即做服务器或者说代理服务器、又做路由器。
公司所要开发的硬件板卡就是类似“上海电信区”、“广东电信区”,其中有一台电脑做server。现在的情况就是不知道给server做什么配置可以完成“重定向”功能。
在线时间197 小时
芯币1835枚
E金币124枚
TA的帖子TA的资源
一粒金砂(高级), 积分 305, 距离下一级还需 195 积分
一粒金砂(高级), 积分 305, 距离下一级还需 195 积分
这个是Cisco Packet Tracer仿真文件,做个网络备份,顺便赚点芯币
16:49 上传
点击文件名下载附件
174.79 KB, 下载次数: 4
售价: 2 枚芯币 &[]
在线时间197 小时
芯币1835枚
E金币124枚
TA的帖子TA的资源
一粒金砂(高级), 积分 305, 距离下一级还需 195 积分
一粒金砂(高级), 积分 305, 距离下一级还需 195 积分
C:\Documents and Settings\Administrator\桌面
在线时间197 小时
芯币1835枚
E金币124枚
TA的帖子TA的资源
一粒金砂(高级), 积分 305, 距离下一级还需 195 积分
一粒金砂(高级), 积分 305, 距离下一级还需 195 积分
C:\Documents and Settings\Administrator\桌面\sd.JPG
在线时间197 小时
芯币1835枚
E金币124枚
TA的帖子TA的资源
一粒金砂(高级), 积分 305, 距离下一级还需 195 积分
一粒金砂(高级), 积分 305, 距离下一级还需 195 积分
这个是图片
(25.1 KB, 下载次数: 0)
19:48 上传
在线时间197 小时
芯币1835枚
E金币124枚
TA的帖子TA的资源
一粒金砂(高级), 积分 305, 距离下一级还需 195 积分
一粒金砂(高级), 积分 305, 距离下一级还需 195 积分
解决了,我已经在Cisco Packet Tracer模拟器上用NATP端口地址转换解决我的需求
在线时间9849 小时
威望185651分
芯币17880枚
TA的帖子TA的资源
谢谢分享 :)
2017,加油!继续为中国电子行业做出小小的贡献吧!
EEWORLD 官方微信
Powered by【转】网游加速器原理、技术与实现 - 神奇的旋风 - 博客园
随笔 - 813, 文章 - 0, 评论 - 23, 引用 - 0
网游加速器是针对个人用户快速连接网游服务器的一种服务。为了解决国内南北网络互联瓶颈的问题,&网络加速器&厂商通过搭建多个高带宽的双线机房(或通过租用双线VPS主机),并在这些机房的两大线路中架设多个节点服务器,然后为其编写&网络加速器客户端&,通过客户端判断用户的网络线路类型,并将用户应用客户端的网络数据转发到指定的节点服务器,由节点服务器转发给用户应用客户端请求的真正服务器。&网络加速器客户端&通过自动选择速度最快的节点服务器进行数据转发,以达到数据加速作用。优秀的网络加速器可以有效减少网络丢包和网络延迟。
本文基于前期对各种加速器的分析以及对其中的关键技术进行试验。文章首先对互联网上流行的网游加速器分析结果进行简要汇总,然后针对各种不同的加速器实现方式进行详细实现细节的介绍。
2.&流行加速器分析
本文前期对目前流行的网游加速器(或网络加速器)客户端进行了一定的深度分析,了解了这些网络加速器的使用特点、应用领域以及所采用的关键技术。目前网络上流行的网络加速器主要有:迅游加速器、迅雷网游加速器、盛大ET加速器、LavaVPN、NetPas等。
迅游加速器(http://www.xunyou.com)和迅雷网络加速器迅游版(http://jaisuqi.xunlei.com)是专门针对网游的加速器。迅雷共有两款加速器,自研的&给力加速器&提供免费加速服务,&迅游版加速器&是与迅游合作的产品。它们在软件UI设计和功能大致相同,使用流程也如出一辙:启动加速功能前需要选择指定的游戏及其区服,注意:待加速游戏必须是其客户端列表中指定的游戏,对于未指定的游戏不能被加速。
启动加速后加速客户端对其全部节点服务器进行测速(迅游加速器部署了82个节点服务器),然后选择速度最快的服务器作为转发服务器,并在本地建立IP地址以172开头的虚拟网卡(局域网地址)。启动后通过抓包工具分析,所有发送到该游戏服务器的数据都是从该172开头的虚拟网卡地址发出的,而不是从物理网卡地址发出。通过查看路由表,被加速的游戏当前所使用的服务器被增加到了路由表中,并指向了该172开头的虚拟网卡地址。
在对迅游加速器分析过程中还发现,迅游加速器在加速过程中使用了LSP技术(一种通过在TCP/IP协议上层安装一层用户自定义协议,可以对WinSock2&&API进行拦截的技术),并对WSAConnnect函数进行了拦截。
迅雷给力加速器也提供了四种加速模式,模式一采用的是基于LSP的代理加速方式,通过LSP技术,将用户的网络数据直接转发给代理服务器,再由代理服务器将数据转发给真正的游戏服务器;模式二采用的是基于L2TP协议的VPN技术;模式三采用的是基于PPTP协议的VPN技术;模式四采用的是基于基于OpenVPN的VPN技术。这三种模式在启动加速后都需要修改路由表,以实现针对指定目的IP的加速功能。
LavaVPN(http://www.lavajsq.com,已经改名为LavaJSQ)是一款可以针对所有网络应用进行加速的网络加速器。它采用了VPN技术对网络进行加速,并提供四种VPN协议模型进行加速:PPTP、L2TP、OpenVPN(SSL_TCP)、OpenVPN(SSL_UDP),并可以通过增删路由表的形式,针对不同的应用进行加速:仅加速国外访问、仅加速对网通(电信)的网络访问、仅加速某些进程的网络访问等等。
对LavaVPN的分析过程中未发现其有使用到LSP技术的迹象。
盛大ET加速器(http://etspeed.sdo.com)是一款可以针对网络游戏加速以及语音加速的工具。ET加速器在结构设计上与迅游加速器有明显区别,但是功能类似:仅支持对其游戏列表中的游戏加速、启动加速功能后在本机建立了虚拟网卡,并添加了指向虚拟网卡地址的路由、在本机安装了LSP协议。ET加速器启动加速后,在&我的连接&面板里新增出现了一个名为&etaaaaaa&的网络连接。
3.&加速器实现方式概要
通过对以上加速器的分析进行参考,并查阅相关资料,目前主流的加速技术可以采用两种方式来实现:&代理服务器方式&和&VPN方式&。
代理服务器方式通过部署SOCKS5代理服务器作为加速节点,加速客户端自动选择最快的代理服务器作为当前的转发节点。在客户端主要采用LSP技术,在用户的主机安装分层协议,在游戏客户端调用connect函数(或WSAConnect函数)试图连接游戏服务器时,将连接重定向到代理服务器,并采用SOCKS5协议规范与代理服务器进行数据协商,由代理服务器来连接真正的游戏服务器,并将游戏服务器的数据原封不动转发给用户、将用户的数据原封不动转发给游戏服务器。
VPN方式需要部署双线VPN服务器作为加速节点,加速客户端自动选择速度最快的VPN服务器,并通过VPN拨号连接到VPN服务器并获取一个虚拟IP地址,同时通过修改路由表的方式,将指定进程的网络访问路由到虚拟IP上,而其余地址仍经过原默认路由途径访问。
下面就这两种加速方式的具体实现以及重要的技术难点进行详细分析。另外,报告中的所有代码截图均来自之前写的测试程序,并测试通过;VPN加速方式由主要进行了原理的详细介绍,并编写了支持PPTP协议的VPN客户端和服务器进行了测试。
4.&VPN加速方式
4.1.&VPN加速概述
VPN技术常常被广泛应用于&网游加速技术&和&FQ技术&中。如前面提到的迅游加速器、迅雷网游加速器、LavaVPN都采用到了VPN技术进行加速,而且目前主流的网游加速器都主要是采用的VPN技术。由于VPN环境的测试需要建立VPN服务器,本人的测试环境有限,所以只是进行了客户端的代码编写并连接通过,无法做相关的代理效果的测试。下面只针对实现的流程和原理给以介绍。
4.2.&VPN加速实现步骤
通过建立如下步骤,可以采用VPN技术来实现网络加速:
1.&部署双线VPN服务器节点;
2.&加速器客户端启动后选择网络性能最好的VPN服务器,并在客户端进行RAS拨号,与该VPN服务器建立隧道连接,连接建立后将会自动在本机生成一个虚拟网络地址,同时客户端的默认路由会被修改成指向该虚拟网络地址,如果此时不进行特殊处理,客户端的所有网络访问将都会通过该VPN通道出去;
3.&因为网游加速器的功能需求是仅仅针对某款游戏进行加速,即:在知道这款游戏连接的服务器IP的前提下,只有发送到该服务器IP的数据才被加速,其他网络数据应该不受影响。因此加速客户端在建立完VPN通道以后,需要立即修改路由表:在拨号前通过修改拨号参数,使其不修改本机的默认路由表;其次,将游戏服务器IP增加到路由表中,并让其指向VPN拨号建立的虚拟网络地址上。这样,与游戏服务器之间的通信都走VPN通道,而其他网络数据都不受影响。
4.3&VPN加速使用的三种协议介绍
目前网络上现有的网游加速器(或网络加速器)都使用到了三种VPN协议:PPTP、L2TP和OpenVPN。各种不同的协议在使用时可能受用户的网络状况的限制而无法使用,因此一般的网络加速器都会提供不同的加速模式供用户选择。或在启动加速过程中根据用户当前的网络状况自动选择可用的加速模式。
PPTP协议:PPTP协议是在PPP协议基础上开发的增强型安全协议。PPTP协议中有两个流:控制流和数据流。PPTP协议的数据流采用了GRE协议,由于该协议的特殊性,如果同一个NAT中有两个或以上的主机同时在发送PPTP协议数据包,当数据包从外部达到NAT时,NAT将无法通过端口将数据转发到不同的主机,因此,当使用PPTP协议时,如果用户所在的NAT网关不支持VPN穿透功能(即支持PPTP协议的NAT编辑器,该编辑器在GRE协议的报头使用了一个CallId用来表示NAT下的一个会话,通过CallId来模拟端口,做NAT映射),那么内部主机只能与同一个服务器中间建立一个会话,不能有第二个客户端。目前,大多数NAT网关都具有PPTP&NAT编辑器,能很好的支持PPTP协议。
L2TP协议:第二层隧道协议,该协议是PPTP协议和Cisco第二层转发协议L2F的结合体。在windows建立的基于L2TP协议的VPN连接中,默认是启用了证书方式的IPSec协议作为安全传输协议,IPSec协议为了保护IP数据包的完整性,会禁止任何对数据包的修改,否则修改后的数据包达到目的主机后其解密和完整性认证就会失败,从而导致这个报文被认为是非法数据而被丢弃。而当加速器客户端位于NAT后时,数据包在通过NAT时,NAT会对IP头数据等进行修改,导致数据到达VPN服务器时被认为是非法数据而丢弃。
解决该问题的一种方式是通过硬件方式:要求通信的双方的边界路由都支持NAT-T,基本原理是在IPSec封装好的数据包外再进行一次UDP的数据封装,因此,当数据包穿过NAT网关时,被修改的只是外层IP/UDP头,而真正的IPSec数据未被修改;到目的主机时再将IP/UDP封装去除,这样就可以得到未被修改的IPSec数据包。
另一种方式是在L2TP协议中禁用IPSec。对于我们制作网络加速器应用来讲,IPSec协议并非必须的,因此,我们可以在加速器连接中去除IPSec协议,而不影响加速功能。在Windows系统下采用RAS进行VPN连接时,若要去除IPSec协议,需要修改注册表并重启机器使之生效。迅游的给力加速器中就是采用这种方式。
OpenVPN模式:OpenVPN是一个基于OpenSSL加密和验证的应用层VPN实现,能够在NAT环境下很好的工作,是今年来新出现的一个基于开源软件体系的VPN项目。使用OpenVPN进行连接前,需要在客户端机器上安装一个虚拟网卡设备,并需要客户端修改路由表。
以上VPN协议中,除了OpenVPN的使用可以不受用户当前网络的限制外,其他两种方式都可能收到用户的NAT情况影响而导致加速失败,因此在实际应用中,各种加速器都会把这几种模式都提供给用户,并根据用户的网络情况进行选择。
4.4&VPN拨号客户端的实现
试验过程中对RAS拨号建立VPN连接功能进行了测试。如下客户端实现了连接到VPN服务器,并同时客户端用户输入的&待加速地址&列表,修改路由表,已达到&仅指定IP走VPN通道&的功能,而用户的其他网络访问完全不受影响。
4.5&VPN方式尚存在的问题
1.&与采用代理方式一样,判断与当前启动的游戏通讯的是哪个服务器是个问题(原因如前所述),这里可以用到前面描述的LSP技术,通过在connect函数中判断欲建立连接的IP是否在当前游戏的服务器列表中。此时用到LSP技术并不是用于转发,仅仅用于判断是否加速。
2.&采用VPN方式有一个问题:如果用户修改路由表,让其他进程的服务器IP(如p2p下载软件)或默认路由表经过VPN通道的话,可能会造成VPN通道中的数据量增大,可能会影响正常的游戏。迅游加速器也没有对该问题进行很好的解决,早前的测试发现迅游加速功能启动后,通过修改路由表,可以使任意客户端进程都使用迅游的加速通道来访问网络。
该问题的也许可以通过两种方式来解决:一种是在客户端限制用户修改路由表,另一种是通过在服务器端进行限制非游戏服务器相关的数据。具体实现方式有待研究。
5.&代理加速方式
5.1.&代理加速的基本原理
采用代理服务器进行网络加速是一类使用较早的技术。目前某些网游客户端和网络应用程序都直接支持SOCKS5代理协议来连接其客户端,客户端提供设置代理服务器IP和端口的方式供玩家来设置。然而大部分网游客户端并不直接支持SOCKS5代理技术。此处介绍的代理加速模式不仅支持那些无法设置SOCKS5代理的网络游戏,即使那些可以设置SOCKS5代理的游戏,玩家也可以不用手动去设置,而自动采用下面介绍的代理加速技术进行代理加速。
代理加速方式可以直接采用SOCKS5协议,由于SOCKS5协议有现成的服务器程序可用,可以节省服务器编写时间;但是也可以自己定义一个&类SOCKS5&的代理协议,自行实现代理协商和身份验证功能。下面的介绍将会基于自己定义代理协议的模式。
在使用代理方式加速时,LSP技术的使用是关键。Microsoft在Winsock2中提供了Winsock服务器提供者(SPI),允许用户在基础TCP/IP协议上层插入自己定义的分层协议(LSP),当用户通过Winsock2&API连接网络或发送网络数据时,如调用WSAConnect函数,将会首先执行到LSP协议的dll中我们定义的函数,这样我们可以先进行处理,然后再交给真正的WSAConnect函数,这样就会起到API&Hook的作用。
要使用LSP技术,必须要将写好的LSP协议安装到用户的机器上,安装过程实际就是将DLL放入系统目录,并在注册表中写入该DLL位置信息的过程。注意:安装未签名的LSP时,安装过程中一般防火墙都会有警告提示。
5.2.&代理加速方式的实现概要
采用LSP方式进行网络加速需要部署SOCKS5代理服务器作为加速节点,加速客户端自动选择最快的代理服务器作为当前的转发节点。
开发人员在客户端需要完成的动作有:
1.&编写我们自己的LSP协议动态库,重新实现我们需要的相关socket函数,如connect;
2.&在用户的主机安装我们自己的LSP协议,这一操作可以放入我们的应用程序部署的时候完成,也可以在我们的加速器每次启动的时候进行部署;
3.&当游戏客户端调用connect函数(或WSAConnect函数)试图连接游戏服务器时,通过LSP将连接重定向到代理服务器,并采用SOCKS5协议规范与代理服务器进行数据协商,由代理服务器来连接真正的游戏服务器,并将游戏服务器的数据原封不动转发给用户、同时将用户的数据原封不动转发给游戏服务器。
由于Socks5协议并不涉及协议加密,而且Socks5协议本身协商过程较长,实际在开发中,网络加速器开发商一般都不会直接采用socks协议,而是对该协议进行改造,定义自己的代理协议。
5.3.&Socks5协议与LSP结合
通过LSP技术Hook到相应的套接字函数进行数据转发之前,需要进行Socks5代理协商,即将鉴权信息告诉代理服务器,以及告诉代理服务器自己想连接的真正游戏服务器地址。代理协商完成后才能进行数据的收发。
针对不同的网络连接方式,代理协商的方式有所不同:
1.&普通阻塞方式的TCP连接最简单,可以在hook到connect函数后直接在内部进行阻塞式的代理协商,直到协商完毕后才将connect函数返回给用户,这时候用户拿到的socket实际上是连接到代理服务器的socket,当应用程序通过这个socket收发数据时,实际上是在和代理服务器交互,而这一过程对应用程序来说是透明的,应用程序以为自己是直接在和游戏服务器通信。
目前的网络应用程序很少会采用阻塞方式进行TCP连接,所以这种情况应用场景比较少。
2.&非阻塞方式的TCP连接情况比较复杂,有的TCP连接的socket是可以修改阻塞选项,这样,我们可以在connect函数的入口处判断一下当前socket是否是非阻塞,如果是则将其改为阻塞方式,修改后以阻塞方式进行socks5代理协商,协商完毕后再将socket的阻塞方式修改为非阻塞。
3.&另一种更为复杂的非阻塞TCP连接是基于Windows异步消息的连接,这种连接采用了WSAAsynSelect方式设置了网络消息到来时的Windows接收窗口,所有的网络数据都需要在这个窗口的消息处理函数中处理(QQ飞车的TCP连接就是采用的这种方式)。这类网络模型不能简单采用修改socket阻塞方式的方法来解决。
解决这一问题的唯一办法是在LSP中hook住WSAAsynSelect,在该函数中创建一个我们自己的隐藏窗口,让网络应用程序的所有数据都转发我们自己的窗口上来,在我们的窗口的消息处理函数中进行代理协商和网络数据转发。
4.&对于UDP网络数据的socks5代理转发比TCP又要稍微复杂一些,TCP只需要hook到connect和WSAAsynSelect,对于网络收发数据的send和recv函数是不需要我们自己来实现的。UDP由于是不保持连接的,因此每次发送和接收的UDP包都要包含代理协商信息,因此我们需要把RecvFrom函数和SendTo函数都hook住。
对于UDP连接,需要在应用程序发送第一个UDP包的时候进行代理协商,以后发送数据的时候按照socks5协议的规定,加上socks5头部;收到的信息去除socks5头部再交给应用程序。
5.4.&代理加速方式详细实现
下面就详细介绍每一步的具体实现方式,为了方便流程分析,这里从LSP实现数据包转发开始介绍,最后介绍代理服务器的实现。
1.&利用LSP编写DLL,实现客户端数据包转发功能:
编写LSP协议并安装到现有协议之上,需要建立基于DLL的工程,并导出WSPStartup函数,这样当有应用程序创建套接字时,会自动执行到该WSPStartup函数。在WSPStartup函数函数中,参数信息指明了应用程序期望采用哪种协议来创建套接字(所有的协议存在于一个协议链中,该协议链也包含了我们安装的LSP协议),我们需要在该函数中加载下层协议,并调用下层协议提供者的WSPStartup函数初始化,并修改传递给上层的函数表,将我们需要Hook的Winsock2函数指针的地址指向我们自己的函数。关键代码如下:
如果测试程序只针对TCP数据包的转发,只需要实现WSPConnect函数就可以了,其余函数只需要直接调用g_NextProcTable中的默认函数就可以了。
当用户应用程序调用connect函数或WSAConnect函数试图进行TCP连接时,将会先进入LSP的DLL中定义的WSPConnect函数,该函数进入后我们会判断应用程序试图连接的服务器IP和端口是不是我们待加速的服务器,如果是,会执行到socksProxy函数与代理服务器连接,并进行代理协商;如果不是待加速服务器,则执行g_NextProcTable中原有的连接函数,此时LSP就没有起作用,流程与不安装LSP前的流程是一致的。
2.&安装LSP。
要使我们上一步实现的转发协议生效,还必须将上一步生成的DLL安装到用户的系统上。只有安装了LSP,应用程序在调用ws2_32.dll中的函数时就会执行到我们的LSP的DLL中。一般来讲,生成的DLL需要放入Windows/System32目录下,一个原因是DLL路径不能有中文等特殊字符,另一方面,如果有其他程序误删了该DLL,会导致整个系统无法上网的现象,还可能导致整个系统崩溃。
安装LSP首先需要安装协议链,需要将下层协议的信息拷贝过来,修改成我们需要的协议特点,并进行安装;然后对协议链进行排序,将我们的协议放在协议链的最上层,以保证ws2_32.dll调用到的第一个协议是我们的协议。
这里需要注意的是,当安装了&迅游加速器&后,系统上原有安装的分层协议将会被移到最下层,导致原有的协议无效。因此,我们在开发自己的网游加速器时需要考虑该问题,并予以避免。
5.4.&代理方式尚存在的问题
1.&不同网络加速器厂商的LSP安装程序相互之间可能会出现不兼容的情况,所以我们实现自己的加速LSP的时候,其他网络加速器厂商可能对我们安装的协议干扰,如迅游在安装和每次启动的时候会删除其他厂商的LSP协议;
2.&如前所述,LSP在Hook到connect函数后,在WSPConnect函数中会判断当前连接的服务器是否是需要被加速的目的地址。如何获得用户当前启动的游戏的IP和端口是多少是一个难点,因为一个游戏可能连接了多个服务器并开启了多个端口,而真正进行通讯的只是其中一个;另一方面,通过加速客户端启动的进行可能并不是真正的游戏进程(可能只是一个升级程序)。
迅游加速器可能收集了每款待加速游戏的服务器ip和端口,如果客户端发送网络包的目的地址是这些ip的时候,才会针对这些目的ip地址进行加速。本人有过测试:首先获取迅游加速器支持的某款游戏的某个服务器IP和端口,然后自己编写一个客户端不断给该服务器的端口发送数据,当该exe替换游戏的exe并启动后,从抓包结果来看,加速功能仍然有效;当从迅游列表中选择另一款游戏,启动exe时仍启动我们刚刚编写的exe时,加速功能就失效了。因此可以推测:迅游加速器并不是通过判断进程信息来获取目的服务器的(况且通过判断进程信息来获取目的服务器IP并不容易实现,如前所述),而是通过用户从列表中选择的游戏的名称。
本文主要介绍了两种实现网游加速的可行的技术方案,其中提到的对其他网络游戏加速器的分析以及具体实现细节可能会有一些不完善之处。
加速器实际实现过程中,还有关键一步就是判断当前用户的网络环境。比如用户当前连接的服务器是网通服务器,更智能的做法是在加速之前提前判断当前用户的网络情况,如果用户是网通用户,则不必启用加速功能,如果用户是电信或其他网络,则需要给用户提示可以启动加速功能,并由用户来决定是否启用加速。
当前游戏如果采用了P2P通信,用户网络环境的判断仍然需要被考虑。如QQ飞车和CF等对战游戏,启动游戏后建立了P2P连接,是否需要对这些P2P连接进行加速呢?这种情况也需要考虑用户的当前网络环境:如果P2P双方处于同一个NAT下,则不需要加速,如果一方是电信用户,而另一方是网通用户,就需要加速功能。
用户网络环境的判断(包括是否处于同一个NAT下的判断)是进行网络加速器的具体实现前需要解决的技术问题。
from:http://blog.csdn.net/kidwei/article/details/8559842

我要回帖

更多关于 ntp服务器搭建 的文章

 

随机推荐