本文档以 CentOS/RedHat 系统为示例进行部署,麒麟V10 和华为欧拉系统也可参照使用;Debian 系列系统的区别将单独注明。
一、环境准备
- 准备一台 Linux 服务器,最低配置要求:8核、32G内存、40G数据盘(系统盘除外),更多推荐 ,确保
8880
、38880
、38881
端口不被占用 - 使用 root 用户登录服务器
- 如果服务器有数据盘,请在部署前将数据盘挂载到 /data 目录,或在安装时修改数据的默认存储路径为你的数据盘所挂载路径
- 关闭 Firewalld
systemctl stop firewalld && systemctl disable firewalld
5.关闭 SELinux
setenforce 0
sed -i s/"^SELINUX=.*$"/"SELINUX=disabled"/g /etc/selinux/config
6.调整 MaxMapCount
sysctl -w vm.max_map_count=262144
grep -q '^vm.max_map_count' /etc/sysctl.conf && sed -i 's/^vm.max_map_count.*/vm.max_map_count=262144/' /etc/sysctl.conf || echo 'vm.max_map_count=262144' >> /etc/sysctl.conf
7.调整 SysFileNr
sysctl -w fs.file-max=2048000
grep -q '^fs.file-max' /etc/sysctl.conf && sed -i 's/^fs.file-max.*/fs.file-max=2048000/' /etc/sysctl.conf || echo 'fs.file-max=2048000' >> /etc/sysctl.conf
8.调整 IPv4Forward
sysctl -w net.ipv4.ip_forward=1
grep -q '^net.ipv4.ip_forward' /etc/sysctl.conf && sed -i 's/^net.ipv4.ip_forward.*/net.ipv4.ip_forward=1/' /etc/sysctl.conf || echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
嗯,以上这些,可以用脚本来一键操作
#!/bin/bash
# 检查是否为root用户
if [ "$(id -u)" -ne 0 ]; then
echo "错误:请使用 root 用户执行此脚本!"
exit 1
fi
# 1. 关闭Firewalld
echo "正在关闭Firewalld..."
systemctl stop firewalld 2>/dev/null
systemctl disable firewalld 2>/dev/null
# 2. 关闭SELinux
echo "正在关闭SELinux..."
setenforce 0 2>/dev/null
sed -i 's/^SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/config 2>/dev/null
# 3. 调整MaxMapCount
echo "正在调整vm.max_map_count..."
sysctl -w vm.max_map_count=262144
grep -q '^vm.max_map_count' /etc/sysctl.conf && sed -i 's/^vm.max_map_count.*/vm.max_map_count=262144/' /etc/sysctl.conf || echo 'vm.max_map_count=262144' >> /etc/sysctl.conf
# 4. 调整SysFileNr
echo "正在调整fs.file-max..."
sysctl -w fs.file-max=2048000
grep -q '^fs.file-max' /etc/sysctl.conf && sed -i 's/^fs.file-max.*/fs.file-max=2048000/' /etc/sysctl.conf || echo 'fs.file-max=2048000' >> /etc/sysctl.conf
# 5. 调整IPv4Forward
echo "正在启用IPv4转发..."
sysctl -w net.ipv4.ip_forward=1
grep -q '^net.ipv4.ip_forward' /etc/sysctl.conf && sed -i 's/^net.ipv4.ip_forward.*/net.ipv4.ip_forward=1/' /etc/sysctl.conf || echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
# 针对Debian 10+的iptables检查
if grep -q "Debian" /etc/os-release && [ "$(grep -oP 'VERSION_ID="\K[0-9]+' /etc/os-release)" -ge 10 ]; then
echo "检测到Debian 10+系统,正在检查iptables..."
if ! command -v iptables &> /dev/null; then
echo "未找到iptables,正在安装..."
apt-get update -y
apt-get install -y iptables
echo "iptables安装完成!"
else
echo "iptables已安装,版本信息:"
iptables --version
fi
fi
# 应用所有sysctl配置
sysctl -p &>/dev/null
echo -e "\n所有操作已完成!建议重启系统使部分更改生效。"
根据自己需要修改,我这是基于Debian 10+来整的
脚本优化点:
- 智能检测Debian 10+:通过检查
/etc/os-release
判断是否为Debian 10及以上版本 - 按需安装iptables:仅当系统无iptables时才会安装
- 增强兼容性:所有可能报错的操作均添加
2>/dev/null
静默处理 - 明确执行进度:每个步骤添加清晰的echo提示
- 最终sysctl加载:执行
sysctl -p
确保所有配置立即生效
Docker 安装
明道云是基于Docker的,所以还需要安装Docker
个人选择一键执行
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)
执行后,按提示选择即可
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容