01 SSH连上再说

首先,第一步就是连上自己的小鸡。不同的运营商有不同初始化密码的方式,一般看邮件或者在官网操作即可。

1
2
3
4
5
6
# 第一次用密码登录,默认端口一般是22
ssh root@YOUR_SERVER_IP -p 22

# 遇到 sudo: unable to resolve host server.example.com: Name or service not known 的问题
cat /etc/hosts #查看
nano /etc/hosts #修改

接下来,我们首先要解决的是登录问题。习惯是改一改ssh登录端口

1
2
3
nano /etc/ssh/sshd_config
# 比如,修改port变成2223
sudo service sshd restart

查看或创建 .ssh 文件夹

1
2
3
4
5
6
7
8
9
10
# 创建.ssh/authorized_keys
mkdir ~/.ssh
touch authorized_keys

# 如果是自己创建的文件夹,记得修改权限
chmod 600 authorized_keys
chmod 700 -R .ssh

# 将自己电脑的公钥复制进 authorized_keys
echo "[id_dsa.pub]" >> ~/.ssh/authorized_keys

02 看主机名不爽

有些时候我们看着 hostname (主机名) 不爽怎么办?那就改!
(这对于 ubuntu 来说很简单,macos 就千万别改了!)

1
2
3
4
5
6
7
8
9
# 查看主机信息
hostnamectl status

# 修改hostname(永久)
sudo hostnamectl set-hostname [YOUR-HOSTNAME]
sudo nano /etc/hosts #一定要记得改哦

# 修改hostname(暂时)
sudo hostname [NEW-HOSTNAME]

1690734569747.png

03 Linux创建新用户

1
2
3
4
5
6
useradd -m NEW_NAME
passwd NEW_NAME
adduser NEW_NAME sudo
sudo usermod -a -G sudo NEW_NAME

userdel -r NAME_DELETED

testcase:
在home文件夹里有新文件夹NEW_NAME,也可以尝试ssh密码登录

设置新用户的ssh:暂时略

04 简易系统更新

新机到手基本操作,先简单更新一下:

1
2
sudo apt update 
sudo apt upgrade

如遇下图,保持即可,直接回车。

upgrade-ssh.png|500

1
2
sudo apt install build-essential
sudo reboot

更新之后可以查看版本:

1
lsb_release -a

其中 lsb 表示 (Linux Standard Base):LSB 是一套核心标准, 它保证了 LINUX 发行版同 LINUX 应用程序之间的良好结合, 具体地说,它是:

  1. 一个二进制接口规范,是指应用程序在系统间迁移时不用重新编译,保证应用程序在所有经过认证的 LINUX 发行版上都具有兼容性。
  2. 一个测试规范,测试 LINUX 发行版和 LINUX 应用程序是否符合 LSB 标准。
  3. 搭建遵从 LSB 规范的应用程序的开发环境。
  4. 为在纯 LSB 环境下运行和测试应用程序而提供的运行环境样本。

或者:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 查看系统内核版本号及系统名称
uname -a

# 显示内核名字
uname --s 

# 显示内核版本
uname --r

# 显示网络主机名
uname --n 

# 显示cpu类型
uname --p 

# 获取帮助
uname --help

05 bbr 加加速

Linux Kernel 内核升级到 4.9 及以上版本可以实现 BBR 加速,由于 Ubuntu 18.04 默认的内核就是 4.15 版本的内核,由于 Ubuntu 20.04 默认的内核就是 5.4 版本的内核,并已经默认编译了 TCP BBR 模块,所以可以直接通过参数开启。

新的 TCP 拥塞控制算法 BBR (Bottleneck Bandwidth and RTT) 可以让服务器的带宽尽量跑满,并且尽量不要有排队的情况,让网络服务更佳稳定和高效。

1
2
3
4
5
6
7
8
echo net.core.default_qdisc=fq >> /etc/sysctl.conf
echo net.ipv4.tcp_congestion_control=bbr >> /etc/sysctl.conf

sysctl -p

sysctl net.ipv4.tcp_available_congestion_control

sysctl net.ipv4.tcp_congestion_control

参考链接: 我不是咕咕鸽:新买了一台服务器 “必须” 要做的 6 件小事

06 打开 Docker 新世界

6.1 Docker 安装

非大陆 Docker 安装

1
2
apt install -y wget vim
wget -qO- get.docker.com | bash

testcase: 查看 docker 的版本

1
docker -v

开机自启

1
systemctl enable docker

卸载 Docker

1
2
3
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

6.2 Docker-compose 安装

非大陆 Docker-compose 安装

1
2
3
curl -SL https://github.com/docker/compose/releases/download/v2.14.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

testcase: 查看docker的版本

1
docker-compose --version

6.3 限制日志大小

以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘(泪的教训):

1
2
3
4
5
6
7
8
9
10
11
12
13
cat > /etc/docker/daemon.json << EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3"
},
"ipv6": true,
"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
"experimental":true,
"ip6tables":true
}
EOF

然后重启 Docker 服务:

1
systemctl restart docker

6.4 给 docker 镜像下载时套上代理

国外VPS请忽略。

如果在国内,可能遇到docker镜像下载慢的情况,那么我们可以给docker添加代理。

官网文档参考链接: https://docs.docker.com/config/daemon/system

新建文件夹如下:

1
sudo mkdir -p /etc/systemd/system/docker.service.d

在文件夹内,新建文件 /etc/systemd/system/docker.service.d/http-proxy.conf 如下:

1
2
3
4
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:3128"
Environment="HTTPS_PROXY=https://proxy.example.com:3129"
Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.example.com,.corp"

刷新配置,并重启docker:

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

检查是否配置成功:

1
sudo systemctl show --property=Environment docker