快速部署脚本
#!/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地址
临时配置IP地址
sudo ifconfig eth0 192.168.80.10
永久配置IP地址
编辑创建脚本文件
vi ifconfig.sh
以下内容为配置IP地址的脚本文件
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
以下为运行结果
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)
系统版本
查看系统版本
[root@localhost ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@localhost ~]#
查看系统内核
[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. #口令:所有认证令牌更新成功。
使用命令给lenovo设置密码
echo "123456"|passwd --stdin lenovo
配置阿里云YUM源
先将原始的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的配置文件,永久关闭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登录配置
备份一份原始的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
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
隐藏系统登录时所输出的版本状态
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 #清除屏幕输出的状态 更多的优化细节见: