不时的有配置全新 VPS 的需求,所以就写一篇文章方便以后参考。这篇文章包括了添加用户,设置 SSH,设置 Firewall,设置 bash 个性化定制,更改 hostname,安装常用软件(咳咳...) 等等步骤。本文今后也会根据需求慢慢补充。
0x00 - 开通个 VPS
我演示就用 DigitalOcean (DO) 了。使用的是 $0.007 一小时的选项,一个月的话是 $5。链接免费送 $10。
比较方便的是他家可以直接添加 SSH Key,不过我还是演示一下通过手动设置的方式。
0x01 - 添加 DNS A, AAAA 记录
添加完服务器第一步就是添加到 DNS 的 A
and/or AAAA
记录里。吐槽一下,之前发现阿里云 ECS 全球云服务器竟然不支持 ipv6。
添加完后本地确认:
$ dig +noall +answer A do-whale.whe.cloud
do-whale.whe.cloud. 299 IN A 138.197.102.150
$ dig +noall +answer AAAA do-whale.whe.cloud
do-whale.whe.cloud. 299 IN AAAA 2604:a880:800:a1::b10:1001
这一步是可选的,不过之后就都要直接使用 ip 进行操作。
0x02 - 添加用户
DO 是直接邮件 root 密码的。所以用它登录。用户就用 whale
做演示。
$ ssh root@do-whale.whe.cloud
添加用户
$ adduser whale
$ usermod -aG sudo whale
切换到 whale
账户的模式
$ su - whale
0x03 - 设置 SSH
SSH 设置的稍微安全一点总是好的:
a. 本地生成一对钥匙
如果本地已设置过 ssh key 请跳下段。
本地新开一个 terminal 运行如下生成一对钥匙:
$ ssh-keygen
默认你的私钥存在 ~/.ssh/id_rsa
公钥存在 ~/.ssh/id_rsa.pub
。
b. 上传公钥
本地新开一个 terminal 上传公钥(两种方法二选一):
$ ssh-copy-id -i ~/.ssh/id_rsa.pub whale@do-whale.whe.cloud
或者
$ cat ~/.ssh/id_rsa.pub | ssh whale@do-whale.whe.cloud 'mkdir -p ~/.ssh; cat - >> ~/.ssh/authorized_keys'
c. 配置 sshd_config
$ sudo nano /etc/ssh/sshd_config
确保以下没有 # prefix 并被赋有正确的值:
Port 1234
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
接着就 sshd
设置重载:
$ sudo systemctl reload sshd
d. 用新配置连接 ssh
新开 terminal 窗口运行:
$ ssh -p 1234 whale@do-whale.whe.cloud
是不是不需密码就登录了呐!
关于 SSH 的更多内容和技巧,请移步「SSH 设置与技巧」。
0x04 - 配置防火墙(UFW 简易墙)
允许 incoming 端口,务必打开刚才设的 ssh 端口,不然就锁在外面了:
$ sudo ufw allow 1234/tcp
$ sudo ufw allow 80
$ sudo ufw allow 443
Rules updated
Rules updated (v6)
开启防火墙:
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
设置完了看看都有啥:
$ sudo ufw status verbose
Status: active
Logging: off
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
1234/tcp ALLOW IN Anywhere
80 ALLOW IN Anywhere
443 ALLOW IN Anywhere
1234/tcp (v6) ALLOW IN Anywhere (v6)
80 (v6) ALLOW IN Anywhere (v6)
443 (v6) ALLOW IN Anywhere (v6)
为了安全起见 ssh 端口还可以限制 IP 访问,
关于 UFW 防火墙的更多内容和技巧,请移步「Ubuntu UFW 防火墙设置」。
0x05 - Bash 个性化定制
如果你有设置过 .bashrc
, .bash_profile
, .bash_aliases
, .screenrc
等,可以直接移动进去。
可以先看看系统自带的里面有没有想保留的。有的话就把你的加在后面:
$ cat ~/.bash_aliases | ssh -p 1234 whale@do-whale.whe.cloud 'cat - >> ~/.bash_aliases'
没有的话就覆盖掉:
$ cat ~/.bash_aliases | ssh -p 1234 whale@do-whale.whe.cloud 'cat - > ~/.bash_aliases'
登出再登入或者运行这个:
$ source ~/.bashrc
Wolla!
我的是:
PS1='${debian_chroot:+($debian_chroot)}\[\033[48;5;27;38;5;194m\]\u\[\033[0m\]\[\033[1;38;5;27m\]@\h\[\033[0m\]:\[\033[01;34m\][\w]\[\033[00m\]\$ '
Google Compute Engine 默认(绿色):
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
大家也可以生成和分享自己的 PS1 噢:
0x06 - 更改 hostname
更改 /etc/hostname
输入新的 hostname 并保存
$ sudo nano /etc/hostname
更改 /etc/hosts
把旧的 hostname 改成新的,确保新的 hostname 指向本机
$ sudo nano /etc/hosts
重启
$ sudo reboot
0x07 - 安装软件
a. apt-get install
$ apt-get update
$ apt-get install -y \
screen \
wget \
zip \
iftop \
htop \
ncdu \
;
b. 安装 Docker
官方一键安装:
$ wget -qO- https://get.docker.com/ | sh
$ sudo usermod -aG docker $USER
加到 docker group 之后请登出再登入。
c. 测试 80 端口
$ docker run -d --name test-nginx -p 80:80 nginx
打开浏览器进入 http://do-whale.whe.cloud
会显示 nginx 欢迎界面 - 测试成功!
d. 运行 Shadowsocks
$ docker run -d --name shadowsocks --restart always -p 19840:8888 -e PASSWORD=DockerIsAwesome mrjin/shadowsocks:alpine
这个 image 才17MB,第一次 pull 也不会很久,别忘了开防火墙:
$ sudo ufw add 19840/tcp
端口 19840 可以改成别的,默认的 aes-256-cfb 加密方式也可以改。
详见:「mrjin/shadowsocks | Docker Hub」。
注意:docker 端口映射是直接在 iptables 操作的,会绕过 UFW 防火墙。具体更正操作及关于 UFW 防火墙的更多内容和技巧,请移步「Ubuntu UFW 防火墙设置」。
0x08 - Snapshot
DO 支持 snapshot 功能。别家一般都有类似的功能。这样以后在同一家开新机器时候就可以是已经基础配置好的版本了。
0x09 - 后记
写这篇文章 DO 这个 VPS 总共开了俩小时,花了 $0.007 * 2 = $0.014 = 一角钱
。
如果有兴趣开个 VPS 玩玩就试试 DigitalOcean 呗,反正链接送 $10 等于免费玩两个月哈。
如果是阿里云、腾讯云请移步「阿里云 ECS 监控卸载」。
Sources & Links:
Comments
注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。