author:headsen chen 
date: 2018-05-14 15:35:49

1、快速更改国内yum源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup   #<<-备份系统自带yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo <<—国内使用阿里云yum源速度比较快
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum makecache

2、安装必要的软件工具

yum install lrzsz systat tree vim nmap unzip dos2unix nc lsof
yum groupinstall "Development Tools"
yum groupinsll "x software development"

3、清理开机自启动服务

chkconfig|egrep -v "crond|sshd|network|rsyslog|sysstat"|awk '{print "chkconfig",$1,"off"}'|bash <<-关闭服务
chkconfig --list|grep 3:on <<-检查开机启动的服务

4、更改ssh登录配置

Port  #端口
PermitRootLogin no #禁止root登录
PermitEmptyPasswords no #禁止空密码登录
UseDNS no #不适用dns,对远程主机进行反向解析,会减慢ssh连接速度
ListenAddress #监听指定的IP地址

5、将需要的普通用户加入到sudo权限里

[root@model ~]# visudo #等于 vim /etc/sudoers 两者修改的是同一个文件

## Allow root to run any commands anywhere
root ALL=(ALL) ALL
zxin10 ALL=(ALL) ALL

6、解决普通用户命令找不到的问题
普通用户与root环境变量一致

#修改各个用户的

echo "export PATH=$PATH:/usr/sbin/:" >> ~/.bash_profile
source ~/.bash_profile 得生效

7、配置字符集

linux中文显示设置

GBK用2个字节表示一个中文,UTF-8用3个字节表示一个中文

使用secureCRT可以设置编码格式,必须和系统设置的一样
Option--Session Option--Appearance
选项--会话选项--外观-- 字符编码

修改系统:

cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori
echo 'LANG="zh_CN.UTF-8"' >/etc/sysconfig/i18n
source /etc/sysconfig/i18n
echo $LANG

8、同步系统时间
yum -y install ntpdate
which ntpdate    ------> /usr/sbin/ntpdate  #ntpdate命令的全路径输出

加入到定时任务里面去:

echo '#time sync by mmod at 2015-2-1' >>/var/spool/cron/root
echo '*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1' >>/var/spool/cron/root
crontab -l

9、关闭SElinux,iptables,NetworkManager

sed -i 's/SELINUX=enforcing/SELINUX=disabled' /etc/selinux/conf # 直接修改读取内容而不输出到终端
reboot

10、五个企业环境中开机自启动的服务;

sshd:远程连接linux服务器必须开启
rsyslog:日志相关软件
network:网络服务
crond:系统和用户配置的计划任务周期性进行
sysstat:收集系统性能数据,有利于判断系统是否正常

设置开机自启动服务的常见方法
方法一:ntsysv
方法二:setup
方法三:
chkconfig|egrep -v "crond|sshd|network|rsyslog|sysstat"|awk '{print "chkconfig",$1,"off"}'|bash

11、加大服务器文件描述符
#查看limit
[root@model ~]# ulimit -n
1024
#修改配置文件
echo '* - nofile 65535' >/etc/security/limits.conf

#加入开机自启动该命令:
echo "ulimit -HSn 65535" >> /etc/rc.local

echo "fs.file-max = 100000" >>/etc/sysctl.conf 

12、修改内核参数
两种修改内核参数方法:
12.1、使用echo value方式直接追加到文件里如echo "1" >/proc/sys/net/ipv4/tcp_syn_retries,但这种方法设备重启后又会恢复为默认值
12.2、把参数添加到/etc/sysctl.conf中,然后执行sysctl -p使参数生效,永久生效,老男孩推荐参数:
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl =15
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_orphans = 32768
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_wmem = 8192 131072 16777216
net.ipv4.tcp_rmem = 32768 131072 16777216
net.ipv4.tcp_mem = 786432 1048576 1572864
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.ip_conntrack_max = 65536
net.ipv4.netfilter.ip_conntrack_max=65536
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384

sysctl -p

选配部分:
-----------------------------------------------------------------------------------

1、定时清理邮件服务临时目录垃圾文件

•Centos 5
find /var/spool/clientmqueue/ -type f |xargs rm -f
•Centos 6
find /var/spool/postfix/maildrop -type f |xargs rm -f
#df -i 查看磁盘inode的总量、使用量、剩余量

2、锁定关键系统文件,防止被提权篡改
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

使用lsattr 进行查看,chattr -i进行解锁
禁止linux系统被ping

3、为了增加系统的安全性。可以禁止我们的linux系统被ping,可惜修改iptables来设置
echo 'net.ipv4.icmp_echo_ignore_all=1' >> /etc/sysctl.conf
sysctl -p 重载信息并更新启动

如果要恢复:
> /etc/sysctl.conf
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

4、隐藏系统版本还版本号
vim /etc/issue修改文件
>/etc/issue 清空
echo "">/etc/redhat.release

5、升级软件安装漏洞 yum install openssl openssh bash -y

配置实例:

centos7系统安装完成后一些基本的优化

一:主机名和hosts文件
centos7有一个新的修改主机名的命令hostnamectl
# hostnamectl set-hostname --static li.cluster.com
# vim /etc/hosts--最后加上你的IP与主机名的绑定
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.13.250 li.cluster.com li

二:关闭iptables
# systemctl status firewalld.service--查看firewalld服务的状态,active是启动状态,inactive是关闭状态
# systemctl stop firewalld.service--关闭此服务
# systemctl list-unit-files |grep firewalld--查看firewalld是否开机自动启动
firewalld.service enabled

