1.系统基础优化
1.1关闭SELinux
#临时关闭 setenforce 0 #永久关闭 [root@localhost ~]# vim /etc/sysconfig/selinux SELINUX=enforcing 改为 SELINUX=disabled 需要重启
1.2关闭防火墙firedworld
systemctl stop firewalld systemctl distable firewalld
1.3关闭NetworkManager
systemctl stop NetworkManager systemctl distable NetworkManager
1.4时间设置(定时任务)
crontab -e */5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1
1.5普通用户添加sudo权限
visudo root ALL=(ALL) ALL oldboy ALL=(ALL) NOPASSWD:ALL
1.6hosts文件解析(ip解析主机名)
vim /etc/hosts
1.7调整用户登录提示信息
vim /etc/motd
1.8清空/etc/issue 和/etc/issue.net
>/etc/issue
>/etc/issue.net
2.基础服务优化
2.1ssh配置更改
vi /etc/ssh/ssh_config #修改ssh端口号 Port 22 #禁用DNS反向解析 useDNS = no #~~~~~~~~~~ GSSAPIAuthentication no
2.2修改系统默认的yum源,增加epel源
#修改yum源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #增加epel源
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2.3安装常用软件
软件包名称 | 作用 |
---|---|
vim | vim升级版 |
tree | 以树形显示目录结构 |
wget | 下载工具 |
bash-completion(默认源) | 自动补全增强工具,可以补全命令参数 |
bash-completion-extras(epel) | 自动补全超强工具,可以补全命令参数 |
lrzsz | 上传下载工具sz和rz |
net-tools | ifconfig rote命令的所属包 |
sysstat | sar iostat 属于的软件包 |
iotop | 查询系统每个进程的io读写情况 和swap写入情况 |
iftop | 查询网络流量情况 |
nethogs | 查询每个进程的流量情况 |
htop | top的升级版 |
unzip | 解压 |
nc | nccat类似于telnet |
nmap | 端口扫描工具 |
telnet | 检查端口是否开启 |
bc | 计算器 |
lsof | 显示所有被打开的文件 |
yum install -y tree vim wget bash-completion bash-completion-extras lrzsz net-tools sysstat iotop iftop htop unzip nc nmap telnet bc
2.4文件描述符改到最大
vim /etc/security/limits.conf * - nofile 65535(加到配置文件尾)
2.5修改历史命令环境变量
export TMOUT=300 #timeout linux #不进行任何操作 300s之后自动登出 export HISTFILE=1000 history #命令最多记录几条 export HISTFILESIZE=1000 history #历史记录的文件里面最多记录几条 export HISTCONTROL=ignorespace #控制history 命令如何记录 ,只要以空格开头的命令 history不记录 export PS1=[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\] \[\e[31;1m\]\w\[\e[0m\]]\$ #命令提示符参数
3.内核优化
3.1禁止被ping
echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf sysctl -p
[root@web01 ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:82:a5:bb brd ff:ff:ff:ff:ff:ff inet 10.0.0.41/24 brd 10.0.0.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe82:a5bb/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:82:a5:c5 brd ff:ff:ff:ff:ff:ff inet 172.16.1.41/24 brd 172.16.1.255 scope global eth1 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe82:a5c5/64 scope link valid_lft forever preferred_lft forever [root@web01 ~]# echo ' net.ipv4.icmp_echo_ignore_all=1' >> /etc/sysctl.conf [root@web01 ~]# sysctl -p net.ipv4.icmp_echo_ignore_all = 1 [root@web01 ~]# cat /proc/sys/net/ipv4/icmp_echo_ignore_all 1 [root@web01 ~]# ping 10.0.0.7 PING 10.0.0.7 (10.0.0.7) 56(84) bytes of data. ^C --- 10.0.0.7 ping statistics --- 6 packets transmitted, 0 received, 100% packet loss, time 5000ms [root@web01 ~]# ping 172.16.1.7 PING 172.16.1.7 (172.16.1.7) 56(84) bytes of data. ^C --- 172.16.1.7 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 999ms
3.2内核
开启内核转发功能(内网服务器,上外网的时候需要用到)
echo 'net.ipv4.ip_forward=1 ' >>/etc/sysctl.conf sysctl -p
/proc/sys/net/ipv4/ip_forward
time_wait过多
echo 'net.ipv4.tcp_tw_recycle=1 ' >>/etc/sysctl.conf echo 'net.ipv4.tcp_tw_reuse=1 ' >>/etc/sysctl.conf
/proc/sys/net/ipv4/tcp_tw_recycle #开启tcp回收功能
/proc/sys/net/ipv4/tcp_tw_reuse #开启tcp重复使用功能
java程序 故障 导致大量占用swap 而不占用物理内存
vm.swappiness #控制系统是否优先使用swap 数字越大越优先使用swap 越小越优先使用物理内存