使用array_chunk在php中切割数组

前一个例子中,如果1w3k条记录一起用curl来迸发,会导致一个问题,那就是大量的超时,因为系统迸发连接数有限,我测试了一下,吧url数组切割为200个刚好差不多,一开始我还傻乎乎的用do while来切割,原来php内置了这个函数
see:http://php.net/manual/en/function.array-chunk.php

[php]
$urls=Array(
'0'=>'http://cpc.people.com.cn/GB/64114/75347/',
'1'=>'http://www.moe.edu.cn',
'2'=>'ht[......]

继续阅读

奇怪的curl 403错误

最近在一家公司实习,按照他们技术总裁的要求写一个URL连接检查器,从数据库里面select出url后判断他的访问状态生成报告,php或者python任选,我自然选择了自己最熟悉的php了

但是程序跑了一遍以后发现几个问题,首先是1w3k 条记录下用foreach去循环每个数组中的URL,效率太低下,只有几个数据还好,1w3k算不上海量,但是也不少了,设置curl超时时间为3秒还是时间太长,完整的跑一次要一个上午,这个还不是最恼人的,关键是好奇怪的误报问题,明明浏览器下面可以访问,为什么他取回的就是http 403呢?

考虑Useragent过滤,没错,确实有这个问题,但是是少数,仔[......]

继续阅读

在使用不支持ipv6的VPN时同时使用isatap隧道上Ipv6

额,标题有点拗口,实际上情况是这样的,我在学校靠VPN出外网(PPTP/Openvpn),不走学校的计费系统。如果使用VPN的同时。就无法使用学校的IPv6的isatap隧道上ipv6,因为VPN链接后就加了条路由,劫持了除了到VPN服务器以外的所有流量,而经过了VPN服务器NAT转发以后无法进行正常的隧道通讯,导致链接VPN后打不开IPv6地址的网站,在上网的时候不能保种子,对于教育网内的V6的PT站点来说确实非常痛苦,实际上,我们只要给isatap隧道服务器单独加一条路由就可以了
以ubuntu为例,我使用isatapd来配置IPV6隧道非常方便

[bash] sudo isata[......]

继续阅读

配置xorg.conf使得Nvidia私有驱动支持快捷键亮度调节

感谢http://www.osfan.org/的提供
我的Kubuntu/Ubuntu在启用了受限驱动以后一直无法调节亮度,经过JACTRY的提醒,找到了这个帖子,其实废话好多,就最后一句话有用
我提炼下

[bash]nano /etc/X11/xorg.conf[/bash]

找到Section "Device"段落
在其中加入

[text]Option "RegistryDwords" "EnableBrightnessControl=1"[/text]

然后重启X server即可
:wink: 我的眼睛有福了 :e[......]

继续阅读

增加connlimit模块规则限制DOS攻击

2.6.23内核以前的编译方法,详见http://ihipop.info/2010/06/1288.html

推荐规则

[bash]iptables -A INPUT -p tcp -m tcp -m connlimit --dport 80 --tcp-flags SYN,ACK,FIN,RST SYN -j DROP --connlimit-above 32 --connlimit-mask 32
[/bash]
如果/var/logs/message出现

ipt_connlimit: Oops: invalid ct state ?

在这条规则前面加一条
[bas[......]

继续阅读

为CentOS 5的2.6.18内核编译connlimit模块

今天遭遇到了DOS(不是DDOS,因为就是只有一个IP的fin_wait1状态最高的时候达到900多个),服务器本来就不好,时间一长,RAM全部占满,就靠SWAPFile在支撑,Load达到50几,服务无比缓慢,老是跟着那家伙更换封锁IP,我才没那个闲工夫
想加connlimit的规则,不行,iptables 报 Unknown error 4294967295,当时使用的版本是iptable 1.3.5,貌似已经配了connlimit模块
[bash]locate libipt_connlimit.so
/lib/iptables/libipt_connlimit.so
[/bash[......]

继续阅读

设置PPTP VPN优先使用远程DNS

由于微软在定义接口的时候,本地连接的接口优先顺序被绑定在前面,这样,即使连接上PPTP VPN也无法解决DNS污染问题(及时PPTP服务器在国外且使用8.8.8.8或者openDNS),只能解决封锁IP的问题,解决的办法也简单,在本地连接中指定8.8.8.8 或者删除本地连接的DNS设定即可
对于一般人,这样做就够了
但是对于我来说,还远远不够
身处教育网内部,我们的网络环境非常复杂,首先,我们学校有自己的DNS,且主网站做了DNS负载均衡,校内用户直接解析到内网IP上,而校外电信用户的DNS解析的时候就解析到电信IP的DNS负载均衡设备上,如果我在校内使用外面的DNS,比如google[......]

继续阅读

snmpd日志从syslog的剥离和日志精简

日志精简
[bash]nano /etc/sysconfig/snmpd.options
#加入如下参数
OPTIONS="-LS3d -Lf /dev/null -p /var/run/snmpd.pid -a"
chmod +x /etc/sysconfig/snmpd.options
#为什么加x,自己cat /etc/init.d/snmpd看看就明白了
[/bash]

snmpd日志等级的定义:
0 或 ! —- LOG_EMERG,
1 或 a —- LOG_ALERT,
2 或 c —- LOG_CRIT,
3 或 e —- LOG_E[......]

继续阅读

CentOS 5搭建PPTP VPN服务器手记

--------------------------------------------------------------------------------
服务端配置部分
--------------------------------------------------------------------------------

天煞的CentOS,源里面居然没有pptpd,还要自己下载编译
奶奶的
先装ppp和iptables(如果没有装的话)
确保内核有mppe

[bash]modprobe ppp-compress-18 && echo ok[......]

继续阅读

多用户SSH的 RSA 身份认证密钥对登陆的安全策略

ssh密钥对登陆,用ssh-keygen -t  rsa作为关键词可以搜索到不少,除了加密位数不同(Putty Key Gen 默认采用1024加密,而ssh-keygen不同,可以使用-b 参数指定密钥长度如果两者不一致,可以登陆失败。对于RSA密钥,最小要求768位,默认是2048位。DSA密钥必须恰好是1024位)参见http://lamp.linux.gov.cn/OpenSSH/ssh-keygen.html

现在的问题是,让sftp用户可以使用ssh key登陆但是不能随意修改key,由于使用了ssh自带的jail,就只要设置好.ssh目录权限就行了。默认公钥的权限是600或[......]

继续阅读