✅ 系统配置

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.

  1. 卸载旧版本(如有,见下文)
  2. 更新
yum update -y
  1. 安装 yum-util 用于管理 yum 源:
sudo yum install -y yum-utils
  1. 添加 yum 源:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo`
  1. 更新索引(CentOS 7):
sudo yum makecache fast

CentOS 8:sudo yum makecache

  1. 安装(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

下载可执行文件

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

  1. 「设置」-「认证」-「✅ 允许不安全的自动登录方式」,「✅ 允许 API 访问」
  2. 「设置」-「账户」-「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 版本