这几年云服务器的风潮席卷了整个互联网。借着这个东风也接触了不少云服务器。从最早的虚拟机主机到阿里云ECS,Ucloud,Azure中国,再到Bangwagon,DigitalOcean,Vultr,Aws。因为机器都是个人名义申请的,接触的顺序基本就是申请的难易程度排序。换机器的频率很高,没有固定的根据地。初始化加固和一些基本软件的安装操作不下十几次。每次回想上回的经验弄,没有形成文档。挺浪费时间。在此总结一下,下次搬家的时候能更有效率。
云服务器使用经历
说到服务器,最先其实用的是IDC网络空间。那时候基本都是PHP的虚拟主机,Java的贵很多。优点是管理简单。给你个FTP和MySQL账号去传文件,导数据。价格也很便宜,几十块钱包年。缺点就是那其实算不上是你的主机。顶多算是个隔板房的租户,还是那种三居室隔成几百间那种。毫无自由可言。
虚机主机的黑历史不长,后来转到了阿里云。阿里云基本是个全能型的保姆。用起来特省心。以至于裸跑了几个月也没有觉得有什么问题。搞个固定带宽包年包月。有快照备份,随意倒腾各种环境。很多运维的基本功就是在上面练出来的。一度以为阿里云是最好的。直到染上了Nodejs狂热症。
不出去还好,出去后发现国内机器的性价比完全被秒杀,还不用备案(有过备案的黑历史)。Bangwagon这家支持支付宝,我入手的最早。2.85美元/月,折合不到20块的超低配,500G流量。主要是为了翻出去,国外的带宽很便宜这个很实惠。阿里云现在按流量收费0.8元/G出网流量。看着就心碎了。也因为这样我常年忍受着1M的固定带宽。还有的就是国外的机器包月和按量付费的区别不明显。包月也是和按量一样按小时扣费。包月的费用其实是平摊到每一个小时的。中途可以删机器钱也会退回来。用国内的厂商,你的掰手指算清楚到底是包月划算还按量便宜。而且同等配置资费上国外会便宜1/3甚至一半。以至于后来我在国外服务器上走得越来越远,根本回不来。在DO待过段时间,后来速度不稳定。现在转到了Vultr的东京节点。缺点就是国外的云服务器基本上就是裸机,安全全得自己扛。特别是流量这块,要费点心。虽然送的流量不少。如果有人恶意攻击。很快就能把流量耗完。不会有阿里云那种保姆式的服务。所以才会引出下面的章节。
SSH禁用密码启用证书登陆
SSH服务用22端口,使用密码登陆。国内太普遍了,以至于很多购买云服务器的页面也是这样设计的。没有人会跟你说要锁root用户,改SSH端口,禁密码登陆。后来也是各大论坛和看服务器日志时发现的。如果用的是弱密码的话,或许早就被攻破了。各种黑客大神整天在网上抓肉鸡,所以这一步我个人觉得必须做好。
生成公钥和密钥
生成的id_rsa文件保存到本地,导入客户端登陆工具。
## gen key
root@vultr:~#ssh-keygen
root@local:~/.ssh# ll
total 20
drwx------ 2 root root 4096 Mar 18 07:36 ./
drwx------ 4 root root 4096 Mar 10 07:51 ../
-rw------- 1 root root 395 Mar 18 07:37 authorized_keys
-rw-r--r-- 1 root root 1679 Mar 18 07:36 id_rsa
-rw-r--r-- 1 root root 396 Mar 18 07:36 id_rsa.pub
公钥粘贴至authorized_keys
## chmod
chmod 600 authorized_keys
修改登陆端口关闭密码登陆
修改/etc/ssh目录的sshd_config文件
# What ports, IPs and protocols we listen for
Port 8888
......
PasswordAuthentication no
重启SSH服务
service sshd restart
设置防火墙
把刚改的SSH端口放开,关闭22端口。防火墙建议用firewalld。默认关闭所有端口,留下SSH端口。其他端口有需要再开。
## open port
firewall-cmd --permanent --add-port=8888/tcp
## close port
firewall-cmd --permanent --remove-port=22/tcp
## reload configuration
firewall-cmd --reload
## ports list
firewall-cmd --list-ports
设置系统缓存
这块可能对很多人没有太大必要。但对于常年使用低配机器的我来说是必备的。很多时候加点缓存又能跑多个应用。一般设置为0.5~1个单位的物理内存大小。
## create block
dd if=/dev/zero of=/swap/swapfile bs=1M count=1000
## set swap file
mkswap /swap/swapfile
## active swap
swapon /swap/swapfile
## then will see cache has added
free -m
total used free shared buffers cached
Mem: 1000 127 872 4 11 60
-/+ buffers/cache: 55 684
Swap: 999 0 999