Cent OS
镜像版本:CentOS-7.9_x86_64.iso
配置yum源(阿里云)
# centos 6
curl -o /etc/yum.repos.d/CentOS-Base.repo <https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo>
curl -o /etc/yum.repos.d/epel.repo <http://mirrors.aliyun.com/repo/epel-6.repo>
sed -i 's|http://mirrors.aliyun.com/centos|https://mirrors.aliyun.com/centos-vault/centos|g' /etc/yum.repos.d/CentOS-Base.repo
sed -i 's|http://mirrors.aliyun.com/epel|http://archives.fedoraproject.org/pub/archive/epel|gp' /etc/yum.repos.d/epel.repo
# centos 7
curl -o /etc/yum.repos.d/CentOS-Base.repo <https://mirrors.aliyun.com/repo/Centos-7.repo>
curl -o /etc/yum.repos.d/epel.repo <https://mirrors.aliyun.com/repo/epel-7.repo>
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
# 更新所有软件
yum -y update
# 清除所有缓存并建立源数据
yum clean all && yum makecache
# tips
# centos 6的虚拟机在克隆后,需要将网卡配置文件中的UUID和H删除,然后清空70-persistent-net.rules文件,然后重启
echo > /etc/udev/rules.d/70-persistent-net.rules
# 安装常用工具
yum -y install bash-completion net-tools yum-utils vim vim-enhanced less tree nmap lrzsz nc lsof wget telnet tcpdump htop iftop iotop sysstat nethogs psmisc dstat ntpdate ntp httpd-tools bind-utils traceroute nload logrotate git ntpa p7zip p7zip-plugins
# 工具介绍
translate-shell:一个命令行下的翻译工具
· 使用方法:trans -b :zh-CN xxx
· -b:简洁输出
· :zh-CN:中文的语言代码
· trans -T:可以查找支持的翻译语种和相应的语言代码
tree:tree以树形结构显示文件和目录
· -L:指定显示几层目录
nmap:nmap扫描端口的工具
lrzsz:包含上传(rz)下载(sz)文件工具
nc:端口扫描
lsof:显示Linux系统进程打开的所有文件列表
· lsof -p $pid
wget:下载软件包工具
tcpdump:抓包、监听等工具
· tcpdump -i eth1
htop:系统进程相关信息查看工具
iftop:查看主机网卡带宽工具
iotop:磁盘io
sysstat:含有sar,iostat等重要系统性能查看工具
nethogs:显示进程的网络流量
psmisc:含有killall、pstree等命令
net-tools:含有netstat、ifconfig、route、arp等命令
bash-completion:tab补全功能工具
· 安装完后需在命令行执行bash,TAB补全才能生效
vim-enhanced:vim编辑器工具包
traceroute:路由跟踪工具
nload:监控linux下网络流量
logrotate:日志自动切割
ntp:NTP 时间同步软件
p7zip:7-zip软件
p7zip-plugins:7-zip软件的插件
初始化设置
# 关闭防火墙,生产环境需要开启
# centos 6
service iptables stop # 关闭
chkconfig iptables off # 禁止开机自启动
# centos 7
systemctl disable --now firewalld # 禁止开机自启动
# SELinux
# 临时关闭SELinux
setenforce 0
# 永久关闭SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 调整用户资源限制
vim /etc/security/limits.conf
# * soft nproc 65535:设置用户可以创建的最大进程数量(soft limit),默认值是 1024,将其设置为 65535 表示不限制进程数量。注意,soft limit 是用户可以自行修改的限制,而 hard limit 是系统管理员可以修改的限制。
# * hard nproc 65535:设置用户可以创建的最大进程数量(hard limit),将其设置为 65535 表示不限制进程数量。当进程数量达到 hard limit 时,系统会拒绝创建更多的进程。
# * soft nofile 65535:设置用户可以打开的最大文件描述符数量(soft limit),默认值是 1024,将其设置为 65535 表示不限制文件描述符数量。
# * hard nofile 65535:设置用户可以打开的最大文件描述符数量(hard limit),将其设置为 65535 表示不限制文件描述符数量。当文件描述符数量达到 hard limit 时,系统会拒绝打开更多的文件。
# * soft core unlimited:设置用户可以生成的 core 文件的大小限制(soft limit),将其设置为 unlimited 表示不限制 core 文件大小。
# * hard core unlimited:设置用户可以生成的 core 文件的大小限制(hard limit),将其设置为 unlimited 表示不限制 core 文件大小。
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
* soft core unlimited
* hard core unlimited
# 执行生效
sysctl --system
# 更新系统时间,将硬件时钟设置为UTC时间并将当前系统时间写入硬件时钟
ntpdate -u ntp.ntsc.ac.cn && timedatectl set-timezone Asia/Shanghai && timedatectl set-local-rtc 0 && hwclock --systohc
# 将默认的centos时钟源注释,换成以下时钟源,也可以指定内网时钟源
vim /etc/ntp.conf
server ntp.ntsc.ac.cn iburst
server ntp.sjtu.edu.cn iburst
server ntp.aliyun.com iburst
server cn.pool.ntp.org iburst
server asia.pool.ntp.org iburst
ntp.ntsc.ac.cn:中国国家授时中心提供的 NTP 服务器,是中国官方时间标准之一。
ntp.sjtu.edu.cn:上海交通大学提供的 NTP 服务器。
ntp.aliyun.com:阿里云提供的 NTP 服务器。
cn.pool.ntp.org:中国大陆地区的 NTP 服务器池。由中国的 NTP 爱好者和组织提供。
asia.pool.ntp.org:亚洲地区的 NTP 服务器池。由全球的 NTP 爱好者和组织提供。
# 启动ntpd服务并开机自启
systemctl enable --now ntpd
# 命令提示符
PS1='\\[\\033[0;31m\\]\\342\\224\\214\\342\\224\\200$([[ $? != 0 ]] && echo "[\\[\\033[0;31m\\]\\342\\234\\227\\[\\033[0;37m\\]]\\342\\224\\200")[\\[\\033[0;39m\\]\\u\\[\\033[01;33m\\]@\\[\\033[01;96m\\]\\h\\[\\033[0;31m\\]]\\342\\224\\200[\\[\\033[0;32m\\]\\w\\[\\033[0;31m\\]]\\n\\[\\033[0;31m\\]\\342\\224\\224\\342\\224\\200\\342\\224\\200\\342\\225\\274 \\[\\033[0m\\]\\[\\e[01;33m\\]\\$\\[\\e[0m\\]'
# 历史命令显示时间
# 如果只是写到用户变量中,whoami就没必要添加
HISTTIMEFORMAT="%F %T `whoami` -- "
# 自定义登录提示
vim /etc/motd
-- OR
/etc/motd.d/*
# 设置操作系统语言
# 修改为中文
LANG="zh_CN.UTF-8"
# 修改为英文
LANG="en_US.UTF-8"
# 永久修改
vim /etc/locale.conf
LANG=zh_CN.UTF-8
# 常用别名
vim ~/.bashrc
# 列出文件列表时,让文件名按照大小倒序排列
alias ll='ls -lSh'
# 显示当前目录下的文件和文件夹,包括隐藏文件和详细信息
alias l='ls -alh'
# 使用less时显示行号,连续多个空行合并为一行
alias less='less -Ns'
# 返回上一级目录
alias /='cd /'
# 返回根目录
alias /='cd /'
# 显示当前路径
alias pwd='pwd -P'
# 清空终端
alias clr='clear'
source ~/.bashrc
优化配置项
- 网络
- NetworkManager
- NetworkManager是Centos 7默认的网络管理服务,有些云服务器关闭NetworkManager后会导致无法连接服务器
- 可以和 network 并行运行,系统会优先启动NetworkManager,再启动network
- NetworkManager
- sshd
- 配置文件:
/etc/ssh/sshd_config
- GSSAPIAuthentication:SSH 服务的 GSSAPI 身份验证机制(默认yes),可以更改,减少身份认证的时间和网络带宽消耗
sed -i 's/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/' /etc/ssh/sshd_config
- UseDNS:每次连接之前先检查DNS解析(默认yes),可以更改,加快ssh连接速度
sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config
- Port:修改端口(默认端口为22),一般不用更改
sed -i 's/#Port 22/Port xx/' /etc/ssh/sshd_config
- PremitRootLogin:是否允许root用户直接登录(默认yes),一般不用更改
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
- 配置文件:
Red Hat
镜像版本:rhel-8.6-x86_64.iso
# rhel需要注册系统才能使用官方软件源,可以注册红帽开发者账号(https://access.redhat.com/management)免费激活
# 注册系统
subscription-manager register
# 查看注册信息
subscription-manager list --installed
# 续订
subscription-manager remove --all
subscription-manager unregister
subscription-manager clean
subscription-manager register
subscription-manager refresh
# 安装[epel](<https://docs.fedoraproject.org/en-US/epel/>)源
yum -y install <https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm>
yum clean all && yum makecache
# 安装常用工具
yum -y install bash-completion net-tools yum-utils vim vim-enhanced less tree nmap lrzsz nc lsof wget telnet tcpdump htop iftop iotop sysstat nethogs psmisc dstat httpd-tools bind-utils traceroute nload logrotate git
# 禁止防火墙和web系统管理工具
systemctl disable --now cockpit.socket firewalld
# selinux
# 永久关闭selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 禁用 ipv6
# ipv6.method = disabled
nmcli c modify $网卡名 ipv6.method disabled
# 重载网卡设备
nmcli d reapply $网卡名
# 调整句柄数
vim /etc/security/limits.conf
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
* soft core unlimited
* hard core unlimited
# 减少不必要的I/O写入
# 关闭文件元数据的写入,确保在挂载所有磁盘时使用noatime时间以及挂载所有目录时使用nodir时间,相应磁盘default后追加",noatime,nodiratime",重启系统后生效
# 例:
vim /etc/fstab
/dev/mapper/cl-root / xfs defaults,noatime,nodiratime 0 0
# 修改内核配置文件
# 内核默认参数值(1:启用,0:关闭)
vim /etc/sysctl.conf
fs.file-max = 65535 # 表示最大可以打开的句柄数;
fs.aio-max-nr = 1048576 # 最大并发I/O请求数
net.ipv4.tcp_max_tw_buckets = 6000 # TCP最大的连接数,默认为32768
net.ipv4.tcp_fin_timeout = 10 # 缩短TCP无用状态的超时,更有效的重新利用或销毁,默认为60
net.ipv4.tcp_tw_reuse = 1 # 回收的TCP可重新利用
net.ipv4.tcp_syncookies = 1 # 当出现SYN等待队列溢出时,启用cookies进行处理。
net.ipv4.tcp_keepalive_time = 120 # 连接健康检测,默认7200秒
net.ipv4.tcp_keepalive_intvl = 7 # 连接健康检测间隔,默认75秒
net.ipv4.tcp_keepalive_probes = 3 # 连接健康检测连续成功次数判定,默认9
net.ipv4.tcp_rmem = 32768 131072 16777216 # 接收窗口尺寸的最小,默认,最大值
net.ipv4.tcp_wmem = 8192 262144 16777216 # 发送窗口尺寸的最小,默认,最大值
net.ipv4.tcp_mem = 786432 1048576 1572864 # 发送窗口尺寸的最小,默认,最大值
net.core.somaxconn = 16384 # 监听限制网络最大数据包的数量
net.core.rmem_max = 16777216 # 操作系统接收缓冲区最大值
net.core.wmem_max = 16777216 # 操作系统发送缓冲区最大值
net.core.rmem_default = 262144 # 操作系统接收缓冲区的默认大小
net.core.wmem_default = 262144 # 操作系统发送缓冲区的默认大小
# 重新加载内核配置项和网卡
sysctl -p
systemctl restart NetworkManager
- 命令行
# 命令提示符 PS1='\\[\\033[0;31m\\]\\342\\224\\214\\342\\224\\200$([[ $? != 0 ]] && echo "[\\[\\033[0;31m\\]\\342\\234\\227\\[\\033[0;37m\\]]\\342\\224\\200")[\\[\\033[0;39m\\]\\u\\[\\033[01;33m\\]@\\[\\033[01;96m\\]\\h\\[\\033[0;31m\\]]\\342\\224\\200[\\[\\033[0;32m\\]\\w\\[\\033[0;31m\\]]\\n\\[\\033[0;31m\\]\\342\\224\\224\\342\\224\\200\\342\\224\\200\\342\\225\\274 \\[\\033[0m\\]\\[\\e[01;33m\\]\\$\\[\\e[0m\\]' # 历史命令显示时间 # 如果只是写到用户变量中,whoami就没必要添加 HISTTIMEFORMAT="%F %T `whoami` -- " # 常用别名 vim ~/.bashrc alias ll='ls -lFh' alias less='less -Ns' source ~/.bashrc # 自定义登录提示 vim /etc/motd -- OR /etc/motd.d/* # 设置操作系统语言 # 修改为中文 LANG="zh_CN.UTF-8" # 修改为英文 LANG="en_US.UTF-8" # 永久修改 vim /etc/locale.conf LANG=zh_CN.UTF-8
Ubantu
镜像版本: Ubuntu-22.04_server_64.iso
# Ubantu 阿里镜像站<http://mirrors.aliyun.com/ubuntu>
# root 用户管理
# 修改 root 密码
sudo passwd root
# 允许 root 登录
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
systemctl restart sshd
# 关闭防火墙
systemctl stop ufw && /lib/systemd/systemd-sysv-install disable ufw
# 网卡配置文件,修改完需执行 netplan apply 才能生效
/etc/netplan/00-installer-config.yaml
# 安装常用工具包
apt -y install git net-tools tree nmap lrzsz iftop iftop iotop sysstat traceroute nload nethogs dstat ntpdate
# 更新资源并升级软件
# 更新本地报数据库
apt update
# 更新所有已安装的包
apt upgrade
# 调整句柄数
vim /etc/security/limits.conf
# * 代表所有用户,但是有些linux系统不支持*,所及又指定了root
root soft nproc 65535
root hard nproc 65535
root soft nofile 65535
root hard nofile 65535
root soft core unlimited
root hard core unlimited
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
* soft core unlimited
* hard core unlimited
# 卸载snap
snap list
snap remove --purge xxx
apt remove --autoremove snapd
# 关闭 apt 触发器
vim /etc/apt/preferences.d/nosnap.pref
Package: snapd
Pin: release a=*
Pin-Priority: -10