#!/bin/bash #========================================================== #========================================================== #配置IP地址 #------------------------(开始)-------------------------- sudo ifconfig eth0 up #临时启用 rm -f /etc/sysconfig/network-scripts/ifcfg-eth0 #删除eth0配置文件 touch /etc/sysconfig/network-scripts/ifcfg-eth0 #建立eth0配置文件 cat >>/etc/sysconfig/network-scripts/ifcfg-eth0<<kkk DEVICE=eth0 TYPE=Etherne ONBOOT=yes IPADDR=192.168.80.100 #IP NETMASK=255.255.255.0 #子网掩码 GATEWAY=192.168.80.2 #网关 DNS1=114.114.114.114 DNS2=8.8.8.8 kkk service network restart #重启网络服务 #------------------------(结束)-------------------------- #========================================================== #========================================================== #配置阿里云YUM源 #------------------------(开始)-------------------------- mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak #先将原始的CentOS-Base.repo文件保存下载更更改其名称 wget -O /etc/yum.repos.d/CentOS-Base.repo http://7xqer8.com1.z0.glb.clouddn.com/Centos-6.repo # 下面开始下载阿里云的YUM源,编辑并建立CentOS-Base.repo文件 yum clean all #先清除YUM的缓存 yum makecache #更新YUM的缓存文件 #------------------------(结束)-------------------------- #========================================================== #========================================================== #关闭不须要的开机启动服务 #------------------------(开始)-------------------------- for service in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $service off;done #关闭全部开机自动启动的默认系统服务 for service in crond network rsyslog sshd;do chkconfig --level 3 $service on;done #开启指定的开机自动启动的默认系统服务 #------------------------(结束)-------------------------- #========================================================== #========================================================== #优化ssd设置 #------------------------(开始)-------------------------- sed -i 's%#PermitEmptyPasswords no%PermitEmptyPasswords no%' /etc/ssh/sshd_config #禁止远程登陆使用空密码登陆 sed -i 's%#UseDNS yes%UseDNS no%' /etc/ssh/sshd_config #使用DNS登陆 参数为no则是不使用 /etc/init.d/sshd reload #重启sshd服务 #------------------------(结束)--------------------------
临时配置IP地址linux
sudo ifconfig eth0 192.168.80.10
永久配置IP地址nginx
编辑建立脚本文件git
vi ifconfig.sh
如下内容为配置IP地址的脚本文件web
rm -f /etc/sysconfig/network-scripts/ifcfg-eth0
#删除eth0配置文件
touch /etc/sysconfig/network-scripts/ifcfg-eth0 #建立eth0配置文件 cat >>/etc/sysconfig/network-scripts/ifcfg-eth0<<kkk DEVICE=eth0 TYPE=Etherne ONBOOT=yes IPADDR=192.168.80.100 #IP NETMASK=255.255.255.0 #子网掩码 GATEWAY=192.168.80.2 #网关 DNS1=114.114.114.114 DNS2=8.8.8.8 kkk service network restart #重启网络服务
如今开始运行脚本面试
sh ifconfig.sh
如下为运行结果apache
Shutting down interface eth0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: [ OK ] [root@localhost ~]# ifconfig -a eth0 Link encap:Ethernet HWaddr 00:0C:29:DC:E5:57 inet addr:192.168.80.10 Bcast:192.168.80.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:581 errors:0 dropped:0 overruns:0 frame:0 TX packets:507 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:56471 (55.1 KiB) TX bytes:67799 (66.2 KiB)
查看系统版本vim
[root@localhost ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@localhost ~]#
查看系统内核centos
[root@localhost ~]# uname -r 2.6.32-504.el6.x86_64
查看系统位数数组
[root@localhost ~]# uname -m
x86_64
不要使用root帐户登陆,咱们须要建立一个普通用户,使用这个用户远程登陆系统而后在切换到root用户进行操做,同时禁止root帐户远程登陆,这样可使系统的安全性增长缓存
查看当前用户
[root@localhost ~]# whoami
root
建立用户
[root@localhost ~]# useradd lenovo #建立一个用户 [root@localhost ~]# id lenovo #查看建立的用户 uid=500(lenovo) gid=500(lenovo) groups=500(lenovo)
设置用户密码
方法1:方法2:
[root@localhost ~]# passwd lenovo 设置lenovo用户的密码 Changing password for user lenovo. New password: Retype new password: passwd: all authentication tokens updated successfully. #口令:全部认证令牌更新成功。
先将原始的CentOS-Base.repo文件保存下载更更改其名称
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
下面开始下载阿里云的YUM源,编辑并建立CentOS-Base.repo文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://7xqer8.com1.z0.glb.clouddn.com/Centos-6.repo
先清除YUM的缓存
yum clean all Loaded plugins: fastestmirror, security
Cleaning up Everything
更新YUM的缓存文件
yum makecache
如下为更新YUM文件缓存成功的提示信息
base | 3.7 kB 00:00 base/group_gz | 219 kB 00:00 base/filelists_db | 6.3 MB 00:25 base/primary_db | 4.6 MB 00:10 base/other_db | 2.8 MB 00:07 extras | 3.4 kB 00:00 extras/filelists_db | 37 kB 00:00 extras/prestodelta | 703 B 00:00 extras/primary_db | 34 kB 00:00 extras/other_db | 48 kB 00:00 updates | 3.4 kB 00:00 updates/filelists_db | 2.7 MB 00:09 updates/prestodelta | 324 kB 00:00 updates/primary_db | 3.3 MB 00:07 updates/other_db | 39 MB 01:35 Metadata Cache Created [root@localhost yum.repos.d]# yum repolist Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com repo id repo name status base CentOS-6 - Base - mirrors.aliyun.com 6,575 extras CentOS-6 - Extras - mirrors.aliyun.com 50 updates CentOS-6 - Updates - mirrors.aliyun.com 1,047 repolist: 7,672
查看系统必备的四个YUM包组
[root@localhost ~]# yum grouplist
Installed Groups:
Base Compatibility libraries Debugging Tools Development tools
如今升级系统经常使用的软件包(推荐)(升级全部包,不改变软件设置和系统设置,系统版本升级,内核不改变)
yum -y upgrade
升级全部包,改变软件设置和系统设置,系统版本内核都升级
yum -y update
最后的显示信息
xz.x86_64 0:4.999.9-0.5.beta.20091007git.el6 xz-libs.x86_64 0:4.999.9-0.5.beta.20091007git.el6 xz-lzma-compat.x86_64 0:4.999.9-0.5.beta.20091007git.el6 yum.noarch 0:3.2.29-69.el6.centos yum-plugin-fastestmirror.noarch 0:1.1.30-30.el6 yum-plugin-security.noarch 0:1.1.30-30.el6 yum-utils.noarch 0:1.1.30-30.el6 zip.x86_64 0:3.0-1.el6_7.1 Complete!
查看所安装的包组
yum grouplist
安装包组
yum groupinstall "包组名称"
yum -y install lrzsz sysstat wget
lrzsz #上传下载命令的软件包(rz)
sysstat #系统的调优工具
wget #下载文件的工具
检查软件是否安装完成
[root@localhost ~]# rpm -qa lrzsz sysstat wget sysstat-9.0.4-27.el6.x86_64 wget-1.12-5.el6_6.1.x86_64 lrzsz-0.12.20-27.1.el6.x86_64
for service in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $service off;done #关闭全部开机自动启动的默认系统服务 for service in crond network rsyslog sshd;do chkconfig --level 3 $service on;done #开启指定的开机自动启动的默认系统服务
检查开启启动服务是否已经优化
[root@localhost ~]# chkconfig --list|grep 3:on crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off #定时任务服务 network 0:off 1:off 2:on 3:on 4:on 5:on 6:off #网络服务 rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off #系统日志记录服软件务 sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off #远程链接服务
固然咱们也可使用图形化的方式关闭开机启动服务
ntsysv
编辑selinux的配置文件,永久关闭selinux
vi /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled
重启生效
为了避免重启,咱们能够临时关闭selinux
setenforce 0
查看当前SElinux状态
[root@localhost ~]# getenforce
Permissive #表示关闭状态
固然咱们也可使用sed命令快速的对selinux进行设置
sed -i "s#SELINUX=enforcing#SELINUX=disabled#" /etc/selinux/config setenforce 0
Linux系统有7个运行级别(runlevel)
运行级别0:系统停机状态,系统默认运行级别不能设为0,不然不能正常启动
运行级别1:单用户工做状态,root权限,用于系统维护,禁止远程登录
运行级别2:多用户状态(没有NFS)
运行级别3:彻底的多用户状态(有NFS),登录后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登录后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,不然不能正常启动
经常使用级别 3 开机进入命令行
经常使用级别 5 开机进入桌面
设置默认加载的运行级别
[root@localhost ~]# vi /etc/inittab # Default runlevel. The runlevels used are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:3:initdefault:
备份一份原始的ssh配置文件
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
####sshd-youhua################################ #Port 22 #默认端口参数 #PermitRootLogin yes #root用户黑客都知道 禁止他远程登陆 设置为no #PermitEmptyPasswords no #禁止空密码登陆 #UseDNS yes #使用DNS登陆 参数为no则是不使用 ####sshd-youhua################################
脚本快速设置:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak #将原始的配置文件保存一份,防止配置文件修改错误 sed -i 's%#Port 22%Port50000%' /etc/ssh/sshd_config #修改默认端口参数 sed -i 's%#PermitRootLogin yes%PermitRootLogin no%' /etc/ssh/sshd_config #root用户黑客都知道 禁止他远程登陆 设置为no #sed -i 's%#PermitEmptyPasswords no%PermitEmptyPasswords no%' /etc/ssh/sshd_config #禁止空密码登陆 sed -i 's%#UseDNS yes%UseDNS no%' /etc/ssh/sshd_config #使用DNS登陆 参数为no则是不使用 /etc/init.d/sshd reload
查看端口:
[root@localhost ~]# netstat -lntup | grep ssh tcp 0 0 0.0.0.0:50000 0.0.0.0:* LISTEN 1995/sshd tcp 0 0 :::50000 :::* LISTEN 1995/sshd
经过端口查服务
[root@localhost ~]# lsof -i :50000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1936 root 3r IPv4 15224 0t0 TCP 192.168.80.200:50000->192.168.80.1:51399 (ESTABLISHED) sshd 1940 lenovo 3u IPv4 15224 0t0 TCP 192.168.80.200:50000->192.168.80.1:51399 (ESTABLISHED) sshd 1995 root 3u IPv4 15470 0t0 TCP *:50000 (LISTEN) sshd 1995 root 4u IPv6 15472 0t0 TCP *:50000 (LISTEN)
提示:若是系统提示没有lsof这个命令的话请使用yum -y install lsof 安装这个命令
设置中国时区使用亚洲/上海(+8)
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
安装时间工具
yum -y install ntpdate
手动同步时间 Centos5.0 /sbin/ntpdate time.nist.gov Centos6.0 /usr/sbin/ntpdate time.nist.gov date 查看当前时间
设置系统每5分钟更新一个时间 Centos5.0 echo '*/5**** /sbin/ntpdate time.nist.gov >/dev/null 2>&1' >>/var/spoll/cron/root Centos6.0 echo '*/5**** /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1' >>/var/spoll/cron/root
ulimit -n 查看文件描述符的数量(默认为1024)
[root@localhost sbin]# ulimit -n 1024
备份原始配置文件
cp /etc/security/limits.conf /etc/security/limits.conf.bak 备份原始配置文件
修改文件描述符为65535
[root@localhost sbin]# echo '* - nofile 65535' >>/etc/security/limits.conf
检查修改
[root@localhost sbin]# ulimit -n 1024 [root@localhost sbin]# echo '* - nofile 65535' >>/etc/security/limits.conf [root@localhost sbin]# tail -l /etc/security/limits.conf #* soft core 0 #* hard rss 10000 #@student hard nproc 20 #@faculty soft nproc 20 #@faculty hard nproc 50 #ftp hard nproc 0 #@student - maxlogins 4 # End of file * - nofile 65535
文件描述符修改完成
[root@localhost ~]# ulimit -n 65535
说明:本优化适合apache nginx squid多种web应用的运用,特殊业务需作调整
优化参数:
vi /etc/sysctl.conf net.ipv4.tcp_fin_timeout=2 net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_tw_recycle=1 net.ipv4.tcp_syncookies=1 net.ipv4.tcp_keepalive_time=600 net.ipv4.tcp_max_syn_backlog=16384 net.ipv4.ip_local_port_range=4000 65000 net.ipv4.tcp_max_tw_buckets=36000 net.ipv4.route.gc_timeout=100 net.ipv4.tcp_syn_retries=1 net.ipv4.tcp_synack_retries=1 net.core.somaxconn=16384 net.core.netdev_max_backlog=16384 net.ipv4.tcp_max_orphans=16384 #如下参数是对iptables防火墙的优化,防火墙不开会提示,能够忽略不理 net.ipv4.ip_conntrack_max=25000000 net.ipv4.netfilter.ip_conntrack_max=25000000 net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180 net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60 net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120
参数生效命令
sysctl -p
cat /etc/issue
> /etc/issue #清除屏幕输出的状态
cat /etc/redhat-release #查看系统版本 uname -r #查看系统内核 uname -m #查看系统为多少位的操做系统 1 不要使用root用户登陆,建立普通用户 whoami #查看当前用户 useradd lenovo #建立用户 id lenovo #查看建立的用户 passwd lenovo #设置用户密码(1) echo "123456"|passwd --stdin lenovo #使用命令给lenovo设置密码 su - lenovo #切换用户命令,必定要加- 目的是把环境变量调过去 groupadd 快速脚本: useradd lenovo #建立普通用户lenovo echo "123456"|passwd --stdin lenovo #给lenovo用户设置密码 2 配置公网YUM源(将系统中默认的国外的YUM源修改成国内的YUM源) 将Centos的yum源更换为国内的阿里云源 阿里云Linux安装软件镜像源 阿里云是最近新出的一个镜像源。得益与阿里云的高速发展,这么大的需求,确定会推出本身的镜像源。 阿里云Linux安装镜像源地址:http://mirrors.aliyun.com/ CentOS系统更换软件安装源 第一步:备份你的原镜像文件,以避免出错后能够恢复。 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup mv rhel-source.repo rhel-source.repo.backup.1 第二步:下载新的CentOS-Base.repo 到/etc/yum.repos.d/ CentOS 5 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo CentOS 6 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 第三步:运行yum makecache生成缓存 yum clean all yum makecache cd /etc/yum.repos.d/ #YUM源文件的存放位置 mv rhel-source.repo rhel-source.repo.bak #修改原始YUM源文件名称。 rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* #导入key yum upgrade #将系统更新到最新(至关于打补丁的功能) 结论: yum -y update 升级全部包,改变软件设置和系统设置,系统版本内核都升级 yum -y upgrade 升级全部包,不改变软件设置和系统设置,系统版本升级,内核不改变 3 安装必要的软件包 lrzsz #上传下载命令的软件包(rz) sysstat #系统的调优工具 yum -y install lrzsz sysstat rpm -qa lrzsz sysstat #检查软件是否安装 4 LANG=en #将字符集改为英文 yum grouplist #查看所安装的包组 yum groupinstall "包组名称" #安装包组 5 关闭SELinux vi /etc/selinux/config selinux=disabled #禁用 sed -i "s#SELINUX=enforcing#SELINUX=disabled#" /etc/selinux/config 重启生效 getenforce #查看当前SElinux状态 setenforce 0 #禁用selinux 不须要重启就能生效 6 runlevel #查看系统运行级别 经常使用级别 3 开机进入命令行 经常使用级别 5 开机进入桌面 vi /etc/inittab id:3:initdefault: #设置默认加载的运行级别 7 精简开机系统启动服务 交互式设置命令:setup LANG=en #将字符集更改成英文状态 ntsysv #图形化管理开机启动服务 刚刚安装的操做系统只须要保留四个服务开机自动启动 crond #定时任务服务 network #网络服务 sshd #远程链接服务 syslog #系统的日志记录软件服务 chkconfig --list|grep 3:on|cut -d " " -f1 使用脚本快速关闭开机服务,保留四个服务 LANG=en for service in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $service off;done #关闭全部系统中开机服务运行级别为3的系统服务 for service in crond network syslog sshd;do chkconfig --level 3 $service on;done #开启指定的系统服务 chkconfig --list|grep 3:on #查看全部系统级别为3的开机启动服务 8 更改ssh登陆配置 cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak #备份一份原始的ssh配置文件 vi /etc/ssh/sshd_config ####sshd-youhua################################ #Port 22 #默认端口参数 #PermitRootLogin yes #root用户黑客都知道 禁止他远程登陆 设置为no #PermitEmptyPasswords no #禁止空密码登陆 #UseDNS yes #使用DNS登陆 参数为no则是不使用 ####sshd-youhua################################ 重启服务生效 service sshd restart 临时关闭防火墙进行链接 service iptables stop vimdiff 检查两个文件的区别 脚本快速设置: echo "#sshConfig 修改ssh默认登陆端口,禁止root登陆#" cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak #将原始的配置文件保存一份,防止配置文件修改错误 sed -i 's%#Port 22%Port 50000%' /etc/ssh/sshd_config #修改默认端口参数 sed -i 's%#PermitRootLogin yes%PermitRootLogin no%' /etc/ssh/sshd_config #root用户黑客都知道 禁止他远程登陆 设置为no sed -i 's%#UseDNS yes%UseDNS no%' /etc/ssh/sshd_config #使用DNS登陆 参数为no则是不使用 /etc/init.d/sshd restart #sed -i 's%#PermitEmptyPasswords no%PermitEmptyPasswords no%' /etc/ssh/sshd_config #禁止空密码登陆 查看端口: netstat -lntup | grep ssh 经过端口查服务 lsof -i :22 9 sudo权限管理 visudo或者vi /etc/sudoers(首选visudo) 备份原始的配置文件 cp /etc/sudoers /etc/sudoers.bak sudo配置文件修改完成之后保存自动生效 root ALL=(ALL) ALL 用户 受权机器=(受权那个角色的权利,若是为空则拥有root权限) 所管理的权限 %用户组 受权机器=(受权那个角色的权利,若是为空则拥有root权限) 所管理的权限 #若是受权的是用户组 必定要在前面加上%号 lenovo ALL=(ALL) /usr/sbin/useradd /usr/sbin/userdel #受权用户具备建立删除用户的权限 lenovo ALL=(ALL) ALL #受权lenovo的权限至关于root权限 lenovo ALL=(ALL) NOPASSWORD:ALL #受权lenovo的权限至关于root权限 切换到root不须要密码 sudo su - 能够切换到root(su - 角色切换的过程,不安全,能够修改root密码) sudo -l 查询用户当前权限 使用wq! 强制保存 从新登陆用户生效 普通用户若是想使用root权限才能作的事情,必须在命令的前面加上sudo命令 使用 sudo /usr/sbin/useradd kkk 命令执行添加用户 ALL=/usr/sbin/useradd #只容许添加用户 ALL=/usr/sbin/userdel #删除用户 which useradd #查看命令所在路径 普通用户与root用户环境变量的差异 (1)5.0系统没法使用ifconfig命令(6.0能够) (2)6.0普通用户与root用户环境变量的差异 就是用户自己目录的差异 /root /home/lenovo (3)5.0 区别 普通用户解决PATH变量路径问题 vi .bash_profile PATH=$PATH:$HOME/bin:/sbin . .bash_profile #PATH路径生效方法1 source .bash_profile #PATH路径生效方法2 如何寻找命令的全路径 which useradd 10 优化调整适合的字符集设置 临时设置: LANG="ZH_CN.GB18030" 经常使用中文字符集 永久设置: cat /etc/sysconfig/i18n #查看当前系统字符集 cp /etc/sysconfig/i18n /etc/sysconfig/i18n.bak #先备份原始配置文件 echo 'LANG="ZH_CN.GB18030"' >/etc/sysconfig/i18n #覆盖英文字符集 cat /etc/sysconfig/i18n source /etc/sysconfig/i18n #让配置生效 echo $LANG #若是显示的是你所设置的,那么就表示已经生效 11 5和6的区别 CentOS6 至少1G内存 默认网站时不启动的 YUM源有5,6数字字样的区别 DNS客户端配置的区别 12 服务器的时间同步 which ntpdate ntpdatel路径/usr/sbin/ntpdate 手动同步 在设置中国时区使用亚洲/上海(+8) cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 手动同步时间 Centos5.0 /sbin/ntpdate time.nist.gov Centos6.0 /usr/sbin/ntpdate time.nist.gov date 查看当前时间 自动同步 设置系统每5分钟更新一个时间 Centos5.0 echo '*/5**** /sbin/ntpdate time.nist.gov >/dev/null 2>&1' >>/var/spoll/cron/root Centos6.0 echo '*/5**** /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1' >>/var/spoll/cron/root 13 加大文件描述符 ulimit -n 查看文件描述符的数量(默认为1024) cp /etc/security/limits.conf /etc/security/limits.conf.bak 备份原始配置文件 echo '* - nofile 65535' >>/etc/security/limits.conf 修改文件描述符为65535 tail -l /etc/security/limits.conf 检查修改 从新登陆用户配置生效 方法2: 提示:也有人把ulimit -SHn 65535 命令加入到/etc/rc/local,而后每次重启生效 cat >>/etc/rc/local<<EOF #open files ulimit -HSn 65535 #stack size ulimit -s 65535 EOF 14 Linux服务器的内核参数优化 说明:本优化适合apache nginx squid多种web应用的运用,特殊业务需作调整 优化参数: vi /etc/sysctl.conf net.ipv4.tcp_fin_timeout=2 net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_tw_recycle=1 net.ipv4.tcp_syncookies=1 net.ipv4.tcp_keepalive_time=600 net.ipv4.tcp_max_syn_backlog=16384 net.ipv4.ip_local_port_range=4000 65000 net.ipv4.tcp_max_tw_buckets=36000 net.ipv4.route.gc_timeout=100 net.ipv4.tcp_syn_retries=1 net.ipv4.tcp_synack_retries=1 net.core.somaxconn=16384 net.core.netdev_max_backlog=16384 net.ipv4.tcp_max_orphans=16384 #如下参数是对iptables防火墙的优化,防火墙不开会提示,能够忽略不理 net.ipv4.ip_conntrack_max=25000000 net.ipv4.netfilter.ip_conntrack_max=25000000 net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180 net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60 net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120 参数生效命令:sysctl -p linux TIME_WAIT过多的解决方法 查看TCP状态:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 查看SOCKET状态:cat /proc/net/sockstat TIME_WAIT状态的socket通常须要等到2msl时间后,socket才会被回收。 修改(添加)系统内核参数:/etc/sysctl.conf #改系統默认的TIMEOUT时间 net.ipv4.tcp_fin_timeout=2 #启重用,容许将TIME-WAIT sockets从新用于新的TCP链接 默认为0表示关闭 net.ipv4.tcp_tw_reuse=1 #开启TCP链接中TIME-WAIT sockets的快速回收 默认为0 表示关闭 net.ipv4.tcp_tw_recycle=1 使新增参数生效:sysctl -p 本系列博文完整内容共5篇: 第一篇:详解linux netstat输出的网络链接状态信息 http://oldboy.blog.51cto.com/2561410/1184139 第二篇:庖丁解牛获取链接状态数的awk数组命令 http://oldboy.blog.51cto.com/blog/2561410/1184165 第三篇:awk数组命令经典生产实战应用拓展 http://oldboy.blog.51cto.com/blog/2561410/1184177 第四篇:老男孩培训第八节课前awk考试题案例(门户面试题解答) http://oldboy.blog.51cto.com/2561410/1184206 第五篇:linux生产服务器有关网络状态的优化措施(告一段落) http://oldboy.blog.51cto.com/2561410/1184228 15 定时清理clientmqueue(邮件)目录垃圾文件防止占满磁盘空间 提示:5.8默认有sendmail 6.4默认没有 clientmqueue,sendmail邮件服务临时存放位置 安装sendmail yum -y install sendmail 文件路径:/var/spool/clientmqueue 手动清理方法: find /var/spool/clientmqueue/ -type f |xargs rm -f 定时清理方法: mkdir -p /server/scripts #建立一个存放脚本的文件夹 vi /server/scripts/del #建立一个脚本文件 find /var/spool/clientmqueue/ -type f |xargs rm -f 咱们在定时任务里面进行处理 crontab -e #del file by liwenxuan 00 00 * * 6 /bin/sh /server/scripts/del.sh >/dev/null 2>&1 #设置定时任务每周六零点对文件进行清理 16 锁定关键文件防止黑客修改文件 chattr +i /etc/passwd 锁定文件 chattr -i /etc/passwd 解锁文件 chattr +i /etc/inittab chattr +i /etc/group chattr +i /etc/shadow chattr +i /etc/gshadow 处理以上内容后把chattr更名,这样就安全多啦。 which chattr mv /usr/bin/chattr /usr/bin/oldboy lsattr /etc/passwd #查看锁定文件的状态 17 隐藏系统登陆时所输出的版本状态 cat /etc/issue > /etc/issue #清除屏幕输出的状态 更多的优化细节见: