前言
本篇整理了部分 CentOS 常用优化及设置项,均基于 CentOS 7.9 版本验证,其他版本暂未测试,可能因系统版本不同,命令使用有略微差异,此处仅供参考。
配置 iptables 规则
1. 编辑规则配置文件
通过
vim
工具查看规则配置文件,键入如下代码,然后输入i
进入insert
模式
sh
vim /etc/sysconfig/iptables
2. 添加规则
添加放行规则,以
8080
端口为例,添加如下规则,然后esc
退出insert
模式,输入:wq
保存退出:
sh
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
3. 重启 iptables 服务
sh
systemctl restart iptables.service
更改 yum 源
1. 备份默认源
sh
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
或( 二选一
)
sh
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2. 添加镜像源
替换为国内镜像源,加速软件更新下载速度。
sh
cd /etc/yum.repos.d/
wget http://mirrors.aliyun.com/repo/Centos-7.repo
3. 重建缓存
sh
yum clean all
yum makecache fast
安装常用软件
可根据使用习惯自行选择安装,仅列出常用软件。
bash
yum -y install net-tools tree nmap lrzsz dos2unix telnet screen vim lsof wget gcc curl python ntp rsync htop bash-completion
添加 swap 文件
swap
分区大小可根据需求自行调整,这里配置为4096 M
sh
dd if=/dev/zero of=/swapfile bs=1M count=4096 &>/dev/null
mkswap -f /swapfile &>/dev/null
chmod 600 /swapfile
swapon /swapfile &>/dev/null
echo "/swapfile swap swap default 0 0" >> /etc/fstab
添加 DNS 地址
- 114 DNS:114.114.114.114
- 阿里 DNS:223.5.5.5
sh
cat >> /etc/resolv.conf << EOF
nameserver 114.114.114.114
nameserver 223.5.5.5
EOF
修改时区
sh
timedatectl set-timezone Asia/Shanghai
同步硬件时间
sh
ntpdate cn.pool.ntp.org
hwclock -w
更改系统语言
将
/etc/locale.conf
配置文件中的LANG="en_US.UTF-8"
修改为LANG="zh_CN.UTF-8"
sh
sed -i 's/LANG="en_US.UTF-8"/LANG="zh_CN.UTF-8"/' /etc/locale.conf
source /etc/locale.conf
命令行颜色美化
将模板添加至
.bashrc
文件中,通过source
命令使配置生效。
sh
cat >> .bashrc << EOF
PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "
EOF
source .bashrc
精简开机启动项
1. 查看开机启动服务
sh
chkconfig --list
2. 停止服务
sh
systemctl stop <服务名>.service
3. 删除服务
sh
chkconfig --del <服务名>
4. 删除开机自启
sh
systemctl disable <服务名>
# 或
chkconfig <服务名> off
卸载阿里云盾
提示
如果使用 阿里云 服务器,系统默认会安装阿里云盾,如需卸载可参考如下步骤:
1. 卸载阿里云盾监控
借助官方提供脚本卸载阿里云盾。
sh
wget http://update.aegis.aliyun.com/download/uninstall.sh &>/dev/null && sh uninstall.sh
wget http://update.aegis.aliyun.com/download/quartz_uninstall.sh &>/dev/null && sh quartz_uninstall.sh
pkill aliyun-service
2. 删除目录残留
sh
rm -fr /etc/init.d/agentwatch /usr/sbin/aliyun-service
rm -rf /usr/local/aegis*
rm -f uninstall.sh
rm -f quartz_uninstall.sh
关闭邮件服务
sh
systemctl stop postfix
systemctl disable postfix
修改 sshd 配置
关闭
Last Login
日志打印。
sh
sed -i 's/#PrintMotd yes/PrintMotd no/' /etc/ssh/sshd_config
sed -i 's/#PrintLastLog yes/PrintLastLog no/' /etc/ssh/sshd_config
禁止
root
远程登录
sh
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
加速
ssh
登录,提高安全性。
sh
sed -i 's/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/' /etc/ssh/sshd_config
sed -i 's@PermitEmptyPasswords no@PermitEmptyPasswords no@' /etc/ssh/sshd_config
sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config
重启
sshd
服务使配置生效
sh
systemctl restart sshd.service
关闭 SELinux
修改
/etc/selinux/config
配置文件,将enforcing
更改为disable
sh
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0 &>/dev/null
修改欢迎语
使用
vim
工具编辑/etc/motd
文件,输入i
进入insert
模式,定义好欢迎语,esc
退出insert
模式,:wq
保存退出。
sh
vim /etc/motd
文件描述符
设置文件描述符大小,如果并发量很大,则尽可能大。
sh
echo "ulimit -SHn 102400" >> /etc/rc.local
cat >> /etc/security/limits.conf << EOF
* soft nofile 655350
* hard nofile 655350
EOF
内核参数优化
1. 编辑配置文件
使用
vim
工具编辑etc/sysctl.conf
文件,输入i
进入insert
模式
sh
vim /etc/sysctl.conf
2. 修改内核参数
优化内容参考如下,可根据需求自行调整,
esc
退出insert
模式,:wq
保存退出。
sh
fs.file-max=1000000
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 40960
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_syncookies = 1
# net.ipv4.tcp_tw_len = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.ip_local_port_range = 1024 65000
net.nf_conntrack_max = 6553500
net.netfilter.nf_conntrack_max = 6553500
net.netfilter.nf_conntrack_tcp_timeout_established = 1200
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.ipv4.icmp_echo_ignore_all= 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_orphan_retries = 3
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
3. 重载配置
执行使配置生效
sh
/sbin/sysctl -p