Linux

centos7 双ip策略路由配置方法

服务器配置多网卡多网关时,为了避免时不时的去添加相关回程路由,因此需要配置一下策略路由。

原文地址 blog.csdn.net

服务器系统版本:CentOS Linux release 7.3.1611

1.添加路由表 #

vi /etc/iproute2/rt_tables

...

101     innerRoute
102     globalRoute

2. 添加路由配置脚本 #

ip route flush table globalRoute
ip rule add dev eth1 table globalRoute
if ! ip rule show | grep x.x.x.x ; then
    ip rule add from x.x.x.x table globalRoute
fi
ip route add default via y.y.y.y dev eth1 table globalRoute

ip route flush table innerRoute
ip rule add dev eth2 table innerRoute
if ! ip rule show | grep 172.16.x.x ; then
    ip rule add from 172.16.x.x table innerRoute
fi
ip route add default via 172.16.y.y dev eth2 table innerRoute

上面 x.x.x.x 是配置在网口 eth1 上的 ip,y.y.y.y 是该 ip 的网关,172.16.x.x 是 eth2 的 ip,我这里是内网 ip,172.16.y.y 是 172 网关的网关。

...

centos7 修改内核引导顺序

none

查看内核 #

cat /boot/grub2/grub.cfg |grep menuentry

