侧边栏壁纸
博主头像
★街角晚灯★博主等级

博观而约取 厚积而薄发

  • 累计撰写 450 篇文章
  • 累计创建 183 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

CentOS新装系统操作步骤

WinJay
2021-12-02 / 0 评论 / 1 点赞 / 249 阅读 / 9899 字 / 正在检测是否收录...
温馨提示:
文章发布较早,内容可能过时,阅读注意甄别。。。。

新装系统操作步骤

更换系统源

采用阿里云的镜像源:https://developer.aliyun.com/mirror/

1. 备份

 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2.下载Repo文件

 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

或者

 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

3. 运行 yum makecache 生成缓存

4. 其他

可选

 sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo

epel安装

yum install epel-release wget -y

或者

 yum install -y http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

epel更换阿里源

1. 备份(如有配置其他epel源)

 mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
 mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup

2. 下载新repo 到/etc/yum.repos.d/

wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo 

image-20230515134812191

系统更新

yum update -y

添加 End Point Package Repository

CentOS 7 上安装新版本 Git 最快的方法是通过 End Point 库。

sudo yum -y install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm

其他版本的 CentOS 替换成对应版本安装,可参考:packages.endpointdev.com/

常用组件工具安装

yum install htop git vim net-tools telnet zip unzip wget tree gcc nc jq gcc-c++ pcre-devel zlib zlib-devel rpmdevtools rpmbuild yum-utils createrepo openssl openssl-devel pwgen -y

Docker安装

1.下载安装源文件

wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo

或者

 wget -P /etc/yum.repos.d/ https://download.docker.com/linux/centos/docker-ce.repo

2.更换安装源

sudo sed -i 's+download.docker.com+mirrors.cloud.tencent.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

3.建立本地缓存

sudo yum makecache fast 

4.安装Docker-CE

 yum install -y docker-ce 

image-20230515114254060

Docker配置修改

vim /etc/docker/daemon.json
 {  
     "registry-mirrors": ["https://d3is0bty.mirror.aliyuncs.com","http://f1361db2.m.daocloud.io"],  
     "insecure-registries": ["http://hub.nercoa.com"],  
     "data-root": "/mnt/DockerRootDir",  
     "storage-driver": "overlay2",  
     "log-driver":"json-file",  
     "log-opts": {"max-size":"5m", "max-file":"3"}  
 }  

//  "graph": "/mnt/DockerRootDir", 亦可指定Docker的根目录位置。

解决docker运行容器自动开放防火墙端口

# 解决docker运行容器自动开放防火墙端口, Firewalld无法控制docker端口情况

 # 被这个东西坑了几次了,总以为自己屏蔽了端口,但是发现没有屏蔽导致两次被清库,这次终于找到原因了。因为docker是直接走iptables转发,不受自带防火墙的控制,坑死了。  

 #需要修改/usr/lib/systemd/system/docker.service  

 vi /usr/lib/systemd/system/docker.service 
// 找到 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 在中间添加 --iptables=false  

// 修改之后 :  
 ExecStart=/usr/bin/dockerd --iptables=false -H fd:// --containerd=/run/containerd/containerd.sock  

// 上面的位置不能放错,放错启动会报错。  
 :wq 保存退出  

 #然后  
 systemctl daemon-reload  
 systemctl restart docker

限制Docker容器生成大量core文件

限制Docker容器生成大量core文件,上面之前配置文件中限制了日志的文件,但无法限制错误时生成的转储文件

 vi /usr/lib/systemd/system/docker.service  
// 在容器服务当中添加默认值 `--default-ulimit core=0:0`

 /lib/systemd/system/docker.service  
 ExecStart=/usr/bin/dockerd --iptables=false -H fd:// --containerd=/run/containerd/containerd.sock --default-ulimit core=0:0  

Docker-Compose安装

# curl -SL https://github.com/docker/compose/releases/download/v2.24.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

 curl -SL https://img.winjay.cn/md/docker-compose-linux-x86_64-v2.24.3 -o /usr/local/bin/docker-compose  
 chmod +x /usr/local/bin/docker-compose  
 ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

命令自动补全

 yum install bash-completion -y

安装好后,重新登陆即可(刷新bash环境)。

关闭防火墙、SELINUX

 systemctl stop firewalld.service && systemctl disable firewalld.service  
 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

 reboot

启用IPV4转发功能

Docker启动报错WARNING:IPv4 forwarding is disabled. Networking will not work.

解决办法:

 echo 'net.ipv4.ip_forward=1'  >> /etc/sysctl.conf

重启network服务

 systemctl restart network && systemctl restart docker

