• lotserver(锐速母公司的锐速版本)安装与换核

    本文基于的serverSpeeser_Install开源共享完成,测试了在centos7 环境下的换核安装。

    本人使用的vps目前内核版本是4.10.2-1.el7.elrepo.x86_64,是为了使用bbr而升过级的,原先的内核是3.10.0-514.10.2.el7.x86_64。

    如果你使用的不是centos7,可以查看https://github.com/0oVicero0/serverSpeeder_kernel/blob/master/SystemList.md来确认你需要安装的内核。

    看了一下作者提供的支持内核版本centos7下有多个,我选择了其中最新的一个3.10.0-327.el7.x86_64。

    下面列出以下安装步骤:

    1 下载安装327版内核:

    下载地址是  https://buildlogs.centos.org/c7.1511.00/kernel/20151119220809/3.10.0-327.el7.x86_64/

    先准备辅助lib的安装

    wget https://buildlogs.centos.org/c7.1511.00/kernel/20151119220809/3.10.0-327.el7.x86_64/kernel-tools-3.10.0-327.el7.x86_64.rpm
    
    wget https://buildlogs.centos.org/c7.1511.00/kernel/20151119220809/3.10.0-327.el7.x86_64/kernel-tools-libs-3.10.0-327.el7.x86_64.rpm
    
    rpm -ivh kernel-tools-3.10.0-327.el7.x86_64.rpm kernel-tools-libs-3.10.0-327.el7.x86_64.rpm --force  #强制安装,因为本机有更高版本存在

    安装内核

    wget https://buildlogs.centos.org/c7.1511.00/kernel/20151119220809/3.10.0-327.el7.x86_64/kernel-3.10.0-327.el7.x86_64.rpm
    
    rpm -ivh kernel-3.10.0-327.el7.x86_64.rpm --force

    2 设置启动内核

    grub2-mkconfig -o /boot/grub2/grub.cfg

    看到的结果大致如下,各人的内核不一致,所以会有多少

    Generating grub configuration file …
    Found linux image: /boot/vmlinuz-4.10.2-1.el7.elrepo.x86_64
    Found initrd image: /boot/initramfs-4.10.2-1.el7.elrepo.x86_64.img
    Found linux image: /boot/vmlinuz-3.10.0-514.10.2.el7.x86_64
    Found initrd image: /boot/initramfs-3.10.0-514.10.2.el7.x86_64.img
    Found linux image: /boot/vmlinuz-3.10.0-514.2.2.el7.x86_64
    Found initrd image: /boot/initramfs-3.10.0-514.2.2.el7.x86_64.img
    Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64
    Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img
    Found linux image: /boot/vmlinuz-0-rescue-8c51b04886234e47bf5385321ac3bcae
    Found initrd image: /boot/initramfs-0-rescue-8c51b04886234e47bf5385321ac3bcae.img
    Found linux image: /boot/vmlinuz-0-rescue-f93f471fcefa4190a918621cd9b830e9
    Found initrd image: /boot/initramfs-0-rescue-f93f471fcefa4190a918621cd9b830e9.img
    Found linux image: /boot/vmlinuz-0-rescue-b1feb1d0adc84bdca5097f5ea2b903ce
    Found initrd image: /boot/initramfs-0-rescue-b1feb1d0adc84bdca5097f5ea2b903ce.img

    这里可以看到vmlinuz-3.10.0-327.el7.x86_64这个内核处于第7个位置,,内核启动顺序是从0开始计数的,那么我们需要的启动内核就是设置为6,各位网友可以根据自己的实际情况判断该是使用什么内核启动,执行下列语句

    grub2-set-default 6

    3 重启系统,使内核生效,并查看一下内核是否已经是327版本了

    reboot
    
    uname -a

    正常情况下会显示内核已经是327了

    3.10.0-327.el7.x86_64

    4 开始安装lotserver

    wget --no-check-certificate -O appex.sh https://raw.githubusercontent.com/0oVicero0/serverSpeeser_Install/master/appex.sh && chmod +x appex.sh && bash appex.sh install

    然后一路回车,就安装好了

    会显示

    [Running Status]
    LotServer is running!
    version 3.11.20.5

    [License Information]
    License 469FCD1291AC52AC (valid on current device)
    MaxSession unlimited
    MaxTcpAccSession unlimited
    MaxBandwidth(kbps) 1024000
    ExpireDate 2035-12-31

    [Connection Information]
    TotalFlow 4
    NumOfTcpFlows 4
    TotalAccTcpFlow 3
    TotalActiveTcpFlow 0

    [Running Configuration]
    accif eth0
    acc 1
    advacc 1
    advinacc 0
    wankbps 1000000
    waninkbps 1000000
    csvmode 0
    subnetAcc 0
    maxmode 0
    pcapEnable 0

    这时安装就完成了。

    系统的安装目录是在根目录下的/appex目录内,一些执行文件位于 /appex/bin内

    lotServer.sh 是控制文件

    /appex/bin/lotServer.sh start 	#启动锐速
    /appex/bin/lotServer.sh stop  	#停止锐速
    /appex/bin/lotServer.sh restart #重启锐速
    /appex/bin/lotServer.sh status  #查看锐速状态

    utils.sh是查看运行数据,会及时显示当前每秒进出流量,执行前需要安装BC  安装指令是  yum install bc -y

    setConfig.sh 与showConfig.sh是设置以及显示配置

     

    5 最后是卸载lotserver

    wget --no-check-certificate -O appex.sh https://raw.githubusercontent.com/0oVicero0/serverSpeeser_Install/master/appex.sh && chmod +x appex.sh && bash appex.sh unstall

     

     

     

  • zabbix客户端一键安装包 && 安装简单记录(centos环境)

    一键安装包

    cd /root
    wget --no-check-certificate https://raw.githubusercontent.com/kevin-cn/zabbixclient_autoinstall/master/zbc_install.sh
    chmod +x zbc_install.sh
    ./zbc_install.sh

    一共就10来个指令,具体说明就不写了

    wget https://fossies.org/linux/misc/zabbix-3.2.4.tar.gz
    tar zxf zabbix-3.2.4.tar.gz
    cd zabbix-3.2.4
    ./configure --prefix=/usr/local/zabbix --enable-agent
    make && make install
    vim /usr/local/zabbix/etc/zabbix_agentd.conf
    vim /etc/sysconfig/iptables
    cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d
    vim /etc/init.d/zabbix_agentd
    groupadd zabbix
    useradd zabbix -g zabbix -s /bin/false
    chkconfig --add zabbix_agentd
    chkconfig zabbix_agentd on

    说明

    vim /usr/local/zabbix/etc/zabbix_agentd.conf

    这个是修改一下监控服务器以及本机地址位置,将其中几个地方改为监控服务器以及本机地址

    1.  Server=127.0.0.1 这里将127.0.0.1改为监控主机IP
    2.  ServerActive=127.0.0.1这里同上,改为监控主机IP
    3. Hostname=Zabbix server 这里将 Zabbix server 改为本机IP
    vim /etc/sysconfig/iptables

    这个是打开防火墙端口,允许监控机访问本机10050端口,增加一句即可“  -A INPUT -p tcp -m tcp –dport 10050 -j ACCEPT  ”

    vim /etc/init.d/zabbix_agentd

    这个是修改一下zabbix的启动位置,因为编译安装的,所以位置不同

    将 BASEDIR=/usr/local 改为  BASEDIR=/usr/local/zabbix  即可

  • 安装 ntopng

    官方说明:http://packages.ntop.org/      http://packages.ntop.org/centos-stable/   http://packages.ntop.org/centos/

    参考:http://shaurong.blogspot.com/2013/11/ntopng-11-yum-centos-64-x64.html

    下載 :http://sourceforge.net/projects/ntop/files/ntopng/

    下面用yum方式安装,如何安装配置Ntopng :
    Ntopng是目前Ntop官方的主推版本,可以从http://www.ntop.org/ 下载目前最新的ntopng-1.1源码版本进行编译安装。不过为了安装方便,官方推出了Ntopng的yum源仓库,通过yum源仓库可以轻松安装Ntopng,这里就采用yum源方式进行安装。
    1.设置yum源
    首先为Ntopng创建一个yum源仓库,
              Centos 6
    cd /etc/yum.repos.d/
    wget http://packages.ntop.org/centos-stable/ntop.repo -O ntop.repo
    wget http://packages.ntop.org/centos-stable/epel-6.repo -O epel.repo    
    wget https://copr.fedoraproject.org/coprs/saltstack/zeromq4/repo/epel-6/saltstack-zeromq4-epel-6.repo

    Centos 7

    wget http://packages.ntop.org/centos/epel-7.repo -O epel.repo

    然后下载一个epel的yum源:

              Centos 6
    wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
    rpm -Uvh epel-release-6-8.noarch.rpm

    Centos 7

    wget https://ftp.fau.de/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
    rpm -Uvh epel-release-7-9.noarch.rpm

    2.安装Ntopng

    在设置好两个yum源后,安装Ntopng就变得十分简单了,只需执行如下操作即可:
    yum clean all
    yum update -y
    yum install pfring n2disk nProbe ntopng ntopng-data nbox
    3.配置Ntopng
    在Ntopng安装完成后,默认的配置文件模板是/etc/ntopng/ntopng.conf.sample,可以将此文件重命名为ntopng.conf,然后在这个配置文件中添加一些配置信息,例如:
    cat /etc/ntopng/ntopng.conf
    [root@localhost ~]# cat /etc/ntopng/ntopng.conf
    -G=/var/tmp/ntopng.gid
    –local-networks “127.0.0.1/32”
    –interface eth0
    –user nobody
    –http-port 3000
    相关参数含义如下:
    -G指定存储Ntopng进程号的文件路径。
    –local-network指定要监控的本地子网段。
    –interface eth0 指定监听em2网卡上的流量。
    –user指定运行Ntopng服务所使用的账户。
    –http-port指定Ntopng的Web服务端口号,如果不指定,默认端口为3000。
    4.启动Ntopng服务
    在启动Ntopng服务之前,需要先启动redis服务。redis的功能之前介绍过,主要为Ntopng提供键值存储。下面首先启动redis服务,然后启动Ntopng服务,执行操作如下:
    service redis  start
    service ntopng start

    为了保证redis和Ntopng服务在以后可开机自启动,还需要执行如下操作:

    chkconfig ntopng on
    chkconfig redis on
    最后,就可以通过Web方式(http://IP:3000)来访问Ntopng提供的服务了,默认登录用户名和密码均为admin,可在登录后进行修改。

    第二部分,很遗憾,按照上面的安装方式,在我的所有机器上都需要使用命令(ethtool -K eth0 tso off gso off tro off)来关闭网卡驱动的gso/tso特性

    并且在部分机器上会出现网卡池错误导致ntop的deamon程序自动退出,所以万一有人遇到以上情况的话,请先将上面安装的程序卸载

    yum remove pfring n2disk nProbe ntopng ntopng-data nbox -y

    然后我们开始手工编译安装,这个方法在我所有的机器上均测试通过,看来装程序还是要靠自己,不能靠人家的编译包。

    从头说吧在第一部分的安转中有提到要安装yum最新源,这里也不能漏了

    安装最新软件源

    如果你已经安转好了源请跳过这一小节

    Centos 6

    wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
    rpm -Uvh epel-release-6-8.noarch.rpm
    

    Centos 7

    wget https://ftp.fau.de/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
    rpm -Uvh epel-release-7-9.noarch.rpm

     

    然后是安装编译需要的工具包

    sudo yum groupinstall "Development Tools"
    sudo yum install libpcap-devel glib2-devel GeoIP-devel libxml2-devel libcurl-devel redis autoconf automake sqlite-devel

    或者更详细的安装

    sudo yum install subversion autoconf automake autogen libpcap-devel GeoIP-devel hiredis-devel redis glib2-devel libxml2-devel sqlite-devel gcc-c++ libtool wget libcurl-devel pango-devel cairo-devel libpng-devel git

    现在准备开始安装ntop了

    #安装redis

    方法1    yum install redis -y && systemctl enable redis.service && systemctl start redis.service

    方法2   编译安装,简单步骤如下 ,本篇主要讲述ntop安装,关于编译安装redis详细细节请google

    wget http://download.redis.io/releases/redis-3.2.2.tar.gz
    tar xzf redis-3.2.2.tar.gz
    cd redis-3.2.2
    make
    src/redis-server &

    #编译安装nDPI
    git clone https://github.com/ntop/nDPI.git
    cd nDPI
    ./autogen.sh
    make
    cd ..
    #编译安装ntopng
    git clone https://github.com/ntop/ntopng.git
    cd ntopng
    ./autogen.sh
    ./configure
    #如果中途出现MySQL libraries not found **** 错误的话可以执行以下语句
    yum install libodb-mysql-devel.x86_64 mysql++-devel.x86_64 mysql-proxy-devel.x86_64 soci-mysql-devel.x86_64 -y
    #如果执行后还是不行的话可以继续执行以下语句查看还缺哪些,我的sql装好后就是缺以上一些
    yum list \*mysql\* | grep dev #看到缺失的后进行安装即可
    #结束后再次执行
    ./configure                             #配置完成后会提示需要安装ip数据库执行
    /usr/bin/gmake geoip         #安装完毕就可以编译安装ntopng了
    make                                      #开始编译,时间有点长
    make install                          #ntop执行程序被安装在/usr/local/bin这个目录下面,如果没有设置这个path请设置一下path

     

    开始配置ntopng

    mkdir /etc/ntopng/

    cd /etc/ntopng/

    vim ntopng.conf

    -G=/var/tmp/ntopng.gid
    --local-networks=192.168.1.0/24 #这里的IP地址是你自己的vps地址
    --interface=eth0 #网卡是使用ifconfig命令进行查看,一般是eth0,或者eth1,如果存在多个结果选择ip和你在上面写的一样的那个,谷歌云和腾讯云是内网映射,选择内网网卡那个就可以了 
    --http-port=3000

     

    运行ntopng

    ntopng /etc/ntopng/ntopng.conf  &

    使用你的ip进行登录,地址是http://ip:3000/

    显示

    就成功了

    使用SSL在ntop的网站也有,但是他是使用本地自签名ssl,所以浏览器会提示风险,我的解决方式是使用vestacp的apache+nginx模式,服务端nginx将443端口强制转置http的3000端口,而客户端与服务端链接使用443的端口,这样就可以使用服务器的正规签名证书了。

  • Centos 6/7 x86_64 系统开启TCP-BBR拥塞控制

    写在前面,BBR是google研发的一个有效算法,可以对网络TCP传输协议进行优化,减少线路堵塞,达到提高传送效率的一个TCP新的协议算法,安装在vps上可以有效提高网络传输质量。

    具体可以参见来自Google的TCP BBR拥塞控制算法解析 一文

     

    安装最新内核

    CentOS 6

    1. 更换内核

    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
    yum --enablerepo=elrepo-kernel install kernel-ml -y

    2. 查看内核是否安装成功

    rpm -qa | grep kernel

    3. 更新 grub 系统引导文件并重启

    sed -i "s/^default.*/default=0/" /boot/grub/grub.conf
    reboot

    Tips:开不了机的打开vps后台控制面板的vnc, 开机卡在 grub 引导, 只需要手动选择内核就可以了。

    CentOS 7

    1. 更换内核

    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
    yum --enablerepo=elrepo-kernel install kernel-ml -y

    2. 查看内核是否安装成功

    rpm -qa | grep kernel

    正常会如下所示:

    [root@centos-512mb-sfo1-01 ~]# rpm -qa | grep kernel
     kernel-firmware-2.6.32-642.11.1.el6.noarch
     kernel-headers-2.6.32-642.11.1.el6.x86_64
     dracut-kernel-004-409.el6_8.2.noarch
     kernel-2.6.32-642.11.1.el6.x86_64
     kernel-devel-2.6.32-642.11.1.el6.x86_64
     kernel-ml-4.9.0-1.el6.elrepo.x86_64 #这就是我们安装的新内核

    3. 更新 grub 系统引导文件并重启

    grub2-mkconfig -o /boot/grub2/grub.cfg
    ###egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
    grub2-set-default 0 #default 0表示第一个内核设置为默认运行, 选择最新内核就对了
    reboot

    开启TCP-BBR

    1、先查看下内核是否更换为4.9以上版本

    uname -r

    2、生效BBR

    echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
    sysctl -p

    3、检测是否完全生效

    sysctl net.ipv4.tcp_available_congestion_control

    正常情况会如下显示:

    [root@centos-512mb-sfo1-01 ~]# sysctl net.ipv4.tcp_available_congestion_control
    net.ipv4.tcp_available_congestion_control = bbr cubic reno

    接着

    sysctl -n net.ipv4.tcp_congestion_control
    lsmod | grep bbr

    正常情况是这样的:

    [root@centos-512mb-sfo1-01 ~]# sysctl -n net.ipv4.tcp_congestion_control
    bbr
    [root@centos-512mb-sfo1-01 ~]# lsmod | grep bbr
    tcp_bbr 16384 11

    这样我们就已经为我们的VPS部署好了谷歌Google的 TCP-BBR 协议,感受一下飞的感觉吧!以前,用vormach 8刀的凤凰城测试,加了锐速后速度大概在 4 到8M,现在接近 20M 了,但是也有说用了比不用还慢的,各位还是自己多多测试吧。

  • centos初始化一键包 (拿到新的centos 7服务器最先执行的几个命令)

    付完钱,拿到了最新的vps服务器,各位一般先安装什么呢?

    大多数VPS供应商提供的都是最小化的centos系统,连最起码的wget之类程序都没有,还有一部分同学用惯了centos6,执行ifcongfig看下ip都会报错,所以我拿到一台新的vps后首先会执行的是一些常用程序的安装,以及源的更新

    yum install mlocate vim yum-utils net-tools bind-utils iptables-services wget mtr gcc-c++ screen git epel-release -y

    接下来该干些什么呢?当然是系统更新咯

    yum update -y

    更新好之后就是查看SELinux状态:如果启用着,毫无疑问是立马去关闭的,查看是否启用的指令是

    /usr/sbin/sestatus -v

    如果发现是enabled那么有临时与永久两种关闭方式,临时的机器重启就失效

    临时方法

    setenforce 0                  ##设置SELinux 成为permissive模式

    #setenforce 1 设置SELinux 成为enforcing模式

    永久方法需要机器重启的,首先修改config文件

    vim /etc/selinux/config

    将其中将SELINUX=enforcing改为SELINUX=disabled

    然后重启即可。

    接下来当然是设置ssh端口以及将防火墙由firewalld改为iptables(6用惯了,不习惯firewalld的指令,而且iptables可以直接编辑 /etc/sysconfig/iptables 文件,很直观),可以参见文章《centos7防火墙改为iptables

    修改ssh登录端口是很简单的编辑配置文件

    vim /etc/ssh/sshd_config

    将第17行的ssh端口前的#去掉,后面的22改为你需要的数值,比如我改成6666,多6啊

    接着更新firewalld为iptables,这个可以参考本博客另一篇文章 centos7防火墙改为iptables ,这里就略过了

    改好后修改防火墙规则,将ssh端口由22修改为6666

    vim /etc/sysconfig/iptables

    将其中这句中的

    -A INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT

    由22改为6666,保存完毕后重启sshd以及iptables服务

    service sshd restart

    service iptables restart

    这里要注意一下,如果本机原先是启用了SELinux的话,服务重启可能会报错。需要修改SELinux为disabled状态。

    接着使用netstat查看一下状态

        netstat -tulnp
    
        tcp        0      0 0.0.0.0:6666            0.0.0.0:*               LISTEN      9940/sshd
        tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1932/master
        tcp6       0      0 :::6666                 :::*                    LISTEN      9940/sshd
        tcp6       0      0 :::3306                 :::*                    LISTEN      1884/mysqld
        tcp6       0      0 ::1:25                  :::*                    LISTEN      1932/master

    ok,登录接口已经变为6666了。

    个人使用的一键初始化包

    cd /root
    wget https://raw.githubusercontent.com/kevin-cn/some-useful-shell/master/init_centos.sh
    chmod +x init_centos.sh
    ./init_centos.sh

     

     

  • 锐速破解版linux一键自动安装包(8月7日更新)

    破解版锐速linux一键自动安装包在本贴持续更新,大家可以加收藏夹,以后有更新都会在这个文章同步。本破解锐速是是无限带宽版的,破解版锐速的一些代码将逐步开源在github这里。也欢迎大家订阅我的Twitter,实时获得最新信息.91yun的Twitter锐速破解版自动安装过程中有什么问题都可以留言,我尽量解答。(91yun的官方TG群:https://telegram.me/im91yun

    破解版锐速最新更新

    =======2016年8月7日更新===========:

    • 新增了以下支持的内核,欢迎大家测试,有问题及时反馈:
      • CentOS-6.8:2.6.32-642.el7.x86_64
      • CentOS-7.2:3.10.0-327.el7.x86_64
      • CentOS:4.4.0-x86_64-linode63
      • Ubuntu_14.04:4.2.0-35-generic
      • Debian_8:3.16.0-4-amd64

    另外:重要的事情说三遍!!!

    锐速不支持Openvz!!!锐速不支持Openvz!!!锐速不支持Openvz!!!

    你可能需要:

     

    锐速破解版安装方法:

    如果内核完全匹配就会自动下载安装。
    如果没有完全匹配的内核,会在界面提示可选内核,可以手动选个最接近的尝试
    自动下载授权文件
    自动修改配置文件
    已chattr +i /serverspeeder/etc/apx*禁止修改配置文件,可以不用加hosts了
    目前只支持CentOS,ubuntu和debian。如果有其他系统支持,可以到http://www.91yun.org/serverspeeder91yun手动下载其他系统的安装包

     

    =======2016年6月5日更新===========:

    • 把一直被吐槽的release_lsb的安装代码改了下。。
    • 增加了网卡非eth0的错误提示。本破解已经确认无法支持网卡名称非eth0的网卡。请自行修改《CentOS更换网卡名称
    • 改了下锐速的安装脚本
      • 安装过程中原来有要手动输入加速网卡,上下行带宽等都取消了,采用默认的方式安装。如果有需要修改的朋友请安装完后直接修改锐速的配置文件:

        vi /serverspeeder/etc/config

      • 把原来配置文件默认accppp的默认改为0了。避免没有安装ppp服务的机子安装过程中报错。
      • 修复了centos7安装的时候可能不会自动随机启动的问题
      • 已知问题:debian无法随机自动启动,请自行手动把“/serverspeeder/bin/serverSpeeder.sh start”加入rc.local启动

    =======2016年3月24日更新===========:

    • 换了种更简单的方式取mac地址。如果以前能取到,现在取不到请告知我,谢谢。
    • 可以自己填mac地址了。使用方法:bash serverspeeder-all.sh mac地址   就是运行命令后面跟上mac地址的参数。比如:

      bash serverspeeder-all.sh 52:54:00:D3:0F:6C

    另外:重要的事情说三遍!!!

    =======2016年3月16日更新===========

    • 修改了内核匹配机制,在不跨大版本的全部内核里面匹配,提高匹配成功率(比如如果你装的是Centos6.7,但是内核和一个Centos6.4一样,就会安装6.4的内核)。同样内核的情况下,大部分情况是可以通用的。(如果有问题可以联系我再验证)
    • 关于内核不匹配的问题,可以看《教程:CentOS更换内核,提供锐速可用的内核下载
    • 添加了自动启动项。(因为发现有些系统重启不会自动启动)
    • PS:发现有用户如果网卡的名称不是eth0的话安装不了,如果有这种情况,请联系我,我需要类似的情况作些测试。谢谢。
  • CentOS 6.8 升级GCC G++ (当前最新版本为v6.2.0)

    CentOS 6.8 升级GCC G++ (当前最新GCC/G++版本为v6.1.0)

    没有便捷方式,

    yum update….   yum install

    或者 添加yum 的 repo 文件 也不行, 只能更新到 4.4.7!

    then,  只能手动编译安装了,那么开始第一步下载源代码吧,GO!

    1、 获取安装包并解压

    wget http://ftp.gnu.org/gnu/gcc/gcc-6.2.0/gcc-6.2.0.tar.bz2
    
    tar -jxvf gcc-6.2.0.tar.bz2

    当然,http://ftp.gnu.org/gnu/gcc  里面有所有的gcc版本供下载,最新版本已经有6.2.0啦.

    建议下载.bz2的压缩包,文件更小,下载时间更少.

    如果是mini版的centos请安装bzip2

    yum install bzip2

    2、 下载供编译需求的依赖项

    参考文献[1]中说:这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。

    cd gcc-6.1.0
    
    ./contrib/download_prerequisites 

    3、 建立一个目录供编译出的文件存放

    mkdir gcc-build-6.2.0
    
    cd gcc-build-6.2.0

    4、 生成Makefile文件

    ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

    5、 编译

    make -j4

    -j4选项是make对多核处理器的优化,如果不成功请使用 make

    然后是漫长的等待,我的vps用了90分钟才make好。

    6、 安装

    make install

    (安装需要root权限!)

    查看安装

    ls /usr/local/bin | grep gcc

    7、 重启,然后查看gcc版本

    gcc -v

    8、 写个C++11 特性的程序段 测试

    tryCpp11.cc 代码省略….

    g++ -std=c++11 -o tryCpp11 tryCpp11.cc

     

    9、升级gcc,生成的动态库没有替换老版本gcc的动态库

    源码编译升级安装了gcc后,编译程序或运行其它程序时,有时会出现类似/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found的问题。这是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的,将gcc最新版本的动态库替换系统中老版本的动态库即可解决。

    9.1 运行以下命令检查动态库:

    strings /usr/lib64/libstdc++.so.6 | grep GLIBC

    从输出可以看出,gcc的动态库还是旧版本的。说明出现这些问题,是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库。

    9.2 执行以下命令,查找编译gcc时生成的最新动态库:

    find / -name "libstdc++.so*"

    将上面的最新动态库libstdc++.so.6.0.22复制到/usr/lib64目录下

    cd /usr/lib64
    
    cp /root/gcc-6.2.0/gcc-build-6.2.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 .

    9.3 删除原来软连接:

    rm -rf libstdc++.so.6

    9.4 将默认库的软连接指向最新动态库:

    ln -s libstdc++.so.6.0.22 libstdc++.so.6

    9.5 默认动态库升级完成。重新运行以下命令检查动态库:

    strings /usr/lib64/libstdc++.so.6 | grep GLIBC

    可以看到 输出有”GLIBCXX_3.4.22″ 了

    ps:

    如果运行./configure 会报错,错误提示为:

    configure: error: C++ preprocessor “/lib/cpp” fails sanity 
    check See `config.log’ for more details

    解决办法:出现该情况是由于c++编译器的相关package没有安装,以root用户登陆,在终端上执行:

    yum install glibc-headers gcc-c++
  • 一键测试脚本 bench.sh

    经过几个版本的演化,一键测试脚本 bench.sh 已经几乎全面适用于各种 Linux 发行版的网络(下行)和 IO 测试。
    并将测试结果以较为美观的方式显示出来。

    总结一下 bench.sh 特点:
    1、显示当前测试的各种系统信息;
    2、取自世界多处的知名数据中心的测试点,下载测试比较全面;
    3、支持 IPv6 下载测速;
    4、IO 测试三次,并显示平均值。

    再配合 unixbench.sh 脚本测试,即可全面测试 VPS 的性能。

    使用方法:
    命令1:

    wget -qO- bench.sh | bash

    或者

    curl -Lso- bench.sh | bash

    命令2:

    wget -qO- 86.re/bench.sh | bash

    或者

    curl -so- 86.re/bench.sh | bash

    备注:
    bench.sh 既是脚本名,同时又是域名。所以不要怀疑我写错了或者你看错了。

    下载地址:
    https://github.com/teddysun/across/blob/master/bench.sh

    附上本站的测试情况

    bench

     

  • linode更换centos发行版的内核

    问:linode为什么要更换内核?

    答:因为安装锐速需要指定的内核,不然可能无法启动!!!

    下面说下操作步骤:

    1 首先更新一下软件源

    yum update -y

    2 查看安装的内核kernel(非安装必须部分,可跳过)

    uname -a

    3 开始安装最新版内核

    #对于32位的centos安装:
    yum install kernel-PAE.i686
     
    #对于64位centos安装:
    yum install kernel.x86_64

    4 查看安装的内核(非安装必须部分,可跳过)

    rpm -q kernel
    # kernel-2.6.32-642.4.2.el6.x86_64
    

    查看/boot下的的内核文件:

    ll /boot
    total 41084
    -rw-r--r-- 1 root root   108107 Aug 23 20:04 config-2.6.32-642.4.2.el6.x86_64
    drwxr-xr-x 2 root root     4096 Sep 18 13:56 grub
    -rw------- 1 root root 14224632 Sep 18 13:53 initramfs-2.6.32-642.4.2.el6.x86_64.img
    -rw-r--r-- 1 root root   215531 Aug 23 20:04 symvers-2.6.32-642.4.2.el6.x86_64.gz
    -rw-r--r-- 1 root root  2618532 Aug 23 20:04 System.map-2.6.32-642.4.2.el6.x86_64
    -rwxr-xr-x 1 root root  4268880 Aug 23 20:04 vmlinuz-2.6.32-642.4.2.el6.x86_64
    

    5 安装适合锐速的内核版本

    rpm -ivh http://sadsu.com/kernel/kernel-firmware-2.6.32-504.3.3.el6.noarch.rpm
    rpm -ivh http://sadsu.com/kernel/kernel-2.6.32-504.3.3.el6.x86_64.rpm --force

    6 查看安装的内核(非安装必须部分,可跳过)

    # rpm -qa|grep kernel
    kernel-firmware-2.6.32-642.4.2.el6.noarch
    kernel-2.6.32-504.3.3.el6.x86_64
    kernel-headers-2.6.32-642.4.2.el6.x86_64
    dracut-kernel-004-409.el6_8.2.noarch
    kernel-2.6.32-642.4.2.el6.x86_64
    

    也可以用步骤4进行查看

    ll /boot
    total 41084
    -rw-r--r-- 1 root root   106312 Dec 17  2014 config-2.6.32-504.3.3.el6.x86_64
    -rw-r--r-- 1 root root   108107 Aug 23 20:04 config-2.6.32-642.4.2.el6.x86_64
    -rw------- 1 root root 13609155 Sep 18 13:53 initramfs-2.6.32-504.3.3.el6.x86_64.img
    -rw------- 1 root root 14224632 Sep 18 13:53 initramfs-2.6.32-642.4.2.el6.x86_64.img
    -rw-r--r-- 1 root root   200269 Dec 17  2014 symvers-2.6.32-504.3.3.el6.x86_64.gz
    -rw-r--r-- 1 root root   215531 Aug 23 20:04 symvers-2.6.32-642.4.2.el6.x86_64.gz
    -rw-r--r-- 1 root root  2544888 Dec 17  2014 System.map-2.6.32-504.3.3.el6.x86_64
    -rw-r--r-- 1 root root  2618532 Aug 23 20:04 System.map-2.6.32-642.4.2.el6.x86_64
    -rwxr-xr-x 1 root root  4151248 Dec 17  2014 vmlinuz-2.6.32-504.3.3.el6.x86_64
    -rwxr-xr-x 1 root root  4268880 Aug 23 20:04 vmlinuz-2.6.32-642.4.2.el6.x86_64
    

    7  编辑启动文件

    mkdir /boot/grub
    vi /boot/grub/menu.lst

    menu.lst内容如下

    timeout 5
    title CentOS (2.6.32-504.3.3.el6.x86_64)
    root (hd0)
    kernel /boot/vmlinuz-2.6.32-504.3.3.el6.x86_64 root=/dev/sda
    initrd /boot/initramfs-2.6.32-504.3.3.el6.x86_64.img

    其中的挂载点可以用以下命令查看,请选择你机器的正确挂载点,我上面的例子里挂载点是/dev/sda

    # df -kh
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda         24G  2.2G   21G  10% /
    tmpfs          1004M     0 1004M   0% /dev/shm
    

    8 修改linode配置

    点击下图中红圈中的edit按钮

    linode

    选择legacy(grub)后保存,重启服务器即可。

    linode2

    9 重启后确认一下是否成功

    uname -a
    Linux taiwx.com 2.6.32-504.3.3.el6.x86_64 #1 SMP Wed Dec 17 01:55:02 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
    

    现在去安装锐速吧,哈哈。

  • centos7防火墙改为iptables

    iptables

    操作系统环境:CentOS Linux release 7.0 64位
    CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙步骤。

    1、关闭firewall:

    systemctl stop firewalld.service #停止firewall
    systemctl disable firewalld.service #禁止firewall开机启动
    firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

    2、安装配置iptables防火墙

    yum install iptables iptables-service

    配置请参见文章 linux下IPTABLES配置详解

    3、设定iptables开机自启

    systemctl restart iptables.service #最后重启防火墙使配置生效
    systemctl enable iptables.service #设置防火墙开机启动