menuentry 'CentOS Linux (3.10.0-327.36.3.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-80b9b662-0a1d-4e84-b07b-c1bf19e72d97' {
menuentry 'CentOS Linux (3.10.0-327.22.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-80b9b662-0a1d-4e84-b07b-c1bf19e72d97' {
menuentry 'CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-80b9b662-0a1d-4e84-b07b-c1bf19e72d97' {
menuentry 'CentOS Linux (0-rescue-7d26c16f128042a684ea474c9e2c240f) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-7d26c16f128042a684ea474c9e2c240f-advanced-80b9b662-0a1d-4e84-b07b-c1bf19e72d97'

修改默认 #

grub2-set-default "CentOS Linux (3.10.0-327.22.2.el7.x86_64) 7 (Core)"

查看生效 #

grub2-editenv list
saved_entry=CentOS Linux (3.10.0-327.22.2.el7.x86_64) 7 (Core)

Centos7搭建vpn

准备环境 #

首先查看系统是否支持pptpd服务: #

modprobe ppp-compress-18 && echo yes

安装ppp , pptpd,iptables #

yum install -y ppp pptpd iptables
systemctl mask firewalld
systemctl stop firewalld

修改配制 #

vi /etc/pptpd.conf    #找到配制文件中默认的值,去掉注释即可
localip 192.168.0.1   #本机VPN IP
remoteip 192.168.0.234-238,192.168.0.245 客户端可以获取到的ip网段

#修改DNS
vi /etc/ppp/options.pptpd      #末尾添加dns
ms-dns  8.8.8.8
ms-dns  114.114.114.114

#添加vpn账户
vi /etc/ppp/chap-secrets
# client        server  secret                  IP addresses
  user          pptpd   passwd                  *

#开启路由转发
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1 #添加在配制文件的末尾即可
sysctl -p    #运行这个命令会输出上面添加的那一行信息,意思是使内核修改生效

#在防火墙上开启nat转发
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE  #IP和网口根据实际情况修改即可

开启服务 #

service iptables save
systemctl restart iptables
systemctl restart pptpd

Centos多网卡绑定(bonding)

none

内核模块 #

通过modinfo bonding命令查看Linux是否支持bonding

lsmod |grep bonding
#载入bonding模块
modprobe bonding

配置bonding #

# cat /etc/modprobe.d/bond0.conf
alias bond0 bonding
cd /etc/sysconfig/network-scripts/
# grep -v "^#" ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.5.88
NETMASK=255.255.255.0
GATEWAY=192.168.5.1
USERCTL=no
====================================================
BONDING_OPTS="mode=0 miimon=100"
说明:这里使用了BONDING_OPTS选项,则不需要再使用 /etc/modprobe.d/bond0.conf 配置文件对绑定设备进行配置。参数mode=0,指负载均衡模式,详见下文。miimon是用来进行链路监测的,其原理是检测网上的链路状态,一般将miimon值设为100,表示系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路。
====================================================
# grep -v "^#" ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
MASTER=bond0
SLAVE=yes
USERCTL=no
# grep -v "^#" ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
注意:建议不要指定MAC地址
# echo 100 > /sys/class/net/bond0/bonding/miimon
# echo 6 > /sys/class/net/bond0/bonding/mode
Mode of operation : 0 for balance-rr, 1 for active-backup, 2 for balance-xor;
3 for broadcast, 4 for 802.3ad, 5 for balance-tlb, 6 for balance-alb (charp)
重启网络
# /etc/init.d/network restart
检查下
ifconfig
cat /proc/net/bonding/bond0

bonding模式 #

bonding的模式:0-6,即:7种模式

...

centos升级 排除不想升级的软件包

方法一 #

yum --exclude="kernel*" update

方法二 #

cat /etc/yum.conf

[main]
......
exclude=kernel*

修改/etc/yum.conf,在“[main]”的最后加上“exclude=kernel*”即可。

总结 #

方法一为零时的,也就是只在当次有效,而方法二为永久有效。可根据不同情况选择。

...

linux apache mysql php 优化

none

一、准备环境 #

1、安装mysql #

#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.5 -DMYSQL_DATADIR=/usr/local/mysql5.5/data -DSYSCONFDIR=/usr/local/mysql5.5/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=all
#make
#make install

2、安装nginx #

#./configure --prefix=/usr/local/nginx --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid --user=daemon --group=daemon --with-pcre
#make && make install

3、安装php #

#./configure --prefix=/usr/local/php5 --enable-bcmath --with-mysql=/usr/local/mysql5.5 --enable-fpm --with-fpm-user=daemon --with-fpm-group=daemon --with-config-file-path=/usr/local/php5
#make && make install

4、使nginx支持php #

(1)nginx配置 #

location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}

(2)php配置 #

#vim /usr/local/php5/etc/php-fpm.conf
#cd /usr/local/php5/sbin
#./php-fpm -c /usr/local/php5/etc/php-fpm.conf

二、php优化 #

注意:如何添加php功能模块 例:安装mbstring多字节支持功能模块

...

linux bash截取字符串的几种方法

号截取,删除左边字符,保留右边字符 #

var=http://www.aaa.com/123.htm

echo ${var#*//}

其中var是变量名,…

# 号截取,删除左边字符,保留右边字符 #

var=http://www.aaa.com/123.htm
echo ${var#*//}

其中var是变量名,#号是运算符, 号是通配符,//表示从左边开始删除第一个到//处的所有字符即删除http://

...

linux crontab计划任务详解

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令

配置文件 #

cat /etc/crontab
SHELL=/bin/bash    计划任务的默认脚本bash shell
PATH=/sbin:/bin:/usr/sbin:/usr/bin    默认搜索路径
MAILTO=root     当计划任务有标准输出或标准错误输出时,会将结果发邮件给root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly   /etc/ 后面一定是个文件夹,每小时执行
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

注意事项 #

多个计划任务不宜同时进行防止有非法计划任务周和日,月不可同时并存,容易导致计划任务时间混乱

...

linux DHCP简单使用方法

配置

vim /etc/dhcpd.conf

default-lease-time 1296000;
max-lease-time 4000000;
#IP最长失效时间
option subnet-mask 255.255.255.0;
#子网的掩码
option broadcast-address 192.168.0.255;
#网络的广播地址
option routers 192.168.0.254;
#网关的地址
option domain-name-servers 211.151.48.59,211.151.48.47;
#域名解析地址
ddns-update-style ad-hoc;
subnet 192.168.0.0 netmask 255.255.255.0 {
#定义IP池的内容
range 192.168.0.100 192.168.0.240;
#地址范围为 100-240 共140个IP地址。
}
#也可以象下面一样按MAC地址指定IP
#host Jephe {hardware ethernet 00:a0:c9:a6:96:33;fixed-address 192.168.1.12;}

详解 #

parameters(参数) #

ddns-update-style 配置DHCP-DNS互动更新模式 default-lease-time 指定缺省租赁时间的长度,单位是秒 max-

...

linux dns(named)最小配置

none

一、简介 #

相对于存储和大数据领域,CDN是一个相对小的领域,但行行出状元,BIND就是CDN领域的蝉联N届的状元郎。BIND是一款非常常用的DNS开源服务器,全球有90%的DNS用BIND实现。值得一提的是,BIND9.8.1用C语言实现,代码量巨大,其设计实现几乎涵盖了服务器编程的所有细节。

...