CentOS 服务器配置一站式记录(持续更新)
✅ 系统配置
yum
更新系统包
sudo yum update -y
安装 EPEL 仓库
sudo yum install epel-release -y
firewall
查看已打开端口
sudo firewall-cmd --list-ports
放行端口并重载防火墙
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload
(可选)停用防火墙,并关闭防火墙开机自启
systemctl stop firewalld.service
systemctl disable firewalld.service
ssh
修改端口号
参数:Port xx
vim /etc/ssh/sshd_config
可配置多次以开启多个端口,例如
...
Port 22
Port 1234
...
开启密钥登录
本地
执行下面的命令,输入生成的 id 文件名后一路回车
ssh-keygen
拷贝 id 到服务器
ssh-copy-id -i ~/.ssh/id名 root@ip
配置 config 文件(~/.ssh/config
)
Host 别名
HostName 服务器IP
User root
PreferredAuthentications publickey
IdentityFile ~/.ssh/id名
后续直接 ssh 别名
即可连接
在 MacOS 中,在不使用 Host 别名登录的情况下(
ssh root@xxx
),或者 config 的 Host 未配置PreferredAuthentications publickey
,那么要实现系统终端免密登录,还必须执行下面的命令将私钥添加到系统的 keychain 才行:ssh-add ~/.ssh/id名
服务器
vim /etc/ssh/sshd_config
取消注释以启用公钥认证:PubkeyAuthentication yes
关闭密码登录(可选):PasswordAuthentication no
重载 sshd
sudo systemctl restart sshd
BBR(可选)
升级系统内核并开启 BBR,脚本处理完后输入 y 回车以重启
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh
验证
sysctl net.ipv4.tcp_available_congestion_control
执行后输出值需为:net.ipv4.tcp_available_congestion_control = reno cubic bbr
sysctl net.ipv4.tcp_congestion_control
执行后输出值需为:net.ipv4.tcp_congestion_control = bbr
sysctl net.core.default_qdisc
执行后输出值需为:net.core.default_qdisc = fq
✅ Vim
安装 Vim
检查本机已存在的包
rpm -qa|grep vim
输出:
vim-minimal-7.4.629-8.el7_9.x86_64
vim-common-7.4.629-8.el7_9.x86_64
vim-filesystem-7.4.629-8.el7_9.x86_64
vim-enhanced-7.4.629-8.el7_9.x86_6
缺哪个装哪个
yum -y install vim-
要是全缺则直接
yum -y install vim*
配置 Vim
位于 ~/.vimrc
set number
set history=1000
syntax on
set ruler
set t_Co=256
set autoindent
set smartindent
set tabstop=4
set softtabstop=4
set shiftwidth=4
set showmatch
set cursorline
✅ Git
安装 Git
yum install git
配置 Git
git config --global user.name ""
git config --global user.email ""
git config --global credential.helper store
✅ Docker
安装 Docker
通过 yum 安装
yum install docker-ce -y
通过官方脚本自动安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
启动并设置开启自动启动
systemctl start docker
systemctl enable docker
若报错:No package docker-ce available.
- 卸载旧版本(如有,见下文)
- 更新
yum update -y
- 安装 yum-util 用于管理 yum 源:
sudo yum install -y yum-utils
- 添加 yum 源:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo`
- 更新索引(CentOS 7):
sudo yum makecache fast
CentOS 8:
sudo yum makecache
- 安装(CentOS 7)
sudo yum install -y docker-ce
CentOS 8:
wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm yum -y install containerd.io-1.2.6-3.3.el7.x86_64.rpm sudo yum install -y docker-ce
升级 Docker
卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
重新安装
yum install docker-ce -y
启动 Docker 并设置开启自动启动
systemctl start docker
systemctl enable docker
✅ Docker-Compose
安装 Docker-Compose
下载可执行文件
- 地址中的
2.24.7
为版本可自选 - 官方建议的 Docker-Compose 版本与 Docker 版本对应表:Compose and Docker compatibility matrix
curl -L https://github.com/docker/compose/releases/download/2.24.7/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
添加执行权限
chmod +x /usr/local/bin/docker-compose
升级 Docker-Compose
删除/备份原文件
rm /usr/local/bin/docker-compose
按「安装」中重新下载即可
✅ MySQL
安装 MySQL 8
安装mysql和mysql-devel
yum install mysql -y
yum install mysql-devel -y
下载 yum 包
wget http://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
安装源
rpm -ivh mysql80-community-release-el7-5.noarch.rpm
安装 MySQL 服务
(如果没有wget就装一下:yum -y install wget)
yum install mysql-community-server -y
若报错:
The GPG keys listed for the "MySQL 5.7 Community Server" repository are already installed but they are not correct for this package. Check that the correct key URLs are configured for this repository.
请执行下面的命令以导入 GPG 密钥,然后重试「安装 MySQL 服务」
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
或直接关闭 GPG 校验:
vim /etc/yum.repos.d/mysql-community.repo
把 mysql80-community 的 gpgcheck 改成 0,再 yum install 即可
启动 MySQL 并设置开启自动启动
systemctl start mysqld
systemctl enable mysqld
查看临时密码
grep 'temporary password' /var/log/mysqld.log
登录
mysql -u root -p
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword';
修改连接端口
quit 回车退出 mysql 命令行后编辑配置文件
vim /etc/my.cn
添加行:
port=your_port
重启服务
systemctl restart mysqld
授权远程登录权限
(替换 yourpassword
为实际密码)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
防火墙放行
(如果开了防火墙的话)
firewall-cmd --state
firewall-cmd --zone=public --add-port=your_port/tcp --permanent
firewall-cmd --reload
✅ Golang
下载
sudo curl -o /usr/local/go1.21.6.linux-amd64.tar.gz https://go.dev/dl/go1.21.6.linux-amd64.tar.gz
解压
sudo tar -xzf /usr/local/go1.21.6.linux-amd64.tar.gz -C /usr/local
配置环境变量
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
使环境变量生效
source ~/.bashrc
✅ Java
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
✅ Pushdeer
克隆仓库
git clone https://gitee.com/easychen/pushdeer.git
进入目录
cd pushdeer
构建部署
docker-compose -f docker-compose.self-hosted.yml up --build -d
每年二月需要重新拉取证书用于通知推送
git pull
重新部署
docker-compose -f docker-compose.self-hosted.yml up --build -d
✅ NodeJS
安装 Node
添加 yum 存储库
curl --silent --location https://rpm.nodesource.com/setup_16.x | sudo bash
安装 nodejs 和 npm
sudo yum -y install nodejs
验证 Node
node -v
切换 Node 版本
安装 n
sudo npm install -g n
使用 n 安装 node 最新稳定版
sudo n stable
使用 n 安装指定版本
sudo n v12.17.0
查看与切换版本
sudo n
验证切换效果
node -v
注意
若是 MacOS,之前使用 homebrew 安装了 node,则需要解除关联才能使 n 安装的 node 生效:
brew unlink node
✅ Clash
下载 clash 可执行文件
内核官方已删库,可在网上自找
下载 clash-linux-amd64,放到自选目录,命名为 clash
放置配置文件
将配置文件放置在同级目录下,命名为 config.yaml
(注意后缀不是.yml)
运行 clash
方案一:临时使用
单独开一个 ssh 跑 clash
./clash -d .
需要使用的 ssh 窗口临时设置代理
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7891
使用完毕后关掉两个 ssh 即可
方案二:一直开启
nohup /home/clash/clash -d /home/clash/ >> /home/clash/output.ini 2>&1 &
将代理配置写入 ~/.bashrc
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7891
然后应用生效
source ~/.bashrc
(可选)定时更新配置文件
crontab -e
填入:
29 6 * * * root pgrep clash | xargs kill -s 9
30 6 * * * root mv clash目录/config.yaml clash目录/config-bkp.yaml
31 6 * * * root wget -P clash目录/ -O config.yaml [你的订阅链接]
32 6 * * * root nohup clash路径 -d clash目录/ >> clash目录/output.ini 2>&1 &
✅ FreshRSS
创建 MySQL 数据库
CREATE USER 'freshrss'@'127.0.0.1' IDENTIFIED BY 'yourpassword';
CREATE DATABASE `freshrss`;
GRANT ALL privileges ON `freshrss`.* TO 'freshrss'@'%' IDENTIFIED BY 'yourpassword';
FLUSH PRIVILEGES;
QUIT;
通过 Docker-Compose 部署
创建并进入 freshrss 目录,创建 docker-compose.yml 文件并填入:
version: "2.1"
services:
freshrss:
image: lscr.io/linuxserver/freshrss:latest
container_name: freshrss
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
- ./config:/config
ports:
- 8082:80
extra_hosts:
- "host.docker.internal:host-gateway"
restart: unless-stopped
端口 8082 自选
然后部署镜像
docker compose up -d
初始化 FreshRSS
使用 Nginx 或其他反代工具为 FreshRSS 配置公网访问,浏览器访问服务,然后按照前端页面一路配置即可。
数据库配置
数据库的「主机」栏要填写 host.docker.internal:你的MySQL端口
(如果端口是默认3306则可省略:3306)
不能写 127.0.0.1
或 localhost
!
添加订阅源
-
如果是国内的源,直接在后台订阅即可。
-
如果是需要魔法的源(如 rsshub.app、v2ex 等),需要在添加订阅源时展开「高级」选卡,在「获取订阅源时的代理」处设置 HTTP 代理。若代理部署在本机,则代理地址填写为
http://host.docker.internal:7890
(替换7890
为你的代理地址)。
开放 API
- 「设置」-「认证」-「✅ 允许不安全的自动登录方式」,「✅ 允许 API 访问」
- 「设置」-「账户」-「API 管理」-「API 密码」设置一下并提交
随后即可在 RSS 客户端中添加 FreshRSS,密码为 API 密码,API URL 为「API 管理」中给出的地址,后跟 greader.php
✅ Nginx
安装 Nginx
安装、启动、开机自启
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
配置 Nginx
开启 gzip 加速网站访问速度
# ........
http {
# .......
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 9;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php application/javascript application/json;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;
# .......
}
# ........
frp
安装 frp
配置 frp
Python
安装 Python
切换 Python 版本
- 感谢你赐予我前进的力量