Ubuntu服务器安装手册
# 软件更新
sudo apt update -y
sudo apt upgrade -y
1
2
2
# 版本升级 (👺 非必须)
sudo apt dist-upgrade -y
sudo apt autoclean
sudo apt autoremove -y
1
2
3
2
3
# 查看当前ubuntu版本
lsb_release -a
1
cat /etc/os-release
1
hostnamectl
1
# 添加死神PPA
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
1
2
2
# 修改root密码
sudo passwd root
1
# 基础软件安装
- xclip - 包含 pbcopy
- speedtest - 网速测试工具
- iotop - 磁盘占用率
- nbw - 内存测试
- dmidecode - 内存规格查询
- ntpdate - 时间同步
- duf - 磁盘占用查看(du升级版)
- neofetch / screenfetch - 屏幕信息
- ncdu - 磁盘占用分析
- axel - 多线程下载工具
sudo apt install -y curl wget vim bwm-ng htop git net-tools neofetch xclip supervisor ncdu lrzsz fail2ban
sudo apt install -y ntpdate mbw dmidecode
sudo apt install -y duf speedtest
sudo apt install -y iotop
sudo apt install -y autojump
sudo apt install -y screenfetch
sudo apt install -y axel
# 安装python3
sudo apt install -y python3 python3-pip python3-dev python3-venv
# 安装python2
sudo get install -y python2.7 python-pip python-dev virtualenv
# 安装python3.9
sudo apt install -y python3.9 python3.9-dev python3.9-venv
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 内存性能测试
# mbw安装
apt install -y mbw
1
# mbw内存测试
mbw -q -n 10 256
1
# dmidecode内存规格查询
sudo dmidecode --type memory
1
# 开启自带BBR 实现高效单边加速
Linux Kernel 内核升级到 4.9 及以上版本可以实现 BBR 加速,由于Ubuntu 18.04 默认的内核就是 4.15版本的内核,由于Ubuntu 20.04 默认的内核就是 5.4 版本的内核,并已经默认编译了 TCP BBR 模块,所以可以直接通过参数开启。
新的 TCP 拥塞控制算法 BBR (Bottleneck Bandwidth and RTT) 可以让服务器的带宽尽量跑满,并且尽量不要有排队的情况,让网络服务更佳稳定和高效。
# 修改系统变量
echo net.core.default_qdisc=fq >> /etc/sysctl.conf
echo net.ipv4.tcp_congestion_control=bbr >> /etc/sysctl.conf
1
2
2
# 保存生效
sysctl -p
1
# 检查1
sysctl net.ipv4.tcp_available_congestion_control
1
返回效果
sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = reno cubic bbr
1
2
2
# 检查2
lsmod | grep bbr
1
出现类似以下的情况就是成功开启BBR
tcp_bbr 24576 3
1
# 安装geo-ip
apt install -y geoip-bin geoip-database geoipupdate
1
# geo-ip配置
# `UserId` is from your MaxMind account.
UserId 👺👺👺👺👺👺👺👺👺👺 # 替换
# `LicenseKey` is from your MaxMind account
LicenseKey 👺👺👺👺👺👺👺👺👺👺👺👺 # 替换
# `ProductIds` is from your MaxMind account.
ProductIds GeoLite2-ASN GeoLite2-City GeoLite2-Country
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# geo-ip更新数据库
/usr/bin/geoipupdate -v -f /etc/GeoIP.conf
1
# 开启fail2ban
systemctl enable fail2ban
systemctl start fail2ban
1
2
2
# 安装autojump
## install
sudo apt install -y autojump
## echo config
echo '. /usr/share/autojump/autojump.sh' >> ~/.bashrc
1
2
3
4
2
3
4
# net-tools
基础网络工具(ifconfig)
sudo apt install net-tools
1
# duf
Linux 命令 df 的替代品——duf,和 df 一样它也能查看硬盘使用情况.
sudo apt install duf
1
# 服务器软件
# Redis安装
sudo apt install redis-server
sudo systemctl enable redis-server
sudo systemctl status redis-server
1
2
3
2
3
# MySQL安装
sudo apt install mysql-server
sudo systemctl enable mysql
sudo systemctl start mysql
sudo systemctl status mysql
1
2
3
4
2
3
4
# docker安装
# 安装docker依赖
首先,更新你现有的软件包列表,并为下面的步骤安装一些依赖项。 ca-certificates, curl, gnupg 和 lsb_release 工具将被用来下载正确的Docker apt 仓库细节和你系统的签名密钥。尽管你可能已经有了这些软件包,但确保它们是可用的也无妨。
apt update
apt install -y ca-certificates curl gnupg lsb-release
1
2
2
# 注册docker秘钥
接下来,在apt上注册Docker的GPG密钥圈。这将让 apt 验证你安装的Docker包。
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
1
2
3
2
3
# 添加docker包
把Docker包的源代码添加到你的系统中。运行下面的命令:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
1
# docker安装
- docker-ce: Docker引擎守护程序。
- docker-ce-cli: 你将与之互动的Docker CLI。
- containerd.io: 被称为containerd的容器运行时间,用于启动和运行你的容器。
apt update
apt install -y docker-ce docker-ce-cli containerd.io
1
2
2
# 系统配置 👍🏻
# 时间设置
# 设置时区
# 命令行
tzselect
1
# 图形
sudo dpkg-reconfigure tzdata
1
# 查看时间
# 1. 第一种
date
# 2. 第二种
date -R
1
2
3
4
5
2
3
4
5
# 同步时间
apt install -y ntpdate
sudo ntpdate cn.pool.ntp.org
1
2
2
# ulimit设置
# 修改系统配置
vim /etc/sysctl.conf
# 添加
fs.file-max = 65535
sudo sysctl -p
1
2
3
4
2
3
4
# 修改用户配置
vim /etc/security/limits.conf
* hard nofile 65535
* soft nofile 65535
root hard nofile 65535
root soft nofile 65535
1
2
3
4
5
2
3
4
5
# systemd
# Systemd
vim /etc/systemd/system.conf
# 添加
DefaultLimitCORE=infinity
DefaultLimitNOFILE=65535
DefaultLimitNPROC=65535
systemctl daemon-reexec
1
2
3
4
5
6
7
2
3
4
5
6
7
# 验证
# 查看系统限制
cat /proc/sys/fs/file-max
1
# 查看用户硬限制
ulimit -Hn
1
# 查看用户软限制
ulimit -Sn
1
# 查看某进程的限制
cat /proc/PID/limits # 将 PID 替换为具体的进程 ID
1
# 查看其他用户限制
su - www -c 'ulimit -aHS' -s '/bin/bash'
1
# 关闭虚拟内存
# 临时关闭
swapoff -a
1
# 永久关闭
vim /etc/fstab/
## 屏蔽swap.img
1
2
2
# 开启sshd
# 修改sshd配置文件
vim /etc/ssh/sshd_config
## 开启root远程登录
PermitRootLogin yes
PubkeyAuthentication yes
UseDNS no
GSSAPIAuthentication no
## 重启sshd
systemctl restart sshd
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# ssh配置
# 生成公钥私钥
ssh-keygen
1
# 防火墙设置 (👺非必须)
# 1. 开放通用端口
sudo ufw allow 80
sudo ufw allow 443
1
2
2
# 开发环境 👍🏻
# python环境
apt install -y npm python3 python3-pip python3-venv
1
# nodejs环境
sudo npm install -g yarn
sudo npm install -g n
sudo n stable
sudo hash -r
1
2
3
4
2
3
4
# 其他系统命令
# resolvectl
dns缓存
# dns查看服务状态
resolvectl status
1
# 查看dns缓存统计
resolvectl statistics
1
# 刷新dns缓存
flush-caches
1
上次更新: 2024/11/27, 01:44:16