一、前言
本文以阿里云的云服务器ECS为示例,展示如何从零开始使用云服务器(其实也是作者实况记录自己操作过程)。
当然,本文不是给阿里云打广告,实际上你大可以购买其他云服务商的云服务,这取决于你自己。
比如关于华为云服务器的初次使用,可以参考我的另一篇文章《云服务器的入门配置及SSH连接(基于华为云服务器)》
本文基于的服务器实例情况如下图所示
特别说明:如何挑选云服务器不在本文讨论范畴。
特别说明:作者对云服务器的使用也是新手,本文也仅仅是入门使用,还有更多深入的内容,仍旧需要通过更多的资料和实践进行学习。
特别说明:如果仅仅是需要一个其他系统环境(通常是Linux),且不需要长时间保持稳定运行,则其实更建议在自己电脑上搭建虚拟机(毕竟不花钱)。
二、控制台
既然是购买云服务,如果你买了,那么一定是已经登录了云服务商的平台。
在阿里云首页,点击右上角的控制台选项,进入控制台。
在控制台页面,点击开通资源中心。
点击后等待一会儿,让阿里云构建完资源数据。
注:实测结束后不会自动刷新页面,所以需要手动刷新一下页面,然后就会出现下图内容
点击第一个服务器资源。
下图可以看到服务器的相关信息。
注:建议点击右下角位置安装插件,方便观察使用率信息
点击安装插件则会打开下方页面的新标签页(如果不需要安装,可以跳过这个环节)
可以选择自动安装或者手动安装,我这里图个方便就选择了自动安装。
二次确认。
过一两分钟后刷新可以看到使用率数据就出来了:
然后你可以在这里创建报警规则,例如CPU负载很高的时候发短信通知你之类的。
三、写在前面
回到刚刚的服务器实例控制台页面(实际上就是关闭刚刚的那个云监控标签页)
官方其实都已经提供了便捷的文档查找功能,只需要点击右侧的这个放大镜。
手动检索,或者输入关键词检索
比如我输入“安全组”,就会自动检索相关文档
四、安全组
点击左侧的安全组菜单,即可进入下图页面。
阿里云会默认创建一个安全组,并且这个安全组会直接绑定到服务器上。
先不着急操作。
对安全组这个词还很默认的话,建议先点击右上角的问号,查看一下阿里云提供的说明文档,理解一下安全组的概念。(建议看时,鼠标放在文档位置,点击鼠标右键,新建标签页来看)
基本上官方的介绍很详细了,我就不再补充了,下面的操作将默认你已经大概知道什么是安全组。
点击“管理规则”,查看一下这个安全组的详细信息。
配置安全组规则前,建议先阅读阿里云的这篇文档:《安全组规则》
默认安全组的入方向:
默认安全组的入方向为开放22端口(SSH链接)、ICMP(用于ping)、3389端口(RDP,远程桌面协议服务)
默认安全组的出方向:
默认安全组的出方向是不做限制。
接下来,我们就做一些前置准备,然后再进行配置安全组。
首先,安全起见,你想哪些端口可以被访问,就配置开放哪些端口,其余的应该都关闭掉。
其次开放出来的端口,是只想给自己访问?还是允许所有人访问?如果是只想给自己访问。
如果只想开放给自己访问,则如何查自己的公共IP地址(注意,用 ipconfig 查到的 192.168.0.xxx 其实是局域网IP)
注意:公网 IP 地址分为两类:固定公网 IP 和动态公网 IP
注意:一般来说,现在租用宽带上网,公共IP地址都是动态的,即每次上网都分配一个IP地址,这个IP地址可能跟上次上网的IP地址相同,也可能不同,大多数情况是不同的。除非你去找运营商申请一个公共IP(不同地区政策不大一样,具体得问运营商),否则默认情况下通常都是动态的。
查当前的公共IP地址实测:(bing搜索可以、360搜索可以、百度搜索不行)
现在假设我的固定公共IP地址是:10.0.0.1/32(实际要换成你自己的公共IP地址),而且我是只想让端口被自己访问。
(如果自己的IP只能是动态的,那么只好把源地址配置成IP网段或者全网)
阅读常用端口文档
特别说明:授权对象写0.0.0.0/0表示允许所有IP远程连接实例。请您根据实际业务需求,按照最小范围开放原则配置安全组规则,尽量避免全开(慎用::/0或者0.0.0.0/0)以免引发安全问题。
现在,返回到安全组首页,新建一个安全组(如果你要在默认安全组上直接操作就不需要创建新的安全组,但是个人建议是用新的安全组)
新安全组的页面如下图所示:
可以看到,已经默给你配置了一些端口协议的入方向策略,不过都是允许所有IP远程连接实例。理论上来说,这样是不需要的,一般需要依据实际情况来修改。
点击 快速添加,可以在弹出来的弹窗中快速添加常见的端口规则。
快速添加的弹窗
如果是点击手动添加,则需要手动输入规则信息。
点击手动规则后:
例如这是我填写的
出方向一般不会去限制,即允许服务器任意主动访问外部,新手可以不去管。
添加完毕后,点击 创建安全组,即可真正创建好我们新建的安全组。
回到实例页面,点击实例的ID
先选择安全组,再点击修改安全组。
把安全组修改为我们刚刚编辑好的安全组。
至此,服务器实例的安全组就变成我们配置的那个。(安全组可以添加多个,生效情况取决于你配置的规则优先级)
下图中的菜单项可以看最终生效的规则。
如果后续有开放端口的变更,只需要在刚刚的编辑安全组的页面修改安全组里的规则即可。不需要重新给服务器实例修改配置的安全组。
五、点击开通防火墙防护
很贵,有需要再开
六、重置密码(非必须)
我看阿里云文档有说在创建实例的时候就会要求设置root账号的密码,但是我印象中不记得有这回事(或者可能我忘了)
如果你像我一样忘记了密码,那么可以点击 重置密码。
设置好密码后,点击确定保存即可。
等流程走完,就ok了。
七、服务器防火墙
云服务器有两道防火墙,一个是刚刚我们操作的安全组,一个是Linux自带的防火墙。
实测阿里云服务器的Linux自带的防火墙并未开启。
不行你可以执行一下:sudo ufw status
执行前,可以先看一下防火墙里配置的规则。
配置需要开放的端口,如22、3306之类。
Ubuntu防火墙允许外部访问端口(以12300为例):sudo ufw allow 12300
Ubuntu防火墙删除增加的规则(以12300为例):sudo ufw delete allow 12300
启动的话,很简单,执行:ufw enable
八、安装OpenSSH Client
8.1 前言
首先,需要一个SSH连接工具,现在也有很多开源的免费的工具,选择很多,随便去查一下就能找到,所以这里不进行赘述。
所以,这里我要试着用一个免费的SSH工具来做示例(实际上你完全可以用和我不一样的SSH工具,毕竟原理上都差不多)
故而,本文以Windows的OpenSSH客户端为例讲解。
微软官网关于OpenSSH的文档:《适用于 Windows 的 OpenSSH 入门》
如果你不想去看,则下面有操作流程。
8.2 检测是否已安装OpenSSH客户端
先进入设置页面
在设置页面选择应用
然后选择可选功能
再检索OpenSSH客户端是否已经安装(下图是已经安装了)
8.3 安装OpenSSH客户端
如果你在上一步里发现,没有安装OpenSSH客户端,则可以按照以下流程进行安装。
(为了展示如何安装,我特意把OpenSSH客户端给卸载了)
点击查看功能
然后检索OpenSSH客户端
勾选
点击下一步
再在新的弹窗中,点击安装
等安装好了,就行了。
(其实还有利用powershell命令的方式进行安装的途径,但是不如这种图形界面的途径简便,所以没有展示,如果有需要则可以阅读前面提供的官方文档)
九、远程连接到服务器(OpenSSH)
输入命令:ssh root@服务器公网IP
例如:ssh root@123.45.67.23
如果是第一次连接,则会要求你进行确定连接,输入 yes 即可。
然后输入root账号的密码。
即可完成连接。
此时,你就可以在服务器上执行命令,做各种操作了。
例如,ping百度。
(挺神奇的是,阿里云的这个服务器居然能解析域名,之前我在华为云上试就不行,必须用IP才行)
十、解决 SSH 自动断开连接的问题
10.1 前言
当实际利用OpenSSH客户端操作时,你会发现,过一段时间SSH连接就会自动断开(实测我这台服务器,5分钟不操作就会断掉,仅限我这个服务器)。
这主要是防火墙以为SSH连接已经不活跃了,所以直接把连接干掉。
那么,我们要做的,就是让SSH连接保持活跃。
解决方式有三种:
改服务端sshd配置
改客户端ssh配置
在ssh的命令参数中加配置。
其实意思都一样,就是要有一方在那里始终活跃,避免连接被判定不活跃,然后被干掉。(还有一种小题大做的,就是去改防火墙配置,本文不讨论)
建议补充阅读文章:
10.2 改服务端sshd配置
不是很推荐,但是这里提供操作方式。
此处操作内容来自于阿里云官方文档(未进行实践):《Linux实例如何设置SSH客户端的会话连接保持时间》
步骤① 编辑/etc/ssh/sshd_config文件
步骤② 添加配置项:
ClientAliveInterval 60
ClientAliveCountMax 300
步骤③ 重启sshd服务,使配置生效
执行命令:systemctl restart sshd
说明:
ClientAliveInterval:设置超时间隔(以秒为单位),在此间隔之后,如果尚未从客户端接收到任何数据,则sshd将通过加密的通道发送消息以请求客户端的响应。默认值为0,表示这些消息将不会发送到客户端。(其实就是多久发送一次消息,成功交互,就让连接保持活跃)(这个时间一定要设置得比防火墙以为SSH空闲的时间阈值小,不然就没意义了)
ClientAliveCountMax:设置客户端活动消息的数量,该消息可以在sshd接收不到来自客户端的任何消息的情况下发送。如果在发送客户端活动消息时达到此阈值,则sshd将断开客户端连接,从而终止会话。(ClientAliveInterval 的保持活跃的交互失败时,最大连续尝试连接次数)
10.3 客户端做配置
本文实际为给OpenSSH Client增加配置
步骤① 到达OpenSSH的默认配置文件路径:C:\ProgramData\ssh
步骤② 如果在ssh文件夹下,无配置文件,就新建配置文件 ssh_config
如果你发现你只能创建文件夹,而无法创建文件,那就对了,因为当您在Windows 11上打开文件资源管理器时,默认情况下,它以标准特权打开,此时你的权限不够操作。
(如果你实践时发现已经有权限操作,就不需要额外进行下面描述的配置权限的行为)
所以,我们现在要做的就是让自己先有这个权限(有两种方式,一种是以管理员权限操作文件夹,一个是暂时给普通用户提供权限)。
这里展示的是暂时给普通用户提供权限的方式。
在ssh文件夹中,点击鼠标右键,选择属性,再在属性页面里选择安全。
选择Authenticated Users,然后点击编辑
勾选写入,点击确定
此时已经具备权限了,所以继续创建文件 ssh_config。
保存时会提示说需要提供管理员权限,那就点击继续,提供对应权限。
创建文件后的文件夹
编辑ssh_config文件
添加配置:
ServerAliveInterval 60
ServerAliveCountMax 3
说明:
ServerAliveInterval 设置超时间隔(以秒为单位),在此间隔之后,如果尚未从服务端接收到任何数据,则ssh将通过加密的通道发送消息以请求服务端的响应。默认值为0,表示这些消息将不会发送到服务端。(其实就是多久发送一次消息,成功交互,就让连接保持活跃)(这个时间一定要设置得比防火墙以为SSH空闲的时间阈值小,不然就没意义了)
ServerAliveCountMax 设置活动消息的数量。如果在发送服务端活动消息时达到此阈值,则ssh将断开连接,从而终止会话。(ServerAliveInterval保持活跃的交互失败时,最大连续尝试连接次数)
添加配置后记得保存。
录入值后
此时,再建立的新的SSH连接就不会自动断掉了(如果客户端和服务器一直是通的话)
别忘了,可以按照上面修改文件夹权限的步骤,把普通用户的写入权限取消掉。
10.4 命令中添加参数
这种方式其实就是临时给一个会话设置这个不会自动断连的效果:ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 root@服务器IP
此时的SSH连接也不会自动断掉(如果客户端和服务器一直是通的话)