Monthly Archives: 十二月 2016

十二月 31st, 2016

周末的时候看到网友们都在折腾ServerStatus服务器监控工具,老左也看到cp同学留言说可以让我也折腾折腾,于是今天正好没其他事情就准备在测试机上玩玩。但是在编译make的时候看到有 “g++: Command not found“报错提示,当然解决方法也很简单,缺少组件导致的。

在这篇文章中就先记录如果有遇 “g++: Command not found“报错问题的解决方法。

第一、报错提示

[root@MyCloudServer server]# make
g++ -c -Iinclude -Wall -O2 src/main.cpp -o obj/main.o
make: g++: Command not found
make: *** [obj/main.o] Error 127

报错提示

第二、检查版本

通过”yum search “gcc-c++“”命令检查缺少组件的版本,毕竟不同系统需要安装的版本是不同的。

检查版本

第三、安装对应版本

yum install “gcc-c++.x86_64” -y

直接yum安装对应需要的版本。

安装对应版本

老左看到提示安装完毕,然后再去执行make编译就不再报错。这样,如果我们下次也遇到”g++: Command not found”错误提示的话,可以效仿使用。

原文链接:http://www.laozuo.org/9596.html

十二月 31st, 2016

默认情况下安卓应用程序.apk文件IIS服务器是不支持的,需要在IIS中的MIME类型中添加.apk的支持,方法如下:

只需要在IIS的MIME类型中添加扩展名为.apk,MIME类型为application/vnd.android.

详细步骤:

IIS管理器>>sites>>MIME Types>>add,如下图:

%e5%9b%be%e7%89%871

确定后即可!

十二月 30th, 2016

Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可.

但是,默认安装的系统下,可能未安装man命令,如下:

# man

-bash: man: command not found

 

那该如何安装该man命令呢?其实很简单,只要执行下面一条命令即可!

# yum -y install man

 

接下来,你就可以使用man命令了.

TAGS: ,
十二月 30th, 2016

如说你只允许10.0.0.2这个ip进入,其它都禁止:

vim /etc/ssh/sshd_config

添加一行:

allowusers root@10.0.0.2

注:root为你用来登入服务器的用户名

最后sshd重启

service sshd restart


原文链接:http://www.linuxde.net/2013/06/14589.html
十二月 30th, 2016

大家有时候会发现 ssh 挂在那里没有响应了,可能是客户端的问题,也可能是服务器端的问题,也可能是客户端和服务器之间的网络问题;可能是客户端电脑休眠后连接断了、可能是网络断了、可能是 WiFi 信号不好、可能是网络延迟大了、可能是服务器挂了、也可能是服务器上的 sshd 进程挂了,…,可能是技术问题,也可能是非技术问题,可以找出无数可能。

我常遇到或者说每天都遇到的情形是,离开办公桌前忘了退出 ssh 会话。工作的时候长时间 ssh 到服务器上,工作完盖上 Mac 走人,回家后发现那些没退出的 ssh 会话还挂在那里,无法退出、无法 Ctrl+C、无法做任何操作。我的粗暴做法通常是直接关闭 Terminal 后重新开一个新的;如果用的不是图形系统,没有窗口可以关闭,那还要启用另一个终端找到相关进程后 kill 掉,如果每天都要搞这么几次还是挺烦人的。今天无意中从同事那里学到了一个小技巧,在那些没退出的 ssh 会话里用 ~. “优雅” 的断开连接。

~.

查看一下 man 帮助文件发现已经有说明,惭愧的是用了这么多年 ssh 才发现有这么一招:

