使用iPhone配置实用工具导入自签根证书

由于近来一系列敏感事件的影响,XXX发威的厉害,相信不少人都有过自建的tXXXXXr api被墙的经历。私有的tXXXXXr api要是未公开的话一般是死在关键词拦截上,由于HTTP协议的不安全,导致XXX能轻松过滤来往的请求,目前比较好的方法是使用SSL来加密来往传送的数据。今天尝试了下,在Android下使用Twidroyd可以忽略不受信任的自签证书,但是在iPod Touch上就不行,后来发现可以用iPhone Configuration Utility来添加描述文件,在描述文件中可以进行授权证书等操作,由于网上相关的介绍比较少,故写一篇来说明下。

iPhone Configuration Utility
官方下载地址:http://support.apple.com/kb/DL926
中关村在线链接:http://driver.zol.com.cn/link/43/420407.shtml

官方介绍:
iPhone Configuration Utility (iPCU) lets you easily create, maintain, encrypt, and install configuration profiles, track and install provisioning profiles and authorized applications, and capture device information including console logs. Recommended for those managing devices running iOS 4.0 or later.
Configuration profiles are XML files that contain device security policies, VPN configuration information, Wi-Fi settings, APN settings, Exchange account settings, mail settings, and certificates that permit iPhone and iPod touch to work with your enterprise systems.
iPCU version 3.1 adds support for new Mobile Device Management (MDM) features introduced in iOS 4 and enables wireless delivery of configuration profiles. It also includes support for Cisco AnyConnect and Juniper Networks SSL VPN clients, CardDAV, multiple Exchange accounts and SAN support using Simple Certificate Enrollment Protocol (SCEP).

使用方法:
0.先在当前系统上导入自签证书并安装iPhone配置实用工具
1.创建描述文件:左侧面板点击“配置描述文件”->点击上方“新建”->在“通用”里设置好名称和标识符->在“凭证”里点击“配置”->选择自签的证书
2.安装描述文件到设备:将iPhone/iPod Touch连接到电脑->左侧面板点击“设备”下的对应设备->选择“配置描述文件”标签页->安装刚刚配置好的描述文件

同理,一些需要客户端验证的页面,wifi验证,企业内的ssl站点都可以如法炮制。

top命令详解

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

下面详细介绍它的使用方法。

top - 01:06:48 up  1:22,  1 user,  load average:    0.06, 0.60,  0.48
Tasks:  29 total,   1 running,  28 sleeping,    0 stopped,   0  zombie
        Cpu(s):  0.3% us,  1.0% sy,  0.0% ni, 98.7%     id,  0.0% wa,  0.0%  hi,  0.0% si
        Mem:    191272k total,   173656k used,      17616k free,    22052k  buffers
        Swap:   192772k total,        0k used,      192772k free,   123988k  cached

        PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM     TIME+  COMMAND
        1379 root      16   0  7976 2456 1980 S  0.7  1.3   0:11.03  sshd
        14704 root      16   0  2128  980  796 R  0.7  0.5   0:02.72 top
        1 root      16   0  1992  632  544 S  0.0  0.3   0:00.90 init
        2 root       34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0
        3 root       RT   0     0    0    0 S  0.0  0.0   0:00.00  watchdog/0

统计信息区前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:

01:06:48 当前时间 up 1:22 系统运行时间,格式为时:分 1 user 当前登录用户数 load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:

Tasks: 29 total 进程总数
1 running   正在运行的进程数
28 sleeping 睡眠的进程数
0 stopped   停止的进程数
0 zombie    僵尸进程数
Cpu(s): 0.3% us 用户空间占用CPU百分比
1.0% sy 内核空间占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
98.7% id    空闲CPU百分比
0.0% wa 等待输入输出的CPU时间百分比
0.0% hi 
0.0% si

最后两行为内存信息。内容如下:

Mem: 191272k total  物理内存总量
173656k used    使用的物理内存总量
17616k free 空闲内存总量
22052k buffers  用作内核缓存的内存量
Swap: 192772k total 交换区总量
0k used 使用的交换区总量
192772k free    空闲交换区总量
123988k cached  缓冲的交换区总量。
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。
进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
序号  列名  含义
a   PID 进程id
b   PPID    父进程id
c   RUSER   Real user name
d   UID 进程所有者的用户id
e   USER    进程所有者的用户名
f   GROUP   进程所有者的组名
g   TTY 启动进程的终端名。不是从终端启动的进程则显示为 
h   PR  优先级
i   NI  nice值。负值表示高优先级,正值表示低优先级
j   P   最后使用的CPU,仅在多CPU环境下有意义
k   %CPU    上次更新到现在的CPU时间占用百分比
l   TIME    进程使用的CPU时间总计,单位秒
m   TIME+   进程使用的CPU时间总计,单位1/100秒
n   %MEM    进程使用的物理内存百分比
o   VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p   SWAP    进程使用的虚拟内存中,被换出的大小,单位kb。
q   RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE +DATA
r   CODE    可执行代码占用的物理内存大小,单位kb
s   DATA    可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t   SHR 共享内存大小,单位kb
u   nFLT    页面错误次数
v   nDRT    最后一次写入到现在,被修改过的页面数。
w   S   进程状态。
        D=不可中断的睡眠状态
        R=运行
        S=睡眠
        T=跟踪/停止
        Z=僵尸进程
x   COMMAND 命令名/命令行
y   WCHAN   若该进程在睡眠,则显示睡眠中的系统函数名
z   Flags   任务标志,参考 sched.h

默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。

更改显示内容通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。

按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。

按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。

命令使用

1.  工具(命令)名称
top
2.工具(命令)作用
显示系统当前的进程和其他状况;top是一个动态显示过程,即可以通过   用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直   到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理  ·器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按 CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定. 
3.环境设置
在Linux下使用。
4.使用方法
4.1使用格式
top [-] [d] [p] [q] [c] [C] [S]    [n] 
4.2参数说明
d  指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p  通过指定监控进程ID来仅仅监控某个进程的状态。
q该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S 指定累计模式
s  使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i  使top不显示任何闲置或者僵死进程。
c  显示整个命令行而不只是显示命令名

4.3其他

