Linux安装好系统后优化
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 52113 #端口 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 结果如下
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 |