Nov 20

搭建OpenVPN@VPS@OpenVZ 不指定

felix021 @ 2011-11-20 01:35 [IT » 网络] 评论(0) , 引用(0) , 阅读(7232) | Via 本站原创
  上次说了,OpenVZ解决方案的VPS内核没有ppp模块, 不能搞PPTP;不过还好,很多服务商都提供tun(有些需要找客服发ticket,有些在管理后台就可以开,比如BurstNet的就在管理后台开),可以搞OpenVPN。据说OpenVPN效率比PPTP要高,不过PPTP的好处是各种OS直接集成(Windows7,iOS,Android……),而OpenVPN就相对折腾一点。

  闲话不说了,进入正题。

==== 首先坑的总结,下面特别注意下 ====

1. iptables规则执行完要输入完然后check一下是否规则已经添加
2. 21端口不靠谱
3. tcp协议不靠谱
4. 配置Server的时候不要一路按回车!有些是问[y/n]需要输入 y 的!
Sep 27

获取客户端真实IP 不指定

felix021 @ 2011-9-27 11:29 [IT » 网络] 评论(1) , 引用(0) , 阅读(10308) | Via 本站原创
WEB开发有各种复杂性,典型的是HTTP的无状态连接,加密什么的,最近碰到的另一个头疼的事情就是如何获取客户端的真实IP。

其实以前在开发WOJ-Land的时候就遇到这个问题了:如果用户使用了HTTP代理来访问的话,通过REMOTE_ADDR只能获取到HTTP代理的IP,当时只是简单地再判断是否有X-FORWARDED-FOR这个HTTP头(对应PHP的$_SERVER['HTTP_X_FORWARDED_FOR'])来获取客户端的IP。虽然基本达到要求,但是还有各种问题。

一个比较常见的问题就是,如果用户通过多层HTTP代理来访问,那么每个代理都会把自己的IP加到X-FORWARDED-FOR这个头里面(用逗号隔开),真实的浏览器端IP应该是列表的第一个IP。

另外,有些CDN或者其他类似代理的服务,会提供其他的HTTP头,比如 Cdn_Src_Ip,Proxy-Client-IP,WL-Proxy-Client-IP, Client-IP等等。

一个比较合适的做法大概应该是这样:
$arr_ip_header = array(
    "HTTP_CDN_SRC_IP",
    "HTTP_PROXY_CLIENT_IP",
    "HTTP_WL_PROXY_CLIENT_IP",
    "HTTP_CLIENT_IP",
    "HTTP_X_FORWARDED_FOR",
    "REMOTE_ADDR",
);

$client_ip = "";
foreach ($arr_ip_header as $key) {
    if (!empty($_SERVER[$key]) && strtolower($_SERVER[$key]) != "unknown") {
        $client_ip = $_SERVER[$key];
        break;
    }
}
if (false !== strpos($client_ip, ",")) {
    $client_ip = preg_replace("/,.*/", "", $client_ip);
}

p.s. 以上代码未经实际运行,可能存在语法问题。
Sep 20

阅读杂记(HA,PHP) 不指定

felix021 @ 2011-9-20 12:44 [IT » 网络] 评论(0) , 引用(0) , 阅读(5559) | Via 本站原创
通过Coolshell.cn的这篇文章看了一些东西,简单记下来,方便以后查询。

Tagged: 从简单的15台LAMP服务器发展到现在的1000台服务器,首先采用PHP、单数据库,以实现快速迭代开发;加入memcached大幅缓解数据库压力;使用多台数据库服务器(主从?)扩展处理能力;引入Lucene(Java),提供搜索服务(这个PHP没法做);数据库压力还是太大,采用Oracle的Sharded Database横向扩展处理能力,同时因为大量的数据库请求,php的短连接不合适,加入了一个中间层。于是整个架构中的各种大压力环节可以简单地使用增加机器的方式来横向扩展,让开发人员可以专注于功能(feature)的开发,而不是焦头烂额地处理各种问题。CTO貌似曾经被Java1.0坑过,有点反感,但是在使用Lucene以后发现,引入Java,使得开发很多类型的功能变得可能(尤其是这些事情对于php不合适,"impractical"),比如利用大量常驻内存的数据来构造关系网、个性化搜索建议等。