下面介绍在top命令执行过程中可以使用的一些交互命令。

从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。这些命令都是单字母的,如果在命令行选项中使用了s选项,则可能其中一些命令会被屏蔽掉。

Ctrl+L 擦除并且重写屏幕。

h或者?  显示帮助画面,给出一些简短的命令总结说明。

k  终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。

一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。

i 忽略闲置和僵死进程。这是一个开关式命令。
q  退出程序。
r  重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
S 切换到累计模式。
s  改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5  s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。
f或者F 从当前显示中添加或者删除项目。
o或者O  改变显示项目的顺序。
l 切换显示平均负载和启动时间信息。
m 切换显示内存信息。
t  切换显示进程和CPU状态信息。
c  切换显示命令名称和完整命令行。
M  根据驻留内存大小进行排序。
P 根据CPU使用百分比大小进行排序。
T 根据时间/累计时间进行排序。
W  将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

 

Mac Adobe CS6 完美破解激活(免替换文件/可更新)详细图文教程

最近一直在折腾 Mac,就连在 Windows 下闭着眼就能安装的 Adobe 系列,都显得有些陌生。尤其是破解激活的过程。虽然也有 Windows 下最常见的 amtlib 替换法,但好友 Digidea 告诉我那样其实不太安全。于是索性混了几天各种论坛,学会了一种通过序列号和激活码来激活 Adobe CS6 系列的方式。下面就以在 Mac 下安装 Photoshop CS6 为例,把过程详细的写下来,以备后用。

准备工作:

1,各种安装包,不要大师版,而是独立安装包。最好是官方的,网上很多,搜一下;
2,准备独立安装包的序列号(cd-key),在文章最后我会提供;
3,下载 Adobe CS6 大师版注册机,等会用它来生成激活码(点击下载,含 Windows 版和 Mac 版);
4,如果是 Mac 下建议再准备一个方便修改 hosts 的工具“Hosts 1.1”(点击下载);
5,断网。

第一步:检查现有的 hosts 文件:

如果你之前干过屏蔽 Adobe 的坏事,那么现在检查一下 hosts 文件中是否包含以下两行,有的话先注释或删掉,因为它会导致你等会输入 CD-KEY 的时候总是无法通过:

127.0.0.1 lmlicenses.wip4.adobe.com
127.0.0.1 lm.licenses.adobe.com

第二步:安装 Adobe Photoshop CS6:

启动 Adobe Photoshop CS6 的独立安装程序,选择安装 Adobe Photoshop CS6,如图:

adobe-cs6-setup-crack-1

安装过程中选择“安装(我有序列号)”,然后输入序列号,如图:

adobe-cs6-setup-crack-2

点击下一步,然后会提示[请连接到 Internet,然后重试],这时要先点击“稍后连接”。然后下一步,直到安装完成;

第三步:激活 Adobe Photoshop CS6:

打开已经安装完成的 Adobe Photoshop CS6,切记保持断网。会提示[序列号验证]的时候点击“连接 Internet 时是否出现问题?”,如图:

adobe-cs6-setup-crack-3

然后根据提示选择“脱机激活”,接着选择“生成请求代码”,再来到下一步,会给出一段请求代码,如图:

adobe-cs6-setup-crack-4

把请求代码复制起来,不要关掉。然后打开刚刚准备的注册机,在 Serial 填入刚才安装 Photoshop 时填写的 cd-key,并且在 Request Code 填入刚才复制的请求代码。点击“Gen. activation”生产一个 Activation code,如图:

adobe-cs6-setup-crack-5

把得到 Activation code 复制起来,回到 Adobe 激活界面,把算出来的 Activation code 粘贴到[响应代码]后点击“激活”,接着就会提示“脱机激活完成”并告知你已成功激活!至此,我们已经成功激活 Photoshop CS6 了!

第四步:修改 hosts 文件:

为了避免 Adobe 过后会检查,我们还要再修改 hosts 文件,加入下面四条纪录:

127.0.0.1 lmlicenses.wip4.adobe.com
127.0.0.1 lm.licenses.adobe.com
127.0.0.1 activate.adobe.com
127.0.0.1 practivate.adobe.com

最后:检查更新:

现在,让我们很低调很低调的检查一下更新,会发现已经可以更新了,如图:

adobe-cs6-setup-crack-6

adobe-cs6-setup-crack-7

附:Adobe CS6 独立安装版本序列号(CD-KEY):

Adobe Photoshop CS6: 1330-1887-7489-4700-7429-5959 或 1330-1071-1536-4954-3005-2944;
Adobe Illustrator CS6: 1034-1199-6358-6414-2734-2457;
Adobe Fireworks CS6: 1193-1629-6196-3576-7233-2107;
Adobe Dreamweaver CS6: 1192-1439-5431-5970-9189-4949;
Adobe InDesign CS6: 1037-1152-9294-1135-7907-7102;
Adobe InCopy CS6: 1036-1125-4514-7088-7717-8283;
Adobe Flash Professional: 1302-1609-4472-2505-4933-2084;
Adobe Audition CS6: 1137-1633-8198-8315-0942-5899;
Adobe AfterEffects CS6: 1023-1897-8153-1746-6817-1885;
Adobe PremierePro CS6: 1132-1248-3910-1856-5842-0927;

Win8离线安装.NET3.5

大家都知道win8自带.net 4 在.net3.5下开发的软件无法在win8下运行,会提示需要安装.net3.5联网更新又太麻烦~~可以不可以离线安装呢?

其实是可以的,我们只需一个命令就可以实现离线安装~~ 前提我们要有win8的光盘镜像,直接打开win8镜像你会发现镜像会默认被加载为光驱了。

然后我们win+x 选择命令提示符(管理员)输入以下代码~

dism.exe /online /enable-feature /featurename:NetFX3 /Source:F:\sources\sxs

Source:F 是指对应的光驱盘符,如果盘符不对改下即可~

然后你在命令提示符里看到一个进度条,默认情况下是90.8,等它自动完成到100%就说明安装完成~

祝大家好运~

Kloxo面板后台SSL证书替换

最近在自己的服务器上搭建Kloxo面板造福大众,然后遇到了一点问题,就是Kloxo面板的后台7777端口访问的时候总是会提示证书是由不受信任的颁发机构颁发。做完一个重度强迫症患者(误),这是绝对不能忍的!

但是找来找去一直没有发现相关的文章。看了大家对不常用的东西一点都不在乎= =|||于是只好自己动手。

首先在你的命令行中输入:

ps -aux|grep kloxo.httpd

然后你会看到类似这样的显示:

lxlabs   16186  0.0  0.2   7256  3544 ?        S    04:07   0:01 /usr/local/lxlabs/ext/lxlighttpd/sbin/kloxo.httpd -f /usr/local/lxlabs/kloxo/file/lighttpd.conf
root     24325  0.0  0.0   3188   796 pts/0    S+   17:26   0:00 grep kloxo.httpd

其中/usr/local/lxlabs/kloxo/file/lighttpd.conf就是Kloxo控制面板的Lighttpd配置文件。(找到它真不容易啊。。。在Apache那绕了一个小时的弯,突然灵光一闪看了下进程列表然后哭了。。。这货居然用的是独立的一套Lighttpd。。。)

打开拉到最下方,能看到:

$SERVER["socket"] == ":7777" {
        server.document-root = "/usr/local/lxlabs/kloxo/httpdocs/"
        ssl.engine = "enable"
        ssl.pemfile             = "/usr/local/lxlabs/kloxo/etc/program.pem"
        ssl.ca-file             = "/usr/local/lxlabs/kloxo/etc/program.ca"
        ssl.use-sslv2 = "disable"
 }

其中ssl.pemfile和ssl.ca-file就是我们需要修改的内容所指的文件就是我们要修改的内容。这里指向的是Kloxo自带的一个证书文件。现在我们修改这两项,将其指定到我们自己的证书文件。注意,ssl.pemfile我之所以没用ssl.crt是因为Lighttpd需要的证书文件比较特殊,是把Key私钥直接附加在crt证书后面生成的。为了不破坏原式证书,我起了一个不一样的名字来区分。 现在我们找到这两个program.pem和program.ca并将其替换成我们自己的证书。

接下来以StartSSL的免费SSL证书为例,说明这两个文件如何生成。

首先,我们从StartSSL拿到的证书文件包括:

ca.pem
ssl.crt
ssl.key
sub.class1.server.ca.pem

四个文件。其中ssl.key是预先解密好的私钥文件。当然不解密应该也可以,但是每次启动服务的时候都需要输入私钥密码,非常麻烦。

首先我们生成program.pem:

cat ssl.crt ssl.key > program.pem

这个ssl_key.crt就是我们最终需要的文件,即ssl.pemfile

然后生成ca-certs.crt:

cat sub.class1.server.ca.pem ca.pem > program.ca

此时生成的文件就是我们需要的文件。

然后将两个文件替换掉原来的文件,把Lighttpd重启一下,再访问就能看到效果了。

Xen VPS 手动安装Ubuntu 12.04.01 LTS 小记

最近在某网站买了Xen的VPS,由于有些原因需要将系统从Win换成Ubuntu。但是由于没有提供现成的安装模板,所以只好联系了管理员帮我挂了一个镜像自己装。

在安装过程中出现了一个小问题:网络始终无法设置。如果先装好系统再用ifconfig想启用网卡的话,会出现

SIOCSIFFAGS:Cannot assign request address

的错误。网上搜了一下也没有看到我这个情况可用的解法,只好自己尝试。

经过试验,发现进入Xen的VPS控制面板,将虚拟网卡从Realtek8139改为IntelE1000,并将网络仿真器从ioemu更改为netfront之后,该问题得到解决。

然后由于管理员挂载的是Alternate版本的镜像,所以安装的时候把桌面环境神马的都装上了。上网找了一下找到了删除桌面环境的shell语句,记录一下。

sudo apt-get -y –auto-remove purge unity
sudo apt-get -y –auto-remove purge unity-commonp
sudo apt-get -y –auto-remove purge unity-lens*
sudo apt-get -y –auto-remove purge unity-services
sudo apt-get -y –auto-remove purge unity-asset-pool

 

Mac 快捷键大全附KeyCue软件介绍

译注:在以下的列表中,「opt」为键盘上「Option键」的简称、「cmd」是「Command键」、「ctrl」则是「Control键」的简称。作者表示所有按键都经过实验,但译者并没有亲自使用过所有的按键组合,所以本文内容仅供参考;如果您要尝试没有使用过的按键组合,请自己小心。

一、开机时按下……

滑鼠按键 弹出抽取式媒介(2.4f1版以前的Boot ROM可能不包括退出CD片)
opt键 在配备「New World」韧体系统的机种上叫出「Open Firmware」开机系统选择功能。
cmd-opt键 按住这两个键,直到电脑发出二次声响,就会改以Mac OS 9开机。

cmd-x(有时只按住x键) 如果Mac OS 9和Mac OS X在同一个开机用的硬碟区段(partition)上,按这个键会强迫以OS X开机。
cmd-opt-shift-delete 跳过原定的启动磁碟,改以外接磁碟(或光碟机)开机。这个按键的主要作用,其实是强迫电脑不要从预设的启动磁碟读入系统档案,所以会产生从其他磁碟开机的「副作用」。如果您的Mac是配备SCSI介面的机种,它会从编号(ID)最高的磁碟机往下搜寻,直到找出可以开机的磁碟区段为止。至於在配备IDE介面的机种上则不确定它的搜寻顺序。
cmd-opt-shift-delete-# 从指定ID的SCSI磁碟开?#代表SCSI编号)。
cmd-opt-p-r 清除系统参数记忆体(PRAM),必须按住不放,等发出两次响声之後再放开。
cmd-opt-n-v 清除NV RAM,类似在Open Firmware中做「重置全部」(reset-all)的动作。
cmd-opt-o-f 开机时进入open firmware。
cmd-opt-t-v 强制Quadra AV机种使用外接电视机当作显示器。
cmd-opt-x-o 以唯读记忆体中所烧录的系统软体开机(仅适用於Mac Classic机种)。
cmd-opt-a-v 强制电脑辨识苹果AV显示器。
c 使用光碟开机。如果原先设定由OS X开机,但光碟机里没有放置开机光碟,则可能会改由OS 9开机。
d 强制以内建磁碟机开机。
n 按住n键直到萤幕上出现Mac标志,电脑会尝试透过BOOTP或TFTP以网路伺服器开机。
r 强制PowerBook重置萤幕设定。
t 强制配备FireWire介面的机种进入外接磁碟模式(FireWire Target Disk mode)。
shift 关闭所有延伸功能(OS 9或OS X之下的Classic环境)。
shift 关闭登入项目,同时也会关闭所有不必要的程式核心(kernel)延伸功能(也就是所谓安全开机模式,仅适用OS X 10.1.3或更新的系统版本)。
cmd 开机时关闭虚拟记忆体(Virtual Memory,仅适用OS 9或OS X之下的Classic环境)。
空白键 开机时启动延伸功能管理程式(OS 9或OS X之下的Classic环境)。
cmd-v 开机过程中显示控制台讯息(仅适用OS X)。
cmd-s 开机後进入单一使用者模式(仅适用OS X)。
cmd-opt-c-i 先将系统时钟设定为日期1989年9月20日,然後以这个按键组合开机,就可以看到萤幕上显示特殊的系统小秘密(仅适用於Mac IIci机种)。
cmd-opt-f-x 先将系统时钟设定为日期1990年3月19日,然後以这个按键组合开机,就可以看到萤幕上显示特殊的系统小秘密(仅适用於Mac IIfx机种)。

