Firede's Blog

OSS developer / Indie developer / Writer

腾讯云服务器的配置记录

2018-11-25

我这两年主要在做桌面客户端的开发,已经挺长时间没有折腾服务器相关的东西了。但因为最近做的应用需要服务器端支持,只好重操旧业。我趁腾讯云双十一活动,买了些云服务器,一番折腾之后,打算把过程记录下来。

从 Ubuntu 到 CentOS

我之前用 Ubuntu 比较多,这次发现 Ubuntu 的质量控制滑坡很厉害,整体还是太激进了。所以我打算体验一下当前版本的 CentOS。

以前在百度的时候,一直在用老旧的 CentOS 4,体验很糟糕,虽然内部的包管理神器 jumbo 弥补了一定的缺陷,但内核太老的硬伤,还是导致很多软件用不了,经常被业务无关的问题卡住。

这次用的 CentOS 7.5 改变了我之前对 CentOS 的印象。首先社区支持度很好,用起来很少因为系统的问题分心,所以这次的几台机器都装了 CentOS。

服务器配置

先升级一下系统:

sudo yum update -y

用密钥代替密码

每次创建实例后的第一件事,就是用密钥代替密码登录服务器。对于云主机来说,可以在重做系统的时候就选定预先保存在平台的 SSH 密钥。如果错过了,也可以在云主机管理的操作中加载密钥。

手动操作也很简单,复制本机的 id_rsa.pub

cat ~/.ssh/id_rsa.pub | pbcopy

编辑服务器的 authorized_keys,粘贴进去:

mkdir ~/.ssh
vim ~/.ssh/authorized_keys

再顺手设置下权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

PS: 也可以在本机用 ssh-copy-id 命令,它可以帮你做上面的事情。

更改主机名

拿到手的主机名称都是看不懂的随机前缀,所以要改个自己能看懂的,比如:

hostnamectl set-hostname cq-dev-1

创建新用户

总不能一直用 root 用户吧?所以先创建个新用户:

# 添加新用户,把 firede 换成你的用户名
adduser firede
# 改密码
passwd firede
# 加用户组,wheel 组允许使用 sudo
gpasswd -a firede wheel

最后,新用户登录也最好用密钥代替密码,可以切换到新用户去配置:

su - firede
# ...配置过程略

登录设置

先来改配置,我是用新用户登录的,所以要加 sudo

sudo vim /etc/ssh/sshd_config

我改了这些选项的值:

# 禁止用 `root` 用户登录
PermitRootLogin no
# 禁止用密码登录,我们用密钥
PasswordAuthentication no

重新加载使其生效:

sudo systemctl reload sshd

Docker 配置

安装 Docker

# 添加官方仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 替换成腾讯云镜像
sudo sed -i 's+download.docker.com+mirrors.cloud.tencent.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# 安装 docker-ce
sudo yum makecache fast
sudo yum install docker-ce
# 开机自动启动
sudo systemctl enable docker
# 启动 docker
sudo systemctl start docker

docker --version
# Docker version 18.09.0, build 4d60db4

增加 daemon.json 配置

sudo vim /etc/docker/daemon.json

我在这里添加了腾讯云的 registry:

{
  "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}

如果你有数据盘,希望修改 Docker 各种数据的存储位置,可以增加 data-root 字段。最后,刷新配置并重启 Docker:

sudo systemctl daemon-reload
sudo systemctl restart docker

docker-compose

接下来安装 docker-compose,这个速度会有点慢,自行决定要不要通过 screen 执行:

# 下面的版本号替换成最新版
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

docker-compose --version
# docker-compose version 1.23.1, build b02f1306

使用非 root 用户管理 Docker

加入 docker 用户组:

sudo groupadd docker
sudo usermod -aG docker $USER

然后 exit 退出会话,重新登录后就可以了。

我没配置的部分

防火墙

你可以在云主机里配置防火墙(传统做法),但更方便的做法是使用腾讯云的安全组(前提是用了私有网络)。这方面的配置直接看腾讯云的文档就好了,不再赘述。

swap

RedHat 有篇文章谈到了这个问题。我这里内存资源比较富余,就先不急着分配了,看后续的情况再说。

最后

😂但愿我的腾讯云服务器不变成吃灰云服务器。

赵雷 Firede

独立开发者,现居于合肥,现致力于将工程化带进写作领域。
最近对写作理论、GraphQL、Electron、Rust 很感兴趣。

Blog comments powered by Disqus.