Flipkart: (不知道为什么在Load Balancer一节专门提到Apache Thrift) 使用HAProxy和四层设备来进行负载均衡。HAProxy提供RoundRobin和基于IP的两种算法实现负载均衡,支持在4层或者7层进行转发(甚至可以用来搞MySQL),支持高并发,并且能够进行服务器健康检测,总的来说是各方面都比较均衡的解决方案。使用Varnish来实现HTTP缓存,据说效率比Squid要高好几倍,主要是因为将swap的事情交给操作系统来完成。最外面还加了一层nginx,它对js等静态小文件的效率效率非常的高,而且也支持多种负载均衡的协议(不明白为什么要搞好几层负载均衡)。在负载均衡环节,同一个session(一个用户的连续多次请求)不一定落在一个机器上,但是保证落在一组机器,而不是任意一台机器上(三种方案各有优劣,均衡考虑,但是实现复杂性也增加了)。使用heartbeat来保证单点服务的高可用性。使用php-fpm。fk-w3-agent: 运行于每一台web机器上的小型的java daemon,实现php本身不适合完成的异步log、连接池、多线程等、(准)实时配置更新和部署、运行时数据统计。"There are only two hard things in computer science: cache invalidation and naming things."

Beyond PHP: php没能做到的,很多杂碎和坑,可以看看。
Aug 16

土啬女干 不指定

felix021 @ 2011-8-16 15:48 [IT » 网络] 评论(0) , 引用(0) , 阅读(4735) | Via 本站原创
换到VPS以后,悲摧地发现,一旦我访问 felix021.com/test 或者 test.bin(用来下载测带宽) 或者 tst 甚至 ts 都会被BAN。

使用各种方法来排除原因:

1. niginx.conf 里面没有任何关于ban ip的设置
2. 使用apache,情况复现
3. denyhosts里面只配置了ssh的rule
4. 换了8080或者8081端口就不会被BAN
5. 仅仅是80端口被ban(使用nc -v测试,一旦connect成功,立即被断开),而ssh链接等其他端口的应用不受影响
6. 发mail问了VPS提供商,告知没有任何此类限制(曾经在meyu.net 禁止访问 xxx/ip,防灰鸽子)
7. 换了个VPS/IP情况依旧
8. 换了个域名,情况正常。
9. 番羽土啬以后一切正常。

于是突然想起,在使用Godaddy主机的时候,用twitter比较多,觉得总是番羽土啬比较不爽,而且官网图片什么的都不好使,所以曾经在 felix021.com/t 放了个twitese……

于是本域名荣幸地晋级GFW黑名单,特发此文庆贺。

p.s. 本站备用域名 http://tuidaota.com ,目前没有被土啬女干的迹象。
Aug 14

网游加速器 不指定

felix021 @ 2011-8-14 19:34 [IT » 网络] 评论(1) , 引用(0) , 阅读(7699) | Via 本站原创
世界上最遥远的距离不是生与死,而是电信和网通之间的距离。

最近晚上都会玩会儿游戏,但是家里是网通的宽带,延迟很大,有时甚至直接提示无法连接服务器,略囧。

为了能够比较顺畅地玩游戏,以前曾经用过“迅雷网游加速器”和“99sushe网游加速器”这两个软件。

以前两款都是收费的,但是都有免费的3~7天试用期。用上以后,可以明显感觉到延迟变小,游戏可玩性增强,只是免费试用期比较短,用了几天以后必须换个账号才行,很麻烦。

不过最近迅雷网游加速器居然永久免费了,毕竟是马上要上市的公司,财大气粗。。

有网游需求的各位同学,推荐试试: http://jsq.xunlei.com

-----

p.s. 写本文的主要目的是参加“写博客,免费得加速器VIP”活动,最多可以送一年,有兴趣的同学也别错过机会……

鉴于本博客是技术博客,简单扯两句。。网游加速器的原理和主要模型其实很简单。

以开头那句话为例,游戏客户端A@网通,网游服务器B@电信,可知A-B之间的延迟通常大得离谱。

于是,搞一台有双网卡的机器X,分别接入电信和网通的线路(这样可以使得 A-X 和 X-B 之间的延迟都很小),并且用iptables之类的东西,配置来自不同网卡的数据包的走向,这样就可以搭好两个网络之间的一座桥。在客户端A,可以使用hook技术拦截游戏发出的数据包,将其处理以后发给这台X,由X将数据包发给游戏服务器B(本来是A->B, 现在变成A->X->B),然后B返回的数据包由X转给A(B->X->A),这样就能够使得A-B之间的通信延迟大幅降低。