# systemctl disable firewalld.service--类似以前的chkconfig xxx off
# systemctl list-unit-files |grep firewalld
firewalld.service disabled

三:关闭selinux
# sed -i 7s/enforcing/disabled/ /etc/selinux/config--改完后,在后面重启系统生效

四:网络配置
# systemctl stop NetworkManager--停止服务
# systemctl status NetworkManager--查看状态,确认为关闭了
# systemctl disable NetworkManager--设置为开机不自动启动
# vim /etc/sysconfig/network-scripts/ifcfg-enp2s0--网卡名如果不一样,找到对应的文件就行
BOOTPROTO="static"
NAME="enp2s0"
DEVICE="enp2s0"
ONBOOT="yes"
IPADDR=172.16.13.X
NETMASK=255.255.255.0
GATEWAY=172.16.13.254
DNS1=114.114.114.114
# /etc/init.d/network restart--network服务这里默认还是可以使用原来的管理方法
# chkconfig network on

五:yum配置
# cd /etc/yum.repos.d/
# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

配置可选epel源
# wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-10.noarch.rpm--此版本信息会随时间推移而变化
# rpm -ivh epel-release-7-10.noarch.rpm
# yum clean all
# yum makecache fast

六:输入法配置
默认只有拼音中文输入法,需要使用极点五笔输入法,安装过程如下:
# yum install ibus ibus-table-chinese-wubi-jidian
安装完后,需要右上角把用户注销重登录
左上角applications--system tools -- settions -- Region & Language -- +或-你的输入法就可以了
加完之后,使用super+space键进行切换

七:时间同步
# yum install ntp ntpdate--安装ntp时间同步相关软件包
# vim /etc/ntp.conf--确认配置文件里有下列的时间同步源
server 0.rhel.pool.ntp.org iburst
server 1.rhel.pool.ntp.org iburst
server 2.rhel.pool.ntp.org iburst
server 3.rhel.pool.ntp.org iburst
# systemctl enable ntpd--设置开机自动启动ntpd
# systemctl start ntpd--立即启动ntpd服务
# date--确认时间与现在时间一致
# ntpdate 0.rhel.pool.ntp.org--如果还没有同步成功,你可以用此命令手动同步一下

八:有些命令的参数可以自动补全,如果不能补全,则安装下面的命令(可能需要注销一下)
# yum install bash-completion

九:vnc的配置
# vncpasswd --设定vcn连接的密码
Password:
Verify:
# x0vncserver --PasswordFile=/root/.vnc/passwd --AlwaysShared=on --AcceptKeyEvents=off AcceptPointerEvents=off &> /dev/null &

十:桌面锁屏
左上角applications--system tools -- settions -- Privacy 设置是否自动锁屏
手动锁屏
super+l

十一:图形界面快捷键修改
左上角applications--system tools -- settions -- Keyboard -- Shortcuts 去修改自己习惯的快捷键

十二:设置默认启动级别为图形模式(相当于以前的5级别)
# systemctl get-default--查看当前的运行模式
# systemctl set-default graphical.target--设置图形模式为默认模式

ulimit(选项)

选项

-a:显示目前资源限制的设定;
-c <core文件上限>:设定core文件的最大值,单位为区块;
-d <数据节区大小>:程序数据节区的最大值,单位为KB;
-f <文件大小>:shell所能建立的最大文件,单位为区块;
-H:设定资源的硬性限制,也就是管理员所设下的限制;
-m <内存大小>:指定可使用内存的上限,单位为KB;
-n <文件数目>:指定同一时间最多可开启的文件数;
-p <缓冲区大小>:指定管道缓冲区的大小,单位512字节;
-s <堆叠大小>:指定堆叠的上限,单位为KB;
-S:设定资源的弹性限制;
-t <CPU时间>:指定CPU使用时间的上限,单位为秒;
-u <程序数目>:用户最多可开启的程序数目;
-v <虚拟内存大小>:指定可使用的虚拟内存上限,单位为KB。

在我的centos 6.3 32位系统输入 ulimit -a 结果如下

Linux安装好系统后优化-LMLPHP

ulimit -n

问题: Can’t open so many files 对于linux运维的同学们,相信都遇到过这个问题。
在Linux下一切资源皆文件,普通文件是文件,磁盘打印机是文件,socket 当然也是文件。系统默认设置成1024,但是这个数字对于服务器特别是大并发的远远是不够的,所以,我们需要结合实际情况修改成一个更大更合理的值。

修改方法

vim /etc/security/limits.conf

1
2
3
# 确认包含下面的内容:
* soft nofile 65536
* hard nofile 65536

保存,然后重启
注:65536 是我这边的设定值,读者也可以自行设置一个合适的值,* 代表针对所有用户
同时还有个要注意的值 file-max 是设置 系统所有进程一共可以打开的文件数量 ,可以通过如下方法进行修改
echo 100000 > /proc/sys/fs/file-max
或修改 /etc/sysctl.conf, 加入
fs.file-max = 100000 重启生效

另外还有一个,/proc/sys/fs/file-nr,可以看到整个系统目前使用的文件句柄数量

ulimit -u
比如我们在模拟大规模http并发测试的时候,客户端会报一个无法fork new proc异常,原因是受到了最大进程1024的限制
解除 Linux 系统的最大进程数
方法如下
vim /etc/security/limits.d/90-nproc.conf

1
2
3
# 添加如下的行
*          soft    nproc     10240
root       soft    nproc     unlimited
05-19 00:47