搭建 Digital Ocean 服务器


作为程序员,搭建属于自己的服务器可以部署自己的网站,可以配置代理科学上网,了解国际前沿科技;一些高性能的服务器还可以完成一些云计算、深度学习模型的训练任务。

DigitalOcean 服务启动

注册 DigitalOcean

目前国内可以正常访问 DigitalOcean 官网,通过我的推荐链接注册可以获得 100 美刀的 credit,同时我也会获得一定的奖励,也算双赢吧~

需要注意的是,注册验证时填写银行卡信息(VISA,Mastercard 都可以)或者 PayPal 账号是用来验证身份,并不会在注册时扣费。

如果你在 GitHub 认证了学生身份,则可以获得 $50 的 credit:从 GitHub 的学生开发者包(Student Developing Pack)里找到 DigitalOcean 的 offer code,复制到 DigitalOcean 的账户信息里面。完成之后,账户里面就会有刚送的 $50 的 credit 可以用了。

添加 SSH 公钥(Optional)

该步骤可选,是为了方便用受信任设备(比如自己的电脑) SSH 登陆时自动认证,省去了输入密码的繁琐和被偷窥风险,更加安全方便。

GitHub、GitLab 支持类似的配置 SSH key 的操作。如果对这块儿比较熟悉,扫一眼 这篇官方文档 就可以完成添加公钥操作。
如果不熟悉如何找到或生成 SSH 公私钥对,可以参考我的

创建服务器实例

下面开始创建一个服务器实例(Droplet)。

选择系统镜像

根据自己对不同 Linux 系统的熟悉程度来选择就好。

选择硬件配置

根据需求来,新手可以先从 $5 的服务器开始练手,后面有需求再加容量。

选择数据中心区域

选择之前可以先在DigitalOcean 官网测试上下行速度、延迟等数据,再作选择。

添加 SSH 公钥

如果有,上传或勾选对应的 SSH 公钥

其他选项

如果没有特殊要求,保持默认就好。

完成并确认无误后,点 create 就可以创建服务器实例了。图示如下:

初次配置服务器(debian 9 为例)

一些基本的配置,参考于这里

初次登陆

新服务器系统只有一个 root 用户,因此初次登陆就用 root 作为用户名:

ssh root@

创建新用户

登陆后即拥有最高权限,这是比较危险的做法。相比之下,一般更推荐创建一个拥有普通权限的用户,只有前面带 sudo 命令时才能暂时获取 root 权限。

adduser 
usermod -aG sudo 
su 

注:上面的 需要替换为你的用户名。

设置基本防火墙

ufw 为例,简单设置防火墙。

安装 UFW

sudo apt update && apt upgrade
sudo apt install ufw

配置 UFW

UFW 可以根据应用的 profile 允许或禁止应用访问互联网。

sudo ufw app list

上面的命令可以查看 ufw 可以管理的应用 profile,其中就有 OpenSSH

比如我们需要用 OpenSSH 控制服务器,就要允许它访问互联网:

sudo ufw allow OpenSSH
sudo ufw enable

完成后,ufw 将屏蔽所有除了 OpenSSH 之外应用的网络访问。可以通过下面的命令验证:

sudo ufw status

更多关于 ufw 的操作

给新用户添加 SSH 公钥

目前为止,我们只能用 root 账户登陆,然后切换到普通用户
现在,我们给新用户添加 SSH 公钥之后,就可以直接登陆服务器的普通用户了。

# Login server by root:
ssh root@

# Copy known public key from root to 
cp -r ~/.ssh /home/

# Adjust ownership of the files under ~/.ssh/
chown -R : /home//.shh

完成后,用非 root 账户登陆:

ssh @

Written with StackEdit.

Ops