但是在具体实施上还会遇到很多问题,比如

1. 一台服务器显然不够全国这么多玩家使用,于是需要设置多台服务器。

2. 并不是所有A和X之间的延迟都一样,应该使用ping(icmp)来选择延迟最小的。但是要同时考虑到负载均衡的问题,一台服务器不能连入太多客户端。

3. 从效益上考虑,一台服务器应该尽可能多地承载客户端,这时需要改进技术,比如使用epoll/kqueue来替换传统的select/poll。并且,有些游戏对延迟要求高,有些要求低,可以在一定程度上优化服务器的处理方式。

4. 在用户的机器上,需要对不同的网游客户端进行优化,有些客户端可能会防外挂(这里可能涉及到运营的策略)。还要考虑防火墙的穿透问题。

5. 全国有各种大大小小的运营商,电信网通教育网移动这些是大的,各个地方还会有很多小的运营商,需要增加各种服务器。

6. 。。。。

好了,字数很够了,就废话这么多吧。
Feb 22
zz from http://hxyl.net/2011/02/22/ping-bi-gg/

感谢火星网友猪炎平的分享
亲自测试了下确实可以完全屏蔽广告!所以发出来大家分享下。
原理是改hosts的!
第一步:找到C:\WINDOWS\system32\drivers\etc里面的hosts文件,双击打开,选用记事本打开。
复制以下内容到hosts内,保存

#优酷
127.0.0.1 atm.youku.com
127.0.0.1 Fvid.atm.youku.com
127.0.0.1 html.atm.youku.com
127.0.0.1 valb.atm.youku.com
127.0.0.1 valf.atm.youku.com
127.0.0.1 valo.atm.youku.com
127.0.0.1 valp.atm.youku.com
127.0.0.1 lstat.youku.com
127.0.0.1 speed.lstat.youku.com
127.0.0.1 urchin.lstat.youku.com
127.0.0.1 stat.youku.com
127.0.0.1 static.lstat.youku.com
127.0.0.1 valc.atm.youku.com
127.0.0.1 vid.atm.youku.com
127.0.0.1 walp.atm.youku.com
#百度:
127.0.0.1 a.baidu.com
127.0.0.1 baidutv.baidu.com
127.0.0.1 bar.baidu.com
127.0.0.1 c.baidu.com
127.0.0.1 cjhq.baidu.com
127.0.0.1 cpro.baidu.com
127.0.0.1 drmcmm.baidu.com
127.0.0.1 e.baidu.com
127.0.0.1 eiv.baidu.com
127.0.0.1 hc.baidu.com
127.0.0.1 hm.baidu.com
127.0.0.1 ma.baidu.com
127.0.0.1 nsclick.baidu.com
127.0.0.1 spcode.baidu.com
127.0.0.1 tk.baidu.com
127.0.0.1 union.baidu.com
127.0.0.1 ucstat.baidu.com
127.0.0.1 utility.baidu.com
127.0.0.1 utk.baidu.com
127.0.0.1 focusbaiduafp.allyes.com
#奇艺
127.0.0.1 afp.qiyi.com
127.0.0.1 focusbaiduafp.allyes.com
#CNTV
127.0.0.1 a.cctv.com
127.0.0.1 a.cntv.cn
127.0.0.1 ad.cctv.com
127.0.0.1 d.cntv.cn
127.0.0.1 adguanggao.eee114.com
127.0.0.1 cctv.adsunion.com
#新浪视频
127.0.0.1 dcads.sina.com.cn
#pptv
127.0.0.1 pp2.pptv.com
#乐视
127.0.0.1 pro.letv.com
#搜狐高清
127.0.0.1 images.sohu.com
#CNTV
127.0.0.1 a.cctv.com
127.0.0.1 a.cntv.cn
127.0.0.1 ad.cctv.com
127.0.0.1 d.cntv.cn
127.0.0.1 adguanggao.eee114.com
127.0.0.1 cctv.adsunion.com
#我乐网
127.0.0.1 acs.56.com
127.0.0.1 acs.agent.56.com
127.0.0.1 acs.agent.v-56.com
127.0.0.1 bill.agent.56.com
127.0.0.1 bill.agent.v-56.com
127.0.0.1 stat.56.com
127.0.0.1 stat2.corp.56.com
127.0.0.1 union.56.com
127.0.0.1 uvimage.56.com
127.0.0.1 v16.56.com
#6间房
127.0.0.1 pole.6rooms.com
127.0.0.1 shrek.6.cn
127.0.0.1 simba.6.cn
127.0.0.1 union.6.cn
#土豆网
127.0.0.1 adextensioncontrol.tudou.com
127.0.0.1 iwstat.tudou.com
127.0.0.1 nstat.tudou.com
127.0.0.1 stats.tudou.com
127.0.0.1 *.p2v.tudou.com*
127.0.0.1 at-img1.tdimg.com
127.0.0.1 at-img2.tdimg.com
127.0.0.1 at-img3.tdimg.com
127.0.0.1 adplay.tudou.com
127.0.0.1 adcontrol.tudou.com
127.0.0.1 stat.tudou.com
#酷6网
127.0.0.1 1.allyes.com.cn
127.0.0.1 analytics.ku6.com
127.0.0.1 gug.ku6cdn.com
127.0.0.1 ku6.allyes.com
127.0.0.1 ku6afp.allyes.com
127.0.0.1 pq.stat.ku6.com
127.0.0.1 st.vq.ku6.cn
127.0.0.1 stat0.888.ku6.com
127.0.0.1 stat1.888.ku6.com
127.0.0.1 stat2.888.ku6.com
127.0.0.1 stat3.888.ku6.com
127.0.0.1 static.ku6.com
127.0.0.1 v0.stat.ku6.com
127.0.0.1 v1.stat.ku6.com
127.0.0.1 v2.stat.ku6.com
127.0.0.1 v3.stat.ku6.com
#激动网
127.0.0.1 86file.megajoy.com
127.0.0.1 86get.joy.cn
127.0.0.1 86log.joy.cn
#天线视频
127.0.0.1 casting.openv.com
127.0.0.1 m.openv.tv
127.0.0.1 uniclick.openv.com
#迅雷看看屏蔽:
127.0.0.1 mcfg.sandai.net
127.0.0.1 biz5.sandai.net
127.0.0.1 server1.adpolestar.net
127.0.0.1 advstat.xunlei.com
127.0.0.1 mpv.sandai.net

#然后就可以痛痛快快的看视频了!
Jan 18

网站访问量不够怎么办? 不指定

felix021 @ 2011-1-18 21:15 [IT » 网络] 评论(1) , 引用(0) , 阅读(6740) | Via 本站原创
向ISP买流量,尤其是湖北武汉电信。

有的时候在任意网站右下角会弹出广告;有的时候网页打不开会自动跳到114la,有的时候在百度百科空白处点击会打开news.cnhubei.com的迷你主页,有的时候点击的链接会用 www.sosole.net:3437 的/redirect11.php来进行重定向,顺便还可以显示广告。

我国的ISP,生财有道,一个字,牛X。
Jan 15

Dropbox Shareable Link 代理 不指定

felix021 @ 2011-1-15 00:06 [IT » 网络] 评论(0) , 引用(0) , 阅读(4587) | Via 本站原创
众所皆知,Dropbox在国内被墙奸了,本来非常非常好用的Shareable link没法使用。由于我有个Godaddy的空间,不限流量,且访问Dropbox的服务器速度非常快,因此写了这个脚本,用于从Dropbox的服务器下载Shareable Link的文件,然后再提供给访问者。

右击文件,在Dropbox菜单中选择Get Shareable Link会打开一个下载页面,地址类似于 https://www.dropbox.com/s/89i1mlkd9uy2sc5/test.txt ,这个下载页面中有对应的短链接,类似于 http://db.tt/ZhRdVPZ ,页面中部有一个下载链接,下载地址类似于 https://dl.dropbox.com/s/89i1mlkd9uy2sc5/test.txt?dl=1

假设index.php位于 http://yoursite/db/index.php,那么可以使用 http://yoursite/db/?surl=ZhRdVPZ 来下载这个文件。为了方便连接的拼凑,可以将下面给出的一段代码保存为书签,在下载页面点击(执行),就可以获取拼好的链接。

代码会先检查这个文件是否是由你的用户share的(可以在config.php里面修改是否检查、昵称),详情查看config.php(使用editplus或者其他支持UTF-8编码的编辑器)。

书签代码:
javascript:var url='http://felix021.com/db/?surl='+encodeURIComponent(token.link.replace(/.*\//g, '')); void(prompt('拷贝', url));
p.s. felix021.com替换为你自己的域名。

代码下载:dbshare0.1.tar.gz
分页: 4/26 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]