作者: admin
-
用智能手机遥控的高科技玩具
AR.Drone 2.0AR.Drone系列一直是最知名的手机遥控无人机,整体性能已经达到专业级别,可用性也非常强。AR.Drone 2.0配备了四颗螺旋桨和一颗画质出色的720P相机,可以拍摄照片及视频。这个小玩意可以实现183米的飞行高度,你甚至可以使用它来拍摄自己的微电影或是真人秀。SmartPlaneSmartPlane是一款滑翔机遥控玩具,它的独特之处在于机身内置了先进的传感器,能够自动调整及修正飞行轨迹,所以你无需飞行员资质,也能够通过智能手机实现良好的操控。不过,SmartPlane目前暂时仅支持iOS设备,但Android版本应该很快会到来。 -
在CentOS/RHEL 6.x上使用AtomicorpYUM源
首先
wget -q -O – http://www.atomicorp.com/installers/atomic.sh | sh
会在yum的配置目录中增加一个新的yum源配置文件
/etc/yum.repos.d/atomic.repo安装php等软件时会报错
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID 4520afa9: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY.art.txtThe GPG keys listed for the “CentOS / Red Hat Enterprise Linux 6 – atomicrocketturtle.com” repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.解决
yum update atomic-release
升级下这个就 可以解决 -
四层和七层负载均衡的区别介绍
四层和七层负载均衡的区别介绍
简单理解四层和七层负载均衡:
①所 谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡;同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均 衡。 换句换说,二层负载均衡会通过一个虚拟MAC地址接收请求,然后再分配到真实的MAC地址;三层负载均衡会通过一个虚拟IP地址接收请求,然后再分配到真 实的IP地址;四层通过虚拟IP+端口接收请求,然后再分配到真实的服务器;七层通过虚拟的URL或主机名接收请求,然后再分配到真实的服务器。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
②所 谓的四到七层负载均衡,就是在对后台的服务器进行负载均衡时,依据四层的信息或七层的信息来决定怎么样转发流量。 比如四层的负载均衡,就是通过发布三层的IP地址(VIP),然后加四层的端口号,来决定哪些流量需要做负载均衡,对需要处理的流量进行NAT处理,转发 至后台服务器,并记录下这个TCP或者UDP的流量是由哪台服务器处理的,后续这个连接的所有流量都同样转发到同一台服务器处理。 七层的负载均衡,就是在四层的基础上(没有四层是绝对不可能有七层的),再考虑应用层的特征,比如同一个WEB服务器的负载均衡,除了根据VIP加80端 口辨别是否需要处理的流量,还可根据七层的URL、浏览器类别、语言来决定是否要进行负载均衡。举个例子,如果你的web服务器分成两组,一组是中文语言 的,一组是英文语言的,那么七层负载均衡就可以当用户来访问你的域名时,自动辨别用户语言,然后选择对应的语言服务器组进行负载均衡处理。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~③负载均衡器通常称为四层交换机或七层交换机。四层交换机主要分析IP层及TCP/UDP层,实现四层流量负载均衡。七层交换机除了支持四层负载均衡以外,还有分析应用层的信息,如HTTP协议URI或Cookie信息。
1、负载均衡分为L4 switch(四层交换),即在OSI第4层工作,就是TCP层啦。此种Load Balance不理解应用协议(如HTTP/FTP/MySQL等等)。
例子:LVS,F52、另一种叫做L7 switch(七层交换),OSI的最高层,应用层。此时,该Load Balancer能理解应用协议。
例子: haproxy,MySQL Proxy注意:上面的很多Load Balancer既可以做四层交换,也可以做七层交换。
负载均衡设备也常被称为”四到七层交换机”,那么四层和七层两者到底区别在哪里?
第一,技术原理上的区别。
所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。
以 常见的TCP为例,负载均衡设备在接收到第一个来自客户端的SYN 请求时,即通过上述方式选择一个最佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。TCP的连接建立,即三次握 手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发 报文的同时可能还会对报文原来的源地址进行修改。
所谓七层负载均衡,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。
以 常见的TCP为例,负载均衡设备如果要根据真正的应用层内容再选择服务器,只能先代理最终的服务器和客户端建立连接(三次握手)后,才可能接受到客户端发 送的真正应用层内容的报文,然后再根据该报文中的特定字段,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。负载均衡设备在这种情况 下,更类似于一个代理服务器。负载均衡和前端的客户端以及后端的服务器会分别建立TCP连接。所以从这个技术原理上来看,七层负载均衡明显的对负载均衡设 备的要求更高,处理七层的能力也必然会低于四层模式的部署方式。
第二,应用场景的需求。
七层应用负载的好处,是使得整个网络更”智能化“。 例如访问一个网站的用户流量,可以通过七层的方式,将对图片类的请求转发到特定的图片服务器并可以使用缓存技术;将对文字类的请求可以转发到特定的文字服 务器并可以使用压缩技术。当然这只是七层应用的一个小案例,从技术原理上,这种方式可以对客户端的请求和服务器的响应进行任意意义上的修改,极大的提升了 应用系统在网络层的灵活性。很多在后台,(例如Nginx或者Apache)上部署的功能可以前移到负载均衡设备上,例如客户请求中的Header重写, 服务器响应中的关键字过滤或者内容插入等功能。
另外一个常常被提到功能就是安全性。网络中最常见的SYN Flood攻击,即黑客控制众多源客户端,使用虚假IP地址对同一目标发送SYN攻击,通常这种攻击会大量发送SYN报文,耗尽服务器上的相关资源,以达到Denial of Service(DoS)的目的。从技术原理上也可以看出,四层模式下这些SYN攻击都会被转发到后端的服务器上;而七层模式下这些SYN攻击自然在负载均衡设备上就截止,不会影响后台服务器的正常运营。另外负载均衡设备可以在七层层面设定多种策略,过滤特定报文,例如SQL Injection等应用层面的特定攻击手段,从应用层面进一步提高系统整体安全。
现在的7层负载均衡,主要还是着重于应用HTTP协议,所以其应用范围主要是众多的网站或者内部信息平台等基于B/S开发的系统。 4层负载均衡则对应其他TCP应用,例如基于C/S开发的ERP等系统。
1:是否真的必要,七层应用的确可以提高流量智能化,同时必不可免的带来设备配置复杂,负载均衡压力增高以及故障排查上的复杂性等问题。在设计系统时需要考虑四层七层同时应用的混杂情况。
2:是否真的可以提高安全性。例如SYN Flood攻击,七层模式的确将这些流量从服务器屏蔽,但负载均衡设备本身要有强大的抗DDoS能力,否则即使服务器正常而作为中枢调度的负载均衡设备故障也会导致整个应用的崩溃。
3:是否有足够的灵活度。 七层应用的优势是可以让整个应用的流量智能化,但是负载均衡设备需要提供完善的七层功能,满足客户根据不同情况的基于应用的调度。最简单的一个考核就是能 否取代后台Nginx或者Apache等服务器上的调度功能。能够提供一个七层应用开发接口的负载均衡设备,可以让客户根据需求任意设定功能,才真正有可 能提供强大的灵活性和智能性。
本文出自 “ADC技术博客” 博客,请务必保留此出处http://virtualadc.blog.51cto.com/3027116/591396
-
NFS
[root@www ~]# vim /etc/sysconfig/nfs
RQUOTAD_PORT=1001 <==約在 13 行左右
LOCKD_TCPPORT=30001 <==約在 21 行左右
LOCKD_UDPPORT=30001 <==約在 23 行左右
MOUNTD_PORT=1002 <==約在 41 行左右
[root@www ~]# /etc/init.d/nfs restart
[root@www ~]# rpcinfo -p | grep -E ‘(rquota|mount|nlock)’
100011 2 udp 1001 rquotad
100011 2 tcp 1001 rquotad
100021 4 udp 30001 nlockmgr
100021 4 tcp 30001 nlockmgr
100005 3 udp 1002 mountd
100005 3 tcp 1002 mountd防火墙设置
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 1001 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 30001 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 1002 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 1001 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 30001 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 1002 -j ACCEPTcat /etc/exports
/media/qingaodbshadow xx.xx.xx.xx(rw,sync)
mount -t nfs xx.xx.xx.xx:/media/qingaodbshadow /mnt/shadow/ -
[apache] mod_reqtimeout模块
ll /usr/lib64/httpd/modules/mod_reqtimeout.so
-rwxr-xr-x. 1 root root 14576 Feb 22 2013 /usr/lib64/httpd/modules/mod_reqtimeout.so为了说明mod_reqtimeout模块的用途,需要先说明一下背景。
【背景】
客户端发送请求头(或者body)到web服务器,web服务器一直等待,直到它收到一个完整的请求头(或者body)。
客户端继续发送新的请求,打开新的连接再次发送不完整的请求头(或者body)。
这样可能导致大量的进程/线程等待客户端的数据,耗光了web服务器的资源,导致了正常请求无法得到处理。这个漏洞在Apache 1.x、 2.x都存在,其他的服务器nginx、dhttpd、 GoAhead WebServer、IIS6.0、 IIS7.0、lighttpd我没有确认。
【解决方法】
apache这个漏洞,会导致拒绝服务攻击(DoS攻击),请大家注意啦。
可以通过HTTP DoS的工具“OWASP HTTP POST Tool”或者“Slowloris”来发起攻击,检查一下是否网站是否存在这个漏洞。apache发生问题时,从servser-status的状态看,下面的进程/线程都正在读取请求,
—————————————————-
64 requests currently being processed, 0 idle workers
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRWRScoreboard Key:
“_” Waiting for Connection, “S” Starting up, “R” Reading Request,
“W” Sending Reply, “K” Keepalive (read), “D” DNS Lookup,
“C” Closing connection, “L” Logging, “G” Gracefully finishing,
“I” Idle cleanup of worker, “.” Open slot with no current process—————————————————-
apache的mod_reqtimeout模块就是为了避免这个问题的出现。【设定方法】
httpd.conf
LoadModule reqtimeout_module modules/mod_reqtimeout.so
<IfModule reqtimeout_module>
RequestReadTimeout header=5-40,MinRate=500 body=20,MinRate=500
</IfModule>
※header, body 单位:秒、Rate单位:Byte/秒。附
相应的工具)
OWASP HTTP POST Tool
http://www.owasp.org/index.php/OWASP_HTTP_Post_Tool
Slowloris
http://ha.ckers.org/slowloris/参考链接 http://httpd.apache.org/docs/2.2/en/mod/mod_reqtimeout.html
http://www.acunetix.com/blog/web-security-zone/articles/slow-http-dos-attacks-mitigate-apache-http-server/
-
请先升级 UCenter 到 1.6.0 以上版本
提示 请先升级 UCenter 到 1.6.0 以上版本
请先升级 UCenter 到 1.6.0 以上版本。
如果使用为Discuz! X自带UCenter,请先下载 UCenter 1.6.0, 在 utilities 目录下找到对应的升级程序,复制或上传到 Discuz! X 的 uc_server 目录下,运行该程序进行升级解决
方法有两种:
第一、http://你的域名/install/update.php?step=prepare 直接输入
第二、在updata.php文件中 查找代码 if(version_compare($version, ‘1.5.2’) <= 0) { 将代码修改为:if(version_compare($version, ‘1.5.2’) >= 0) { 就可以跳过检查了!! -
Starting httpd: (98)Address already in use: make_sock: could not bind to add
service httpd start
Starting httpd: (98)Address already in use: make_sock: could not bind to address
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
[FAILED]ps ax |grep httpd | awk ‘{if (NR = 2) { print “kill -KILL ” $1} }’ > /home/xxx.sh
先把占用80端口的进程找出来 kill掉
1.如果是windows下 netstat -aon|findstr “80”
2.如果linux平台,使用:lsof -i:80
kill -9 对应ID
service httpd restartStarting httpd: (98)Address already in use: make_sock: could not bind to add
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
[FAILED]1.netstat -lnp|grep 80
tcp 0 0 192.168.180.68:61027 0.0.0.0:* LISTEN 6289/oproxyd
tcp 0 0 :::80 :::* LISTEN 846/httpd
tcp 0 0 ::ffff:192.168.180.68:7001 :::* LISTEN 32015/java找到pid 846
#ps 846
查看
#kill -9 846
杀掉#./apachectl start
启动成功service httpd start
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:443
no listening sockets available, shutting down
Unable to open logs
[FAILED]
[root@mypiao ~]# netstat -lnp|grep 80
tcp 0 0 :::80 :::* LISTEN 11886/wget
[root@mypiao ~]# kill -9 11886
[root@mypiao ~]# service httpd start
Starting httpd: [ OK ] -
[Linux]svn服务的安装和启动设置 转
在CentOS系统下,使用以下命令进行SVN服务的安装
1.yum -y install subversion
yum -y install subversion安装完毕后,svnserve服务就被添加到了系统的自动启动进程里面,但是尚未开启,所以依然无法随系统自动启动服务。为了安全起见,我们需要修改SVN服务端口,及自定义版本库所在目录。所以需要对以下文件进行相应的修改。
1.vi /etc/rc.d/init.d/svnserve
vi /etc/rc.d/init.d/svnserve找到以下内容
1.pidfile=${PIDFILE-/var/run/svnserve.pid}
2.lockfile=${LOCKFILE-/var/lock/subsys/svnserve}
3.args=”–daemon –pid-file=${pidfile} $OPTIONS”
pidfile=${PIDFILE-/var/run/svnserve.pid}
lockfile=${LOCKFILE-/var/lock/subsys/svnserve}
args=”–daemon –pid-file=${pidfile} $OPTIONS”修改为
1.pidfile=${PIDFILE-/var/run/svnserve.pid}
2.lockfile=${LOCKFILE-/var/lock/subsys/svnserve}
3.logfile=/var/log/svnserve.log
4.args=”–daemon –root /storage/repos –listen-port 621 –pid-file=${pidfile} –log-file=${logfile} $OPTIONS”
pidfile=${PIDFILE-/var/run/svnserve.pid}
lockfile=${LOCKFILE-/var/lock/subsys/svnserve}
logfile=/var/log/svnserve.log
#args=”–daemon –pid-file=${pidfile} $OPTIONS”
args=”–daemon –root /opt/svndata –listen-port 621 –pid-file=${pidfile} –log-file=${logfile} $OPTIONS”–root 是版本库所在的目录
–listen-port 是SVN服务端口号
–log-file 是SVN日志文件修改完成后使用以下命令将自动跟随系统启动功能进行激活
1.chkconfig svnserve on
chkconfig svnserve on
也可以使用以下方式进行手工操作service svnserve start 启动服务
1.service svnserve stop 停止服务
2.service svnserve restart 重启服务 -
Ubuntu 12.04 怎么使用 root 用户登录
如果要使用 root 用户登录,必须先为 root 用户设置密码。
打开终端,输入:sudo passwd root 然后按回车
此时会提示你输入密码,在 password: 后输入你现在登录的用户的密码
然后系统提示你输入新的 UNIX 密码
Enter new UNIX password: 这里输入你想为 root 设置的密码,要输入两次
此时系统会出现密码设置成功的提示
最后退出终端,重启计算机,选择用户进入系统的地方,选择其他 ( other ) ,然后输入 root
再输入刚才设定的密码就可以登录了。
作为普通用户,登录之后在终端里输入命令:sudo -s -H ,回车,输入当前用户密码之后,也同样能够切换到
root 权限,也更为方便。
如果要对系统做深度修改,请参考下面的方法
由于 ubuntu 12.04 的登录器改为 lightdm ,已经把 root 用户给屏蔽了,需要将登录器换成 gdm
,才可以使用 other 选项。
安装 gdm: sudo apt-get install gdm
执行 sudo dpkg-reconfigure gdm 将登录管理器修改为 gdm,
修改/etc/pam.d/login文件:
auth [success=ok new_authtok_reqd=ok ignore=ignore
user_unknown=bad default=die] pam_securetty.so
修改成为下面的内容:
auth requisite pam_securetty.so
做完上面的操作之后,重启计算机。 -
【转】ubuntu修改IP地址和网关的方法
一、使用命令设置Ubuntu IP地址
1.修改配置文件blacklist.conf禁用IPV6
sudo vi /etc/modprobe.d/blacklist.conf
表示用vi编辑器(也可以用其他编辑器,如gedit)编辑etc文件夹下modprobe.d文件夹中blacklist.conf文档的内容。
注意:只能在root用户模式下才可以修改
在文档最后添加 blacklist ipv6
然后查看修改结果
cat /etc/modprobe.d/blacklist.conf
2.设置网卡eth0的IP地址和子网掩码
sudo ifconfig eth0 192.168.2.1 netmask 255.255.255.0
将IP地址改为:192.168.2.1,子网掩码改为:255.255.255.0
3.Ubuntu IP设置网关
sudo route add default gw 192.168.2.254
4.Ubuntu IP设置DNS 修改/etc/resolv.conf,在其中加入nameserver DNS的地址1 和 nameserver DNS的地址2 完成。
5.重启网络服务(若不行,请重启ubuntu:sudo reboot)
sudo /etc/init.d/networking restart
6.查看当前IP
ifconfig
二、直接修改Ubuntu IP系统配置文件
Ubuntu IP的网络配置文件是根目录下:/etc/network/interfaces
注意:修改完interfaces文档中的内容后,需要修改/etc/NetworkManager/NetworkManager.conf文档中的managed参数,使之为true,并重启。否则,会提示说“有线网络设备未托管”。
打开后里面可设置DHCP或手动设置静态IP。
前面auto eth0,表示让网卡开机自动挂载eth0。
1. 以DHCP方式配置网卡
编辑文件 /etc/network/interfaces
sudo vi /etc/network/interfaces
并用下面的行来替换有关eth0的行:
#The primary network interface – use DHCP to find our address
auto eth0
iface eth0 inet dhcp
用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart
也可以在命令行下直接输入下面的命令来获取地址sudo dhclient eth0
2. 为网卡配置静态Ubuntu IP地址
编辑文件 /etc/network/interfaces
sudo vi /etc/network/interfaces
并用下面的行来替换有关eth0的行:
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.2.1
gateway 192.168.2.254
netmask 255.255.255.0
#network 192.168.2.0
#broadcast 192.168.2.255
将eth0的IP分配方式修改为静态分配(static)后,为其制定IP、网关、子网掩码等信息。
将上面的Ubuntu IP地址等信息换成你自己就可以了。
用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart
3. 设定第二个Ubuntu IP地址(虚拟IP地址)
编辑文件/etc/network/interfaces:
sudo vi /etc/network/interfaces
在该文件中添加如下的行:
auto eth0:1
iface eth0:1 inet static
address x.x.x.x
netmask x.x.x.x
network x.x.x.x
broadcast x.x.x.x
gateway x.x.x.x
根据你的情况填上所有诸如address,netmask,network,broadcast和gateways等信息;
用下面的命令使网络设置生效
sudo /etc/init.d/networking restart
4. 设置主机名称(hostname)
使用下面的命令来查看当前主机的主机名称:sudo /bin/hostname
使用下面的命令来设置当前主机的主机名称:sudo /bin/hostname newname
系统启动时,它会从/bin/hostname来读取主机的名称。
5. 配置DNS
首先,你可以在/etc/hosts中加入一些主机名称和这些主机名称对应的IP地址,这是 简单使用本机的静态查询。要访问DNS 服务器来进行查询,需要设置/etc/resolv.conf文件,假设DNS服务器的IP地址是192.168.2.2, 那么/etc/resolv.conf文件的内容应为:
search chotim.com
nameserver 192.168.2.2
6.手动重启网络服务:sudo /etc/init.d/networking restart
返回结果如下:
*Reconfiguring network interfaces… [OK]