$ man ssh
...
ESCAPE CHARACTERS
     ...

     The supported escapes (assuming the default `~') are:

     ~.      Disconnect.


原文链接:http://www.linuxde.net/2013/08/15020.html
TAGS: ,
十二月 30th, 2016

使用ssh客户端(如:putty)连接Linux服务器,可能会等待10-30秒才有提示输入密码,严重影响工作效率。登录很慢,登录上去后速度正常,这种情况主要有两种可能的原因:

1. DNS反向解析问题

OpenSSH在用户登录的时候会验证ip,它根据用户的IP使用反向DNS找到主机名,再使用DNS找到IP地址,最后匹配一下登录的IP是否合法。如果客户机的IP没有域名,或者DNS服务器很慢或不通,那么登录就会很花时间。

解决办法:

在目标服务器上修改sshd服务器端配置,并重启sshd

vi /etc/ssh/sshd_config
UseDNS no

2. 关闭ssh的gssapi认证

用ssh -v user@server 可以看到登录时有如下信息:

debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure. Minor code may provide more information

注:ssh -vvv user@server 可以看到更细的debug信息

解决办法:

修改sshd服务器端配置

vi /etc/ssh/ssh_config
GSSAPIAuthentication no

可以使用ssh -o GSSAPIAuthentication=no user@server登录
GSSAPI ( Generic Security Services Application Programming Interface) 是一套类似Kerberos 5的通用网络安全系统接口,该接口是对各种不同的客户端服务器安全机制的封装,以消除安全接口的不同,降低编程难度,但该接口在目标机器无域名解析时会有问题,使用strace查看后发现,ssh在验证完key之后,进行authentication gssapi-with-mic,此时先去连接DNS服务器,在这之后会进行其他操作。

原文转载自《Linux就该这么学》:http://www.linuxprobe.com/ssh-login-slowly/

十二月 30th, 2016

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS运行在UDP协议之上,使用端口号53。

 

下面开始在CentOS7下搭建DNS,仅供参考!

 

说明:本文只介绍chroot的方式,对于非chroot的方式不做介绍!

 

环境准备:

1. 一台CentOS7的机器

2. IP地址:192.168.0.254

3. 主机名:server.example.com

 

开始搭建DNS

1. 安装软件包

# yum install bind  bind-chroot  bind-utils -y

2. 开始配置(安装chroot软件包之后,DNS所有相关的文件均在/var/named/chroot/目录下)

# cd /var/named/chroot/

# cp /etc/named.conf  ./

# chgrp named named.conf

# vim named.conf

options {

listen-on port 53 {any;};

directory  “/var/named”;

};

zone “.” IN {

type hint;

file “named.ca”;

};

zone “example.com.”  IN {

type master;

file “example.com.zone”;

};

zone “0.168.192.IN-addr.arpa.” IN {

type master;

file “192.168.0.zone”;

};

# cd ../var/named/

# cp /var/named/named.ca  ./

# vim example.com.zone

$TTL 600

@ IN SOA ns1.example.com. admin.example.com. {

20150106

1H

5M

2D

6H)

IN NS ns1

IN MX 10 mail

ns1 IN A 192.168.0.1

mail IN A 192.168.0.2

www  IN  A 192.168.0.3

# vim 192.168.0.zone

$TTL 600

@ IN SOA ns1.example.com. admin.example.com. {

2014122322

1H

5M

2D

6H)

IN NS ns1.example.com.

1  IN  PTR  ns1.example.com.

2  IN  PTR  mail.example.com.

3  IN  PTR  www.example.com.

# chgrp named *

 

3. 启动bind服务

# systemctl  enable  named-chroot-setup

# systemctl  restart  named-chroot

 

4. 测试

# vim /etc/resolv.conf

nameserver  192.168.0.254

search example.com

# nslookup www.example.com

# nslookup 192.168.0.1

 

 

原文链接:http://www.centoscn.com/CentosServer/dns/2015/0109/4460.html

TAGS: ,
十二月 30th, 2016

配置之前先了解一下bind DNS服务器软件:BIND是一种开源的DNS(Domain Name System)协议的实现,包含对域名的查询和响应所需的所有软件。它是互联网上最广泛使用的一种DNS服务器,对于类UNIX系统来说,已经成为事实上的标准。

为了构架DNS服务器来解析域名或ip地址,我们得安装BIND和caching-nameserver。为了TCP和UDP53数据包能通过,我们也有必要配置路由器。

安装 BIND 软件包

1、安装

# yum -y install bind caching-nameserver

2、配置

下面的例子是以公网IP(172.16.0.80/29),局域网IP(192.168.0.0/24),域名(linuxde.net)作说明。在配置你自己的服务器时,请使用你自己的IP和域名。

# vim /etc/named.conf

options {
directory "/var/named";
# query range
allow-query { localhost; 192.168.0.0/24; };
# transfer range
allow-transfer { localhost; 192.168.0.0/24; };
# recursion range
allow-recursion { localhost; 192.168.0.0/24; };
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
# here is the section for internal informations
vimew "internal" {
match-clients {
localhost;
192.168.0.0/24;
};
zone "." IN {
type hint;
file "named.ca";
};
# set zones for internal
zone "linuxde.net" IN {
type master;
file "linuxde.net.lan";
allow-update { none; };
};
# set zones for internal
zone "0.168.192.in-addr.arpa" IN {
type master;
file "0.168.192.db";
allow-update { none; };
};

zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};

zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};

zone "255.in-addr.arpa" IN {
type master;
file "named.broadcast";
allow-update { none; };
};

zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};
};

vimew "external" {
match-clients {
any;
};

zone "." IN {
type hint;
file "named.ca";
};

# set zones for external
zone "linuxde.net" IN {
type master;
file "linuxde.net.wan";
allow-update { none; };
};

# set zones for external *note
zone "80.0.16.172.in-addr.arpa" IN {
type master;
file "80.0.16.172.db";
allow-update { none; };
};
};

include "/etc/rndc.key";
 
# *note : For How to write for reverse resolvimng, Write network address reversely like below.

the case for 192.168.0.0/24
network address? 192.168.0.0
range of network? 192.168.0.0 - 192.168.0.255
how to write? 0.168.192.in-addr.arpa
 
case of 172.16.0.80/29
network address? 172.16.0.80
range of network? 172.16.0.80 - 172.16.0.87
how to write? 80.0.16.172.in-addr.arp

设置Zones

创建zone文件以便服务器能解析域名IP。

1、内部zone文件

这个例子使用的是内网地址(192.168.0.0/24),域名(linuxde.net),请根据自己的具体情况配置。

# vim /var/named/linuxde.net.lan

$TTL    86400
@        IN    SOA   ns.linuxde.net. root.linuxde.net. (
               2007041501   ;Serial
               3600         ;Refresh
               1800         ;Retry
               604800       ;Expire
               86400        ;Minimum TTL

)
               # define name server
               IN    NS     ns.linuxde.net.
               # internal IP address of name server
               IN    A       192.168.0.17
               # define mail exchanger
               IN    MX 10   ns.linuxde.net.
 
               # define IP address and hostname
ns             IN    A       192.168.0.17

2、外部zone文件

这个例子使用的是外网地址(172.16.0.80/29),域名(linuxde.net),请替换成自己的。

# vim /var/named/linuxde.net.wan

$TTL      86400
@          IN    SOA    ns.linuxde.net. root.linuxde.net. (
                 2007041501    ;Serial
                 3600          ;Refresh
                 1800          ;Retry
                 604800        ;Expire
                 86400         ;Minimum TTL
)
                 # define name server
                 IN        NS   ns.linuxde.net.
                 # external IP address of name server
                 IN        A    172.16.0.82
                 # define Mail exchanger
                 IN        MX 10 ns.linuxde.net.
 
                 # define IP address and hostname
ns               IN        A     172.16.0.82

创建zone文件使服务器能够反向解析IP到域名。

3、内部zone文件

这个例子使用的是内网地址(192.168.0.0/24),域名(linuxde.net),请使用自己的设置替换。

# vim /var/named/0.168.192.db

$TTL    86400
@       IN    SOA  ns.linuxde.net. root.linuxde.net. (
              2007041501     ;Serial
              3600           ;Refresh
              1800           ;Retry
              604800         ;Expire
              86400          ;Minimum TTL
)
              # define name server
              IN        NS    ns.linuxde.net.
 
              # define range that this domain name in
              IN        PTR   linuxde.net.
              # define IP address and hostname
              IN        A     255.255.255.0
 
17            IN        PTR   ns.linuxde.net.

4、外部zone文件

这例子使用外网地址(172.16.0.80/29),域名(linuxde.net),请替换成自己的。

# vim /var/named/80.0.16.172.db

$TTL     86400
@        IN    SOA  ns.linuxde.net. root.linuxde.net. (
               2007041501     ;Serial
               3600           ;Refresh
               1800           ;Retry
               604800         ;Expire
               86400          ;Minimum TTL
)
               # define name server
               IN        NS   ns.linuxde.net.
 
               # define range that this domain name in
               IN        PTR  linuxde.net.
               # define IP address and hostname
               IN        A     255.255.255.248
 
82             IN        PTR   ns.linuxde.net.

启动BIND

1、完成BIND的配置后,在启动named之前,还需要建立chroot环境。

# yum -y install bind-chroot
# /etc/rc.d/init.d/named start
# chkconfig named on

2、操作检验

确认服务器已经正确解析域名或IP地址。

# dig ns.linuxde.net.
; <<>> DiG 9.3.4 <<>> ns.linuxde.net.
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54592
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;ns.linuxde.net.           IN   A

;; ANSWER SECTION:
ns.linuxde.net. 86400   IN   A    192.168.0.17

;; AUTHORITY SECTION:
linuxde.net.     86400   IN   NS   ns.linuxde.net.

;; Query time: 0 msec
;; SERVER: 192.168.0.17#53(192.168.0.17)
;; WHEN: Thu Mar 8 19:35:19 2007
;; MSG SIZE rcvd: 68

# dig -x 192.168.0.17
; <<>> DiG 9.3.4 <<>> -x 192.168.0.17
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45743
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;17.0.168.192.in-addr.arpa.           IN   PTR

;; ANSWER SECTION:
17.0.168.192.in-addr.arpa. 86400   IN   PTR   ns.linuxde.net.

;; AUTHORITY SECTION:
0.168.192.in-addr.arpa.     86400   IN   NS     ns.linuxde.net.

;; ADDITIONAL SECTION:
ns.linuxde.net.          86400   IN   A       192.168.0.17

;; Query time: 0 msec
;; SERVER: 192.168.0.17#53(192.168.0.17)
;; WHEN: Thu Mar 8 19:37:50 2007
;; MSG SIZE rcvd: 107

配置从DNS服务器

配置从DNS服务器比较简单。下面的例子主DNS是“ns.linuxde.net”,从DNS是“ns.example.info”。

1、在主DNS服务器的zone文件作如下配置

# vim /var/named/linuxde.net.wan

$TTL     86400
@        IN   SOA   ns.linuxde.net. root.linuxde.net. (
              # update serial
              2007041501      ;Serial
              3600            ;Refresh
              1800            ;Retry
              604800          ;Expire
              86400           ;Minimum TTL
)
              IN         NS   ns.linuxde.net.
              # add name server
              IN         NS   ns.example.info.
              IN         A    172.16.0.82
              IN         MX 10 ns.linuxde.net.
 
ns            IN         A    172.16.0.82

# rndc reload
server reload successful

2、配置从DNS服务器

# vim /etc/named.conf

# add these lines below
zone “linuxde.net” IN {
type slave;
masters { 172.16.0.82; };
file “slaves/linuxde.net.wan”;
};

# rndc reload
server reload successful
# ls /var/named/slaves
linuxde.net.wan         # zone file in master DNS has been just transfered

设置别名记录,如果你想为你的主机设置另一个名称,在zone文件定义CNAME记录

# vim /var/named/server-Linux.info.wan

$TTL    86400
@       IN    SOA   ns.server-linux.info. root.server-linux.info. (
              # update serial
              2007041501      ;Serial
              3600            ;Refresh
              1800            ;Retry
              604800          ;Expire
              86400           ;Minimum TTL
)
              IN        NS    ns.server-linux.info.
              IN        A     172.16.0.82
              IN        MX 10 ns.server-linux.info.
 
ns            IN        A     172.16.0.82
# aliase IN CNAME server's name
ftp          IN       CNAME   ns.server-linux.info.

# rndc reload
server reload successful

以下是一个整理的主配文件参数解释(仅供参考)/**/代表注释:

options { /*OPTIONS选项用来定义一些影响整个DNS服务器的环境,如这里的DI RECTORY用来指定在本文件指定的文件的路径,如这里的是将其指定到 /var/named 下,在这里你还可以指定端口等等。不指定则端口是53
*/
directory "/var/named";
}; //

//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN { //在这个文件中是用zone关键字来定义域区的,一个zone关键字定义一个域区
type hint;
/*在这里type类型有三种,它们分别是master,slave和hint它们的含义分别是:
master:表示定义的是主域名服务器
slave :表示定义的是辅助域名服务器
hint:表示是互联网中根域名服务器
*/
file "named.ca"; //用来指定具体存放DNS记录的文件
};

zone "localhost" IN { //定义一具域名为localhost的正向区域
type master;
file "localhost.zone" ;
allow-update { none; };
};
zone "test.net" IN { //指定一个域名为test.net的正向区域
type master;
file "test.net”
allow-update { none;};
};

zone "0.0.127.in-addr.arpa" IN { //定义一个IP为127.0.0.*的反向域区
type master;
file "named.local";
allow-update { none; };
};
zone "0.192.168.in-addr.arpa" IN { //定义一个IP为168.192.0.*反向域区
type master;
file "168.192.0";

/var/named/test.net文件
@ IN SOA linux.test.net. Webmaster.test.net. ( SOA表示授权开始
/*上面的IN表示后面的数据使用的是INTERNET标准。而@则代表相应的域名,如在这里代表test.net,即表示一个域名记录定义的开始。而linux.test.net则是这个域的主域名服务器,而webmaster.test.net则是管理员的邮件地址。注意这是邮件地址中用.来代替常见的邮件地址中的@.而SOA表示授权的开始
*/
2003012101 ; serial (d. adams) /*本行前面的数字表示配置文件的修改版本,格式是年月日当日修改的修改的次数,每次修改这个配置文件时都应该修改这个数字,要不然你所作的修改不会更新到网上的其它DNS服务器的数据库上,即你所做的更新很可能对于不以你的所配置的DNS服务器为DNS服务器的客户端来说就不会反映出你的更新,也就对他们来说你更新是没有意义的。
*/
28800 ; refresh
/*定义的是以为单位的刷新频率 即规定从域名服务器多长时间查询一个主服务器,以保证从服务器的数据是最新的
*/
7200 ;retry
/*上面的这个值是规定了以秒为单位的重试的时间间隔,即当从服务试图在主服务器上查询更时,而连接失败了,则这个值规定了从服务多长时间后再试
*/
3600000 ; expiry
/*上面这个用来规定从服务器在向主服务更新失败后多长时间后清除对应的记录,上述的数值是以分钟为单位的
*/
8400 )
/*上面这个数据用来规定缓冲服务器不能与主服务联系上后多长时间清除相应的记
录
*/
IN NS linux
IN MX 10 linux
linux IN A 168.192.0.14
it-test1 IN A 168.192.0.133
www IN CNAME linux

/*上面的第一列表示是主机的名字,省去了后面的域。
NS:表示是这个主机是一个域名服务器,
A:定义了一条A记录,即主机名到IP地址的对应记录
MX 定义了一邮件记录
CNAME:定义了对应主机的一个别名

/var/named/168.192.0
@ IN SOA linux.test.net. webmastert.linux.net. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS linux.test.net.
/*以上的各关键字的含义跟test.net是相同的
14 IN PTR linux.test.net.
133 IN PTR it-test1.test.net.
/*
上面的第一列表示的是主机的IP地址。省略了网络地址部分。如14完整应该是:
168.192.0.14
PTR:表示反向记录
最后一列表示的是主机的域名。


原文链接:http://www.linuxde.net/2011/11/2000.html
TAGS: ,
十二月 30th, 2016

来自于百度站长平台的消息,百度2016搜索算法盘点,算法一向是站长们关心的话题,哪些站点命中算法,各位冷暖自知,希望各位站长童靴有则改之,无则加勉,下面学院君就逐一盘点各大算

 

6月:欺骗,打击欺骗下载和无告知的捆绑下载。

7月:冰桶3.0,打击移动页强制用户下载或调起APP的行为。

8月:天网,打击网站窃取用户信息,在网页嵌恶意代码,用于盗取网民的QQ号、手机号等隐私行为。

9月:冰桶4.0,百度搜索针对移动搜索结果页广告过多、影响用户体验的页面,进行策略调整,冰桶算法4.0特打击此类站点。

10:冰桶4.5,重点打击有色情导航类、色情动图类、露骨文字类、非法博彩类等内容。

11月:蓝天,蓝天算法主要打击新闻源站点售卖软文、目录行为。

2016就要过去,又多了这么多的算法,都是在完善百度搜索提升用户体验,搜索引擎算法不断的更新,未来还会有更多的算法,打击违规,影响用户体验的行为,但万变不离其宗,身正不怕影子歪,用心做有价值的内容就好了。

十二月 30th, 2016

环境

CentOS 6.x 32位/64位
XEN/KVM/OpenVZ

步骤

依次运行下列命令

#wget http://www.hi-vps.com/shell/vpn_centos6.sh
#chmod a+x vpn_centos6.sh

安装Centos6.2PPTPVPN脚本

#bash vpn_centos6.sh

执行完后有1、2、3种英文,对应如下中文意思。

1. 安装VPN服务
2. 修复VPN
3. 添加VPN用户

我们要安装PPTP vpn,当然输入1,然后enter键了。等待安装完成,就会出现账号和密码啦,默认账号是vpn,密码是一串随机数字,自己用的话就不用加账号和密码了,复制下来备用吧。安装完成如下:

 

DKMS: add Completed.
Module build for the currently running kernel was skipped
since the kernel source for this kernel does not seem to be
installed.
kernel_ppp_mppe-1.0.2-3dkms.noarch
warning: ppp-2.4.5-17.0.rhel6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 862acc42: NOKEY
Preparing...                ########################################### [100%]
   1:ppp                    ########################################### [100%]
warning: pptpd-1.3.4-2.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 862acc42: NOKEY
Preparing...                ########################################### [100%]
   1:pptpd                  ########################################### [100%]
mknod"/dev/ppp": 文件已存在
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
Starting pptpd:                                            [  OK  ]
VPN service is installed, your VPN username is vpn, VPN password is 7OXoJ0V1