前言

各大厂商持续发力云计算,上云的门槛也越来越低。获取云服务器的门槛越来越低,但是真正使用好云服务器的难度一直都很高。本文旨在为新上云的小白提供方向性的指引并引导入坑  : )

云服务器相关的几个概念

服务器的操作系统

主要分为两大阵营:Windows Server 和 Linux Server。前者一般自带可视化界面,基本兼容平时使用的 exe 程序,某种程度上也可以作为“云电脑”使用。后者一般不自带图形化界面,操作都通过特定命令完成,上手难度较高,但配置各种开发环境、安装各类高级工具比 win 平台更容易。没有 Linux 基础的用户建议先在本地建立虚拟机练习。

Linux Server 主要的两个阵营为 Debian 系、RedHat 系。主要的发行版

  • Debian 系:Debian, Ubuntu
  • RedHat 系:RedHat, CentOS, Fedora

对于初学者来说,最明显的区别在于前者使用 apt install xxx  来安装软件,而后者是通过 yum install xxx  来安装。

公网 IP

IP 可以理解为一台设备在互联网世界中的门牌号和地址,相当于知道某个具体的地址就能发快递包裹。IP 分为公网 IP 和内网 IP。顾名思义,内网 IP 一般用于公司或学校内部。一般来说,只知道一台设备的内网 IP 的情况下并不能准确定位这台设备,就类似于只知道你的朋友的名字,并不能直接给他寄快递,你必须要知道他学校/单位/家的地址才行。

服务器拥有公网 IP 的好处在于,你可以直接通过这个 IP 定位到你的服务器,相当于你的服务器在互联网世界中拥有了响当当的名号,只要说出这个名号,互联网世界的公民都能知道他,给他发消息。

*此处公网内网 IP 的叙述仅适用于 IPv4 地址。更多关于 IPv4 地址和 IPv6 地址的相关信息参见文末扩展阅读。

端口 

端口的英文为 port,有港口的意思。一般来说,一台设备不同的端口运行着不同的服务,我们可以很好的控制特定端口的开放与关闭,从而控制不同的服务是否对外开放,正如开放一个通商口岸。常见的服务端口有 HTTP  80   HTTPS  443   DNS  53   SSH 22  

一个服务也可能不是仅仅通过一个端口提供服务,他可能会将一个大的功能拆分为几个子功能,通过不同的端口与外界通讯。如 FTP,SMB 等。你可以通过关闭指定端口来详细控制特定服务。当然如果你想想外面提供像 FTP 这样通过多个端口与外界通讯的端口,就要注意要确保他使用的所有端口都要设置为开放才能保证外界的正常访问。

*FTP 是一种文件传输协议,你可以在某些电影资源的下载链接里看见以 ftp://  开头的链接。这说明这个电影资源是存放在某个 FTP 服务器上。 *关于 FTP、SMB 的端口使用及配置参见文末扩展阅读

防火墙

防火墙(Firewall)某种程度上是控制本机与外界通讯的工具。下面以几个具体的实例来介绍下防火墙:

  • 你的服务器建了个网站,需要向外提供 HTTP 服务,那么你需要在防火墙中设置开放 80 端口,允许其他所有 IP 访问。
  • 公司有一台服务器搭载了一个仅面向公司员工的网站,希望仅允许公司内的员工访问。而公司内员工的内网 IP 个格式为 192.168.*.,那么就可以在防火墙中设置,仅允许来自 IP 为 192.168..*的设备访问这台服务器的 80 端口,其他一律禁止
  • 近期互联网上流行一种病毒 X 通过计算机的 1234 端口感染其他机器。那么为了保护本机不受病毒影响,你可以在防火墙中设置关闭 1234 端口,禁止任何来源访问 1234 端口,从而将病毒 X 阻挡在防火墙外。

注意:对于云服务器来说,可能会存在多重防火墙。一般 Linux 系统自身会有一套防火墙(firewalld/ufw 等),云服务商会有一套网络防火墙(一般为网络安全组/网络访问控制等)

几种远程连接方式对比

连接方式 SSH VNC RDP
支援平台 Linux,Mac OS,BSD…,Win 需额外安装软件 Linux,Win,Mac OS,iOS,Android 等,基本所有都需额外软件 * Win 自带,其他需额外安装软件
易用性 ★★★ ★★★*
可视化界面
网络要求 极低 较高
配置难度 ★★★ ★★
  • 1 部分 Linux 发行版自带 VNC 连接,不过大部分需手动启用
  • 2 RDP 连接对于同为 Win 的机器更为容易,对于平台不一样的情况,配置比较麻烦

快速入门须知

当你拥有了一台属于自己的云服务器,你发现面对复杂的控制台手足无措,不知道怎么连接,不知道能拿来干什么。那么你可以参考一下的步骤。下文仅适用于 Linux Server & 有一点点 Linux 操作经验的选手

开启 SSH 远程连接

服务器端设置

1.首先,登陆你的账户,打开云服务器的控制台,开机(不解释)   2.定位到你的云服务器,一般新的账户只有一台云服务器实例,点击其菜单,找到远程连接选项   3.接下来会打开一个网页端的黑框,根据其提示,设置实例密码等等。这里记录你的系统用户名和密码。 4.一般网页端会有提示,根据具体情况开启 SSH 服务,设置允许 root 权限远程登录。具体的操作因平台和操作系统不同而不同,此处不再赘述。 5.现在到服务器菜单里找到网络设置/防火墙设置/网络安全组设置,点击进入,开启服务器 22 端口的访问权限

接下来在你的电脑上配置 SSH 远程访问。 

本地电脑设置

1.1 Win10 用户和 Linux 用户、Mac OS 用户一般系统会预装 ssh 客户端。打开 CMD 命令控制符/PowerShell,输入 ssh 回车看是否有反应。如果没有提示 xxx 找不到,可以直接到步骤 2.1

1.2 如果没有反应,你需要到 设置 - 应用 - 可选功能 中,安装 SSH 客户端。

1.3 Windows 其他版本用户需要安装第三方 SSH 客户端。这里推荐使用 Putty。

2.1 接下来使用 ssh 你的用户名@你的服务器IP 来连接到你的服务器。注意At 符号@前后没有空格,输完回车确认。正常情况下可以成功连接到。

2.2 如果出现 Permission denied,可能的原因有用户名密码错误 / 未开启root账户远程登录

2.3 如果出现 Connection time out,则大概率是你IP地址填写错误,也有可能是你的服务器没开机/ 你的服务器系统没有默认开启ssh服务/ 防火墙未放行22端口

排查相关问题请带上相关关键字去搜索引擎搜索。

安装软件

安装软件的命令及常见问题

参见上文介绍操作系统的部分。不过具体安装的时候,经常会遇到的问题为安装需要 root 权限。一般来说,日常使用时为了安全期间,我们不会直接用 root 账户进行操作。通常的做法为创建一个普通的账户,当执行需要高权限的指令时在命令前加上 sudo,或是使用 su root  来临时切换为 root 用户*,并输入密码来进行二次确认,以确保安全性。此处涉及到的操作有:  

  • 添加一个普通用户 ( useradd NEWUSERNAME  /  adduser NEWUSERNAME  )
  • 设置新用户的密码  ( passwd USERNAME  )
  • 将新用户添加到 sudoers 的列表中  ( 修改 /etc/sudoers  ) 

具体操作可以以  操作系统名称+操作关键字  为关键字在搜索引擎中自行搜索详细教程。

*临时切换为 root 用户,执行完命令后,记得用 exit 命令退出 root 账户

镜像源的设置

执行完上述命令,当你尝试安装一个软件时,如果你云服务器提供商没有为你的系统进行“优化”的话,你会发现安装软件的速度非常慢。这是因为这些 Linux 系统基本都是由国外的厂商/组织进行开发,安装软件时需要到位于国外的服务器获取数据,你的网络请求可能会跨越大半个地球,网络速度也随着传输距离的增加不断减小*。国内有很多组织建立了公益性质的镜像站点,我们可以将安装程序的软件源设置为位于国内的镜像站点以大大提高软件安装下载的速度。 国内的镜像站点有阿里云镜像站清华大学 tuna 镜像站中国科学技术大学开源镜像站等。这些站点提供多种主流 Linux 发行版的软件安装源的镜像。不同操作系统更换软件源的操作有所不同,可以到以上镜像站点中查找特定系统更换软件源的详细步骤。

*请注意此处叙述并不准确,与一个站点通信的速度取决于很多因素。

常用工具的安装

更换好了软件源后,我们就可以愉快的安装软件了。你可以尝试安装一下 screenfetch  的软件包进行测试,安装完成后输入 screenfetch  命令,他会在你的屏幕上输出字符画形式的系统图标和系统配置信息。

部分 Linux 发行版可能并没有预置很多的软件包,你可以根据自己的需要进行安装,如文本编辑工具 nano  vim  等*。C 编译工具 gcc  ,C++编译工具 g++  ,Java 开发组件 openjdk  等。

*推荐初学者使用易于上手的 nano  文本编辑器。大部分 Linux 发行版都有预置。

初级玩法

其他高级玩法

参见:知乎问答:自己拥有一台服务器可以做哪些很酷的事情?

扩展阅读