二、萤幕上出现小Mac笑脸时按下……

空白键 开机时启动延伸功能管理程式(OS 9或OS X之下的Classic环境)。
shift 关闭包括MacsBug(一种程式设计师工具程式)在内的所有延伸功能(OS 9或OS X之下的Classic环境)。
shift-opt 关闭除了MacsBug之外的所有延伸功能(OS 9或OS X之下的Classic环境)。
ctrl 中断开机过程,进入MacsBug除错模式。

三、系统画面出现後按下……

cmd-opt 当OS 9或OS X中的Classic环境连接磁碟机时,可以重建磁碟机的桌面档案。
opt 不要开启任何系统视窗(Mac OS 9)。
shift 在系统档案(Finder)启动时暂时不要开启系统视窗。这些视窗并没有被真的关闭,只要您重新开机,这些视窗都就会照常出现(Mac OS X)。
shift 不要执行任何「启动项目」软体(Mac OS 9)。

四、在系统画面中按下……

按住opt键,再以滑鼠游标
按视窗上的关闭方块 关闭所有的系统视窗(除了弹出式视窗之外);按cmd-opt-w键也可以获得一样的效果。
cmd-shift-opt-w 关闭所有的系统视窗(包括弹出式视窗)。
cmd-右箭头键 在档案视窗以列表模式显示时,开启一个档案夹。
cmd-opt-右箭头键 在档案视窗以列表模式显示时,重复开启档案夹、以及其下所包含的多层档案夹。
cmd-左箭头键 在档案视窗以列表模式显示时,关闭一个档案夹。
cmd-opt-左箭头键 在档案视窗以列表模式显示时,重复关闭档案夹、以及其下所包含的多层档案夹。
cmd-上箭头键 开启上一层档案夹。在Mac OS X中,如果事先并未选定档案夹、而且没有开启任何视窗,这个按键会开启现在使用者的专属目录。
cmd-opt-上箭头键 开启上一层档案夹,并关闭现用档案夹。
cmd-opt-shift-上箭头键 将桌面变成现用视窗,并且选择最上层磁碟机。
cmd-下箭头键 开启选取的项目。在Mac OS X中,如果事先并未选定档案夹、而且没有开启任何视窗,这个按键会开启桌面档案夹。
cmd-opt-下箭头键 开启选取的项目,并关闭现用的档案夹。
opt-滑鼠按键 按条列档案视窗中的小三角形图像时,可以显示或隐藏下层档案夹中的内容。
tab键 选择名称以下一个英文字母开头的档案夹。
shift-tab键 选择名称以上一个英文字母开头的档案夹。
cmd-delete 把选取的项目搬进垃圾桶

五、在系统画面中的「视窗」选单中……

cmd-选取项目 关闭视窗。
cmd-shift-选取项目 将弹出式视窗归位。
cmd-opt-选取项目 展开选取的视窗,并关闭其他所有视窗。
ctrl-选取项目 展开选取的视窗,并隐藏其他视窗的内容。
·ctrl-opt-选取项目 启动选取视窗,并展开所有的其他视窗。

六、系统启动完毕之後……

在有电源按钮的机种上
电源按钮 在萤幕上显示包括「关机」、「睡眠」、以及「重新开机」按钮的对话框(请参阅下一节)。
cmd-ctrl-电源按钮 强制重新开机。这种方式非必要不建议使用,因为有可能损坏磁碟上的资料内容。
ctrl-cmd-opt-电源按钮 快速关机。
cmd-电源按钮 启动程式除错软体(如果已事先安装的话)。较早期的Mac(例如Mac II时代的机器)需要先安装由Paul Mercer所写的除错延伸功能(debugger init)来使用这个功能;不过这个功能在配备68040处理器的Mac机种上,已经成为系统韧体内容的一部份。
cmd-opt-电源按钮 让後期型式的PowerBook和桌上型Mac进入睡眠状态。
cmd-opt-ctrl-电源按钮 重新设定电源管理程式(Power Manager;仅适用PowerBook 500系列)。
shift-fn-ctrl-电源按钮 重新设定电源管理程式(Power Manager;仅适用PowerBook G3与G4系列)。

七、在没有电源按钮的机种上

ctrl-退片按钮 「退片」按钮位於新款USB键盘的最右上角,平常用於退出光碟片。按下这个组合可以在萤幕上显示包括「关机」、「睡眠」、以及「重新开机」按钮的对话框(请参阅下一节)。
cmd-ctrl-退片按钮 强制重新开机,正常状况下不建议使用。
ctrl-cmd-opt-退片按钮 快速关机。
cmd-退片按钮 启动程式除错软体(如果已事先安装的话)。较早期的Mac(例如Mac II时代的机器)需要先安装由Paul Mercer所写的除错延伸功能(debugger init)来使用这个功能;不过这个功能在配备68040处理器的Mac机种上,已经成为系统韧体内容的一部份。
cmd-opt-退片按钮 让後期型式的PowerBook和桌上型Mac进入睡眠状态。