查看是否修改成功 (备注:返回1,就是成功)

 sysctl net.ipv4.ip_forward
  • 正常会输出net.ipv4.ip_forward = 1

  • IP 转发是一种网络功能,允许 Linux 主机将接收到的 IP 数据包从一个网络接口转发到另一个网络接口。当 Linux 主机作为一个网络中的路由器或者网络中继时,启用 IP 转发功能是必需的。这样,它可以将数据包从一个网络发送到另一个网络,实现不同网络之间的通信。

  • 具体地说,net.ipv4.ip_forward=1的设置将使 Linux 内核允许 IP 数据包的转发。默认情况下,这个选项的值是0,表示禁用 IP 转发。通过将其设置为1,你告诉内核启用 IP 转发功能。

请注意,在启用 IP 转发之前,确保了解网络拓扑和网络安全需求。开启 IP 转发功能可能会对网络安全产生影响,因为它允许数据包在不同网络之间传递。确保合理地配置防火墙规则和网络访问控制,以确保网络的安全性。

SSH配置

  • 上传公钥
// 修改ssh端口号
# Port 22  
 Port $(YourPort)  

// 修改断开时间
 ClientAliveInterval 600  
 ClientAliveCountMax 3

// 关闭密码登陆,只允许证书登陆:这两个参数值修改为no:
 PasswordAuthentication no  
 ChallengeResponseAuthentication no  

  // 然后重启SSH服务。  

现在我们就已经限制用户的SSH登录方式,只允许用key方式登录。进一步测试,如果我们用一台不带信任key的机器尝试登录,那么会提示如下信息。Permission denied (publickey,gssapi-keyex,gssapi-with-mic). 证明限制SSH登录方式成功。

网络配置

 vim /etc/sysctl.conf
// 新增如下数据加入文件尾部 
net.ipv4.tcp_fin_timeout = 30  
 net.ipv4.tcp_keepalive_time = 1800  
 net.ipv4.tcp_window_scaling = 0  
 net.ipv4.tcp_sack = 0  
 net.ipv4.tcp_timestamps = 0  

退出vim 执行重新加载文件生效

 sysctl -p
1.  net.ipv4.tcp_fin_timeout = 30  // 这个参数定义了一个 TCP 连接在关闭时等待的时间。TCP 连接的关闭分为多个阶段,FIN_WAIT_1、FIN_WAIT_2 和 TIME_WAIT 等。这个参数设置了在关闭连接时等待的时间,单位是秒。默认情况下,这个值是比较长的,但是通过将它设置为较小的值(例如30),可以更快地释放连接资源。

2.  net.ipv4.tcp_keepalive_time = 1800 // TCP Keepalive 是一种机制,用于检测空闲的 TCP 连接,并在需要时终止它们。这个参数定义了 TCP Keepalive 包发送的间隔时间,单位是秒。默认情况下,它是 7200 秒(2 小时),但是通过将它设置为较小的值(例如1800,即30 分钟),可以更快地检测并终止空闲连接。

3.  net.ipv4.tcp_window_scaling = 0 //  这个参数控制是否启用 TCP 窗口缩放机制。TCP 窗口缩放允许在高带宽网络上进行更高效的数据传输。将这个参数设置为 0 将禁用窗口缩放,可能会对某些网络环境更加稳定和可靠。

4.  net.ipv4.tcp_sack = 0  //  SACK(Selective Acknowledgment,选择性确认)是一种机制,用于在 TCP 连接中确认接收到的数据段。将这个参数设置为 0 将禁用 SACK,可能会影响 TCP 的拥塞控制算法。在某些情况下,禁用 SACK 可能会提高性能和可靠性。

5.  net.ipv4.tcp_timestamps = 0 //  这个参数控制是否启用 TCP 时间戳选项。TCP 时间戳用于在网络上同步时间,以提高数据包的排序和处理。将这个参数设置为 0 将禁用时间戳选项,可能会在某些情况下提高性能和安全性。
// 在修改完`/etc/sysctl.conf`文件后,如果你想立即使修改的参数生效,可以运行以下命令之一:
  1. 使用sysctl -p命令: 运行sysctl -p命令将重新加载/etc/sysctl.conf文件中的参数,并使其立即生效。

  2. 使用sysctl -w命令: 使用sysctl -w命令可以直接设置某个参数并立即生效。例如,如果要立即生效地设置net.ipv4.tcp_keepalive_time参数为1800,可以运行以下命令:

sysctl -w net.ipv4.tcp_keepalive_time=1800
# 请将上述命令中的参数名和值替换为你实际修改的参数和值。

这些命令将使你对内核参数的修改立即生效,而无需重新启动系统。

1
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区