八、在所有机种上

cmd-opt-esc 强迫退出目前使用中的软体。
cmd-shift-0 让後期型式的PowerBook与桌上型Mac进入睡眠状态,不过在OS X上不适用。如果在可以配备三部软碟机的Mac机种上(如Mac SE),这个按键可以退出第三部软碟机中的碟片。
cmd-shift-1或2 弹出内藏或外接软碟机中的碟片。在可以配备两部软碟机的Mac(如Mac SE或Mac II)上,则是依次退出两部软碟机种的碟片。
cmd-shift-3 拍摄萤幕图片
cmd-shift-4 拍摄使用者定义的萤幕区域。在Mac OS 9中,如果在选定区域时按下Control键,则拍摄的内容会被储存在记忆体中的剪贴板里,可以直接在其他软体中「贴」上文件。
cmd-shift-大写固定键-4 如果按下大写固定键(也就是「caps lock」键),则可以拍摄使用者选定的视窗内容(仅适用於Mac OS 9或OS X下的Classic环境)。
cmd-ctrl-shift-3 将萤幕图片拍摄至记忆体剪贴板。
cmd-ctrl-shift-4 将使用者指定的萤幕区域拍摄至记忆体剪贴板。
cmd-ctrl-shift-大写固定键-4 将使用者指定的视窗内容拍摄至记忆体剪贴板(仅适用於Mac OS 9或OS X下的Classic环境)。
cmd-tab 切换执行中应用软体。
cmd-space 切换使用的语言系统(如果已安装一种以上的语言系统)。
opt-F3、opt-F4、
或是opt-F5 开启Mac OS X的「系统预置」视窗(仅在「系统预置」尚未执行的时候才有作用)。
cmd-F1 在Mac OS X中侦测显示器。
cmd-F2 在Mac OS X中切换萤幕同步显示内容。
F12 退出CD或DVD(在 (在Mac OS X 10.1.2或以上的版本中须按住不放)。如果光碟可以被退出,按这个键就会退出。如果不能退出(例如正在使用中),则按键没有作用。
F14 让萤幕变暗(适用於G4 Cube、iMac G4、或许还有其他机种)。
F15 让萤幕变亮(适用於G4 Cube、iMac G4、或许还有其他机种)。
cmd-ctrl-shift-0 在执行Mac OS 9的PowerBook上,强制硬碟停止转动。
opt-「清除垃圾」选单指令 不显示「有档案已经锁住」警示,直接清除垃圾桶内容;锁住的项目也会被删除。

九、在睡眠/□重新开机对话框中

S键 睡眠
R键 重新开机
esc键 取消
cmd-.(英文句号) 取消
Return或Enter键 关机
电源按钮 取消(可能仅适用於Mac OS 9.2.x)

十、在其他对话框中

esc键 取消
cmd-.(英文句号) 取消
Enter键 预设按钮
Return键 预设按钮(如果同时没有其他文字栏位会用到return键)
cmd-d 不储存(在储存/□取消/□不储存对话框中)

十一、在有「fn」键的键盘上

fn-backspace 往前删除字元

十二、滑鼠按钮

option-以滑鼠游标按
另一个应用软体的视窗 切换到另一软体,并隐藏现用软体。
cmd-拖移视窗 拖移视窗,但不将该视窗切换至最前方(该应用软体必须支援视窗在对话框之後运作的功能)。
cmd-拖移视窗内容 在系统视窗中,利用滑鼠游标来搬动视窗的内容。
cmd-以游标按视窗标题栏 显示该视窗在硬碟中所在位置的路径(基本上仅适用於系统档案视窗,但某些软体也支援这个功能)。
option-按视窗标题栏
两下以隐藏视窗内容 隐藏所有视窗的内容,仅馀标题栏显示在萤幕上(Mac OS 9或Classic环境)、或将视窗全部隐藏至Dock中(Mac OS X)。
option-视窗标题栏中的
缩放方块 将视窗放大至全萤幕。
option-视窗上的黄色按钮 将所有的软体视窗隐藏在Dock中(仅适用Mac OS X)。
option-视窗上的绿色按钮 将视窗放大至全萤幕(仅适用部份软体)。

十三、仅适用Mac OS X的Dock项目

cmd-滑鼠按钮 显示项目在系统视窗中的位置。
cmd-opt-滑鼠按钮 启动某一软体、隐藏其他软体
ctrl-滑鼠按钮
(或以滑鼠按钮按住项目不放) 显示项目特色选单
cmd-拖移项目至Dock 停止目前的Dock项目移动,以便将其他文件图像拖移到应用软体图像上。
cmd-opt-拖移项目至Dock 强制Dock上的软体开启拖移上去的文件。

十四、控制条板

opt-拖移整个控制条板 移动控制条板。
opt-拖移某个控制条板模组 重新安排模组的顺序。
opt-将模组拖移至垃圾桶 解除安装某一模组。
opt-将模组拖移至条板以外的地方 将模组档案拷贝到拖移的位置。

—-《Mac上的快捷键巧用》—–

一、启动电脑时的巧妙使用:

1.启动时,同时按住“option”键可以重建桌面,此操作最好每月做一次;
2.启动时,按住“shift”键可以关闭所有系统功能扩展;
3.启动时,按住鼠标可以推出软盘以避免将其用作启动磁盘;
4.启动时,按住“shift+option+delete”键可以忽略启动磁盘,并自动寻找另一个介质做启动盘;
5.启动时,按住“option+P+R”键可以重设“选配器”和“控制板”,这种方法对于使用时间较长(半年以上)且系统有问题的电脑会有意想不到的效果;
6.同时按住“shift+option+电源键”可以重新启动或关闭电脑;
7.在鼠标不能动时,同时按住“control+电源键”可以强行启动电脑。

二、使用显示图像或文件夹工作时的巧妙使用:

1.鼠标边按图像或文件夹可以打开图像或文件夹;
2.用鼠标拖曳图像或文件夹可以移动到所需位置。
3.按住“option”+鼠标拖图像或文件夹可以将图像或文件夹拷贝到其它文件夹中,而不是移动;
4.在拖曳图像或文件夹时将图像或文件夹拖至窗口上端的菜单栏可以取消对它的移动或拷贝;
5.按住“shift键”+整理窗口可以整理所选图像。
6.按住“return”或“enter”键可以编辑所选图像或文件夹的名称;
7.按任一字母键将选择以该字母开头而命名的图像或文件夹;
8.同时按住“shift+tab”键将按字母顺序选择上一个图像或文件夹(注:中文名称以第一个字的汉语拼音的第一个英文字母为准);
9.按方向右键或方向左键将选择左面或右面的图像或文件夹;按方向上键或方向下键将选择上面或下面的图像或文件夹;
10.按“shift”+点按所需图像或文件夹可以选择多个图像或文件夹,或用鼠标拖曳到封入所需图像或文件夹而选择多个图像或文件夹。

三、使用文件对话框时的巧妙使用:

1.打开对话框时(如使用“文件”菜单下的“打开”或“存储”等命令时同时)按“.”或按“esc”键可以取消该命令;
2.同时按“苹果键 + 方向上键”或点按桌面图像可以上移一层。按“方向上键”或“方向下键”可以选择上一个或下一个项目;
3.按“option + 打开替身”可以显示而不是打开替身的原文件;
4.“tab”键使目录或名称框成为现用;
5.按“command + N”键可以建立新文件夹;“return”或“enter”或“O”键可以打开所选项目。

四、使用窗口工作时的巧妙使用:

1.按“command+W”键或点按窗口关闭格(位于窗口左上角)可以关闭当前文件夹窗口;
2.同时按“option+command+W”键或“option+点按窗口关闭格”可以关闭所有文件夹窗口;
3.按“command”键+拖曳窗口可以移动该窗口但不使其成为现用窗口;
4.连续点按两下文件夹的标题行即隐藏显示该文件夹,再连续点按两下即恢复显示;
5.按“option”键+打开或“option”键+连按图像可以打开该图像后自动关闭该窗口。

五、在一些选项中的巧妙使用:

1.按“option”键+清倒废纸篓可以跳过“清倒废纸篓”警告和删除“废纸篓”内已锁定的文件;
2.按“command”键+拖曳图像可以在移动图像时更改当前设置“整齐排列”(仅在“显示”控制板内);
3.在插入磁盘时,按住“command+option+tab”键可以在插入时自动抹掉磁盘内容;
4.在“选配器”内,按住“tab”键可以使下个列表成为现用。按住“shift+tab”键可以使上个列表成为现用;
5.按“option”键+使其它程序成为现用(从“应用程序”菜单内选取或点按其中一个窗口)可以在切换到其它程序时隐藏该程序窗口;
6.同时按住“command+option+esc”键可以强行退出死机程序;
7.同时按住“command+shift+3”键可以把当前屏幕上的内容转变成一个图像,“command+shift+4”可以选择一个区域拍屏,此图像可以在Photoshop软件中打开使用,也可以打印输出;
8.按住“command+G”键可以在连接其它计算机时选定“客人”;
9.如果安装WordScript,按“command+方向右键”可以设置为英语,按“command+方向左键”可以设置为系统语系。
10.按“command+space”键可以设置为“键盘”菜单内的下一个语系(比如:英文切换到中文,中文切换到英文);按“command+option+space”键可以设置为当前语系内的下一种语言(如果此语系有多种语言的话)。

新G4的某些快捷键:
没有死机的情况下,可以按cmd+ctrl+eject重启
ctl+option+cmd+Eject 关机
option+cmd+Eject 休眠
control+Eject 提示关机、重启或者休眠

 

当然,如果你一下子记不住这几百个快捷键方法,你可以下载一个 叫keycue的软件,按住command就可以显示当前的可用快捷方式。

KCAnimated

Git教程系列-详细版(转载收藏)

http://blog.enjoyrails.com/2008/12/28/git%E8%AF%A6%E8%A7%A3%EF%BC%88%E4%B8%80%EF%BC%89/

http://www.5iphp.com/node/124

 

流程:取代码 → 每次工作前更新代码到最新版本 → 修改代码 → 提交代码到服务器

取代码及修改全局设置

设置用户名与邮箱

1
2
git config --global user.name "My Name"
git config --global user.email "my@email.com"

从已有的git库中提取代码

1
git clone git@server:app.git myrepo

每次更改代码的操作

更新本地代码到最新版本(需要merge才能合到本地代码中)

1
git fetch

合并更新后的代码到本地

1
git merge

更新代码方式的另一种方法(git pull是git fetch和git merge命令的一个组合)

1
git pull

修改代码后,查看已修改的内容

1
git diff --cached

将新增加文件加入到git中

1
git add file1 file2 file3

从git中删除文件

1
2
git rm file1
git rm -r dir1

提交修改

1
git commit -m 'this is memo'

如果想省掉提交之前的 git add 命令,可以直接用

1
git commit -a -m 'this is memo'

commit和commit -a的区别, commit -a相当于:

  • 第一步:自动地add所有改动的代码,使得所有的开发代码都列于index file中
  • 第二步:自动地删除那些在index file中但不在工作树中的文件
  • 第三步:执行commit命令来提交

提交所有修改到远程服务器,这样,其它团队成员才能更新到这些修改

1
git push

其它常用命令

显示commit日志

1
git log

不仅显示commit日志,而且同时显示每次commit的代码改变。

1
git log -p

回滚代码:

1
git revert HEAD

你也可以revert更早的commit,例如:

1
git revert HEAD^

将branchname分支合并到当前分支中。(如果合并发生冲突,需要自己解决冲突)

1
git merge branchname

解决冲突

当merge命令自身无法解决冲突的时候,它会将工作树置于一种特殊的状态,并且给用户提供冲突信息,以期用户可以自己解决这些问题。当然在这个时候,未发生冲突的代码已经被git merge登记在了index file里了。如果你这个时候使用git diff,显示出来的只是发生冲突的代码信息。

在你解决了冲突之前,发生冲突的文件会一直在index file中被标记出来。这个时候,如果你使用git commit提交的话,git会提示:filename.txt needs merge

在发生冲突的时候,如果你使用git status命令,那么会显示出发生冲突的具体信息。

在你解决了冲突之后,你可以使用如下步骤来提交:

第一步(如果需要增加文件):

1
git add file1

第二步:

1
git commit

将迅雷拒之门外

不知道为什么,本来不受重视的L’Yun,却一直多灾多难,前几天空间呗停掉了,一个很以为的原因,每天将近9G的流量,晕死了,最多的一天才只有6个IP,但竟然有这么大的流量。后来查看了下日志,竟然是两首MP3引起的,每一秒钟都有人在下载。刚开始以为是百度干的,但是后来看了下在百度的位置,还不至于达到那么大的流量,然后自然而然的就想到迅雷了,看看别人的文章,可以肯定下,迅雷是个流氓!

解决方案:

1、对服务器的攻击屏蔽后,不用理会,不会造成太大影响。

2、被百度收录的是一部分MP3,因为不希望不访问网站就直接从后台下载网站的mp3,于是增加搜索引擎访问限制。在网站根目录下放置robots.txt,内容如下:

User-agent: Baiduspider

Disallow: /****

*表示不允许百度搜索引擎收录的路径。相对于百度,雅虎、MSN和Google的搜索引擎机器人没有那么流氓,所以不需要屏蔽。

3、对付迅雷。

相对于有些流氓的百度搜索引擎来说,迅雷就是恶霸了。

对于小网站站长来说,迅雷的分布式下载几乎是一种灾难。尽管迅雷给广大普通用户带来快捷方便,但给小服务器的负载带来严重灾难。

调用access日志,发现瞬间连接超过1000,而连接的集中点,居然是周董的一首《七里香》。尽管迅雷隐蔽的很好,但还是从日志的蛛丝马迹里找出它的影子。

于是先删掉七里香。删掉后仍有大量链接寻找其他MP3,而且删除一首mp3也只是治标不治本。启用Apache2的Rewrite模块。

在Apache的Http.conf中,开启Rewrite模块

LoadModule rewrite_module modules/mod_rewrite.so

然后增加以下Rewirte规则

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^http://www.cfobbs.com/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.cfobbs.com$ [NC]

RewriteRule .*\.(mp3|rm|wma)$ http://www.cfobbs.com/error.html [R,NC]

该规则表示,只有浏览器的REFERER是本站开头的连接,才可以下载MP3、rm、wma,否则转向error.html错误界面。

重启Apache后,用Flashget测试,无法下载mp3了,IE直接下载也会报错,但迅雷仍然可以下,百思不得其解,于是查阅迅雷官方资料,居然发现迅雷采用了一个十分流氓的手段:伪造下载地址的浏览器REFERER头,真是无耻。

考虑到网站的MP3全部是在网页自动播放,基本不需要额外下载,于是为了对付迅雷,采用了一个比较极端的方式:

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} !^NSPlayer.*

RewriteCond %{HTTP_USER_AGENT} !^windows.*

RewriteRule .*\.(mp3|rm|wma)$ http://www.cfobbs.com/error.html [R,NC]

也就是说,网站上mp3、rm、wma格式的文件,只允许播放器播放,不允许任何其它方式的访问,否则就转向错误页面。

重启Apache,使用迅雷下载,结果迅雷直接去下载了错误页面,初战告捷。

调用access日志,发现所有的mp3下载都提示302,转向了错误页面,而周董的七里香,则是404,直接报错。

自鸣得意一把。

顺便找到一个限速模块,对网站体积较大的文件进行限速,确保服务器稳定

LoadModule limitipconn_module modules/mod_limitipconn.so

BandwidthModule On

ForceBandWidthModule On

Bandwidth all 0

MinBandwidth all 0

LargeFileLimit *.mp3 500 50000

LargeFileLimit *.wma 500 50000

该模块可以指定文件名、文件大小限速,上面的意思是,MP3和WMA文件,凡是大小超过500K的,限速50K,大小不超过500K的,不予限速。

启用该模块,必须先行启用status模块

LoadModule status_module modules/mod_status.so

ExtendedStatus On

否则限速模块无效。

本文仅说明如何在服务器端屏蔽迅雷下载,包括HTTP方式和FTP方式,不涉及客户端和局域网内如何屏蔽迅雷的内容。

下面这里是废话,欢迎忽略,请直接跳到下面的“在Apache和屏蔽迅雷”
一旦服务器上的文件被迅雷索引,就会引来一大堆盗链的家伙,这对小带宽或低配置的服务器来说是致命的打击,于是如何限制迅雷下载服务器上的资源就成了一个很重要的问题。像我自己的服务器,用1MBps小水管来提供一个小网站的HTTP服务,开了内容压缩并设置好图片文件的缓存时间后,打开网页的速度还是比较快的,直到有一天,我发现网站打开的速度变得很慢,而且不是我自身的网络问题(当时我在外地,服务器在家里),当时仅仅知道是服务器上什么进程占用了大量带宽,还没有发现是迅雷的问题。后来经过了很多调查,才发现是迅雷在盗链,看访问日志里面一行行的大型文件下载记录,那真是触目惊心啊。
发现原因是迅雷盗链以后我就开始研究如何在服务器上屏蔽迅雷的下载。首先在HTTP协议上屏蔽迅雷是比较简单的,靠迅雷的用户代理(User Agent)就可以识别出迅雷了,但是在FTP协议上如何识别迅雷就比较棘手了。在好友的帮助下,最后我们终于发现一个在FTP协议上屏蔽迅雷的方法。在此之间和之后,我就写了IIS的反迅雷插件和Serv-U的反迅雷插件。
不过IIS和Serv-U只能在Windows平台上使用,这也是因为当时我的服务器还是Windows操作系统。其实Apache的mod_rewrite模块可以将用户代理作为重写条件,当时我也写了篇文章说明如何在Apache上屏蔽迅雷,但是在那之后还是有不少人发邮件问我如何在Apache上屏蔽迅雷。好吧,既然如此我就再写一篇文章来详细说明如何在Apache上屏蔽迅雷,顺便介绍libantixunlei,这是用于FTP反迅雷的一个C语言写的库。
上面是废话,欢迎忽略,下面进入正题。

在Apache上屏蔽迅雷

在HTTP协议上识别迅雷是通过迅雷的用户代理(User Agent)字串来进行识别的。我对我自己的网站的IIS访问日志以及一个评分系统的评分记录里面记录的用户字串进行了分析,之后发现迅雷使用的几个用户代理应该是唯一的,在访问日志中,除了下载文件的记录,只发现了极少量使用了和迅雷相同的用户代理的记录,这可能是个别用户出于杂七杂八的目使用迅雷下载普通网页而留下的日志。

有了这个分析结果,就可以保证通过用户代理来识别迅雷不会误杀普通用户了。但通过用户代理来识别迅雷有一个问题,如果以后迅雷把自己的用户代理改成和IE的用户代理一样的话怎么办?没关系,至少到现在为止(09年国庆),我还没有发现迅雷做此举动,等迅雷有动作了再想对策也不迟。另外,这里还有一个“脏数据”的方法,如果迅雷很不厚道地把自己伪装成IE的话,我们就只好也很不厚道地使用脏数据方法先反击一下迅雷。虽然脏数据对屏蔽迅雷没有什么帮助,至少可以出出气,让非最新版迅雷用户下载不到正确的内容,就这点应该够迅雷受的了,用户体验大受打击,我想大多数用户都不会追着使用最新版的。

于是,我在废话里面说了,使用Apache的mod_rewrite模块就可以很容易地屏蔽迅雷,因为这个模块的重写规则可以将用户代理作为判断条件。我们只要把用户代理和迅雷是一样的连接请求重定向到一个错误页面,或者干脆直接返回403,就可以在HTTP协议上屏蔽迅雷了。
到目前为止,我们观察到的迅雷使用的用户代理有以下几个:

  1. Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
  2. Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
  3. Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; )
  4. Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.0)
  5. Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 3.5.20706)
  6. Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)

放心,根据网站访问日志和评分系统的日志,这些用户代理应该都是迅雷特有的,在.htaccess文件里面把带有这些用户代理的请求重定向到错误页面就可以了。
当然对于普通网页来说,是没有必要屏蔽迅雷的,所以我们只需要屏蔽访问大文件的请求就可以了,于是.htaccess里面的内容就像下面这样:

  1. RewriteEngine On
  2. #Anti Thunder
  3. RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.1\)$  [NC,OR]
  4. RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.0\)$  [NC,OR]
  5. RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla/5\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.0\)$  [NC,OR]
  6. RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.1;\ \)$   [NC,OR]
  7. RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.0;\ \.NET\ CLR\ 3\.5\.20706\)$  [NC,OR]
  8. RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla/4\.0\ \(compatible;\ MSIE\ 6\.0;\ Windows\ NT\ 5\.1;\ SV1;\ \.NET\ CLR\ 1\.1\.4322;\ \.NET\ CLR\ 2\.0\.50727\)$  [NC]
  9. RewriteRule  ^.*\.(gif|jpg|bmp|zip|rar|exe|mp3|swf)$   /   [NC,F]

如果你想制定更复杂的重写规则,可以参考Apache手册中mod_rewrite的部分,见:http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_rewrite.html
对于其他Web服务器软件,多多少少都能提供一些可将用户代理作为判断条件的网址重写模块或插件,参照上面Apache的设置方法对这些软件进行设置,都能达到屏蔽迅雷的效果。

在FTP协议上反迅雷

在FTP上反迅雷就比较麻烦,这需要获得每一个FTP会话的会话唯一标识和客户端发送的每一条FTP指令。因为这样的需求很少见,所以Linux下的FTP软件很少有提供相应的接口供我们使用。不过还好,Linux下的FTP软件大多都是开源的,我们可以自己修改源码。于是我就写了libantixunlei,然后针对不同的FTP软件,就套用libantixunlei来修改其源码,然后编译安装就可以了。

因为要修改FTP服务器软件的源码,这对技术的要求就比较高了,不见得每个服务器管理员都会C语言,所以对大多数服务器管理员来说目前还是只能等待别人为FTP软件写插件(如果支持的话),或者发布经过修改的FTP服务器软件源码。

于是,如果你想为某个FTP软件加入反迅雷的功能,请访问http://code.google.com/p/libantixunlei 。如果对libantixunlei的用法不太清楚的话,请给我发邮件,我会告诉你FTP协议上屏蔽迅雷的原理和应该使用libantixunei的哪些接口来识别迅雷。

不过先不要失望,现在已经有了可以反迅雷的Linux上的FTP服务器软件了,在我写这篇文章的时候我已经给pure-ftpd 1.0.22版本成功地打上了反迅雷补丁,补丁文件请到:http://code.google.com/p/libantixunlei/downloads/list 去下载,下载回来以后给纯净的pure-ftpd-1.0.22版本打上这个补丁(使用patch命令),然后编译安装就支持反迅雷了。对于其他版本的pure-ftpd我没有试验过是否能使用这个补丁,不知道能否正常使用。另外在此提醒一下没有自己编译安装过软件的管理员,pureftpd的一些功能需要在./configure的时候加上一些参数才能使用,具体请看源码根目录下面的说明文件,偷懒的话可以 ./configure –with-everything,不过印象中官方并不推荐使用这个参数。
另外,因为我很懒,所以把一些特性写死在程序里面了,是否屏蔽使用迅雷的IP和屏蔽IP的时间是写死在程序里面的,要改变的话只能重新编译。这两个配置在libantixunlei.h文件里面可以修改。

libantixunlei使用了pthread库,而在一些平台上编译的时候如果要使用pthread库需要显式指定-lpthread参数,我在PBS服务器上编译的时候没有问题,但是在自家的一台电脑上编译的时候却出错了。如果编译失败的话,点击这个地址查看处理方法:http://code.google.com/p/libantixunlei/wiki/BianYiShiBai

最后做广告:如果需要在Windows系统上反迅雷,请访问:https://www.gsea.com.cn/gs/fanxunlei/isapi.html
这里再贴出一个网友维护的迅雷、QQ旋风等下载软件的离线服务器IP列表,已经做成了Apache可识别的.htaccess,直接添加到自己的.htaccess中即可。
http://ipfilter-emule.googlecode.com/svn/trunk/ipfilter-xl/.htaccess