在很多情况下,我们需要对电脑进行远程操作,这一章我们就来聊一聊远程操作电脑的不同方法。首先我们会学习如何使用ssh进行安全登入,然后使用Team Viewer这个工具,对电脑进行远程图像化操作,之后我们会学习使用scp在不同电脑之间传输文件。最后,我会演示一下如何使用Python脚本简化我们的运维流程。为了帮助大家更好地理解云服务器,我会在延伸内容中演示创建AWS云服务器的流程,并使用VNC进行远程图像化界面操作。

远程操作

SSH安全登入

若想要从外界安全登入我们的Linux操作系统,我们可以使用SSH这种用于加密登入的网络协议,首先我们在Linux中先安装一个叫openssh-server的软件:

$ sudo apt-get install openssh-server

注意:如果安装时有碰到Lock的问题,请使用以下的命令来解决:

$ sudo killall apt apt-get
$ sudo rm /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock*

因为我们使用的是虚拟机,我们需要对系统的网络进行额外设置:在Virtual Box点击对应的操作系统,点击Settings > Network,将原来的Attached to改为Bridged Adapter,名字改为en1: Wi-Fi (AirPort):

之后我们需要得到Linux系统的ip地址和网络接口的信息,首先在Linux中需要安装 net-tools 软件,然后使用 ifconfig 查看网卡具体内容:

$ sudo apt install net-tools
$ ifconfig

我们就能得到 enp0s3 网卡的具体信息,其中的inet(192.168.1.23),netmask,boradcast分别代表了ip地址,子网掩码,广播地址。得到ip地址后,我们就能尝试远程登入Linux了。

用Mac的朋友打开Terminal输入以下的指令,系统会提示你输入用户的密码,验证完成后就可以进入我们的Linux操作系统了,之后的指令操作也都会在Linux中生效。(需要把命令行中的enoch换成你Linux系统用户名字,ip地址也需要换成自己的)

$ ssh [email protected]

使用的Windows的同学可以下载Putty,然后运行Putty即可进行相同的操作。(下载和安装Putty的教程很多,请大家自行Baidu或Google吧。)

TeamViewer图像化远程操作

ssh的连接是最方便和快速的,但如果想要用图像化的方式来控制电脑,我们可以使用Teamviewer这个软件来进行远程操作。

首先在Linux内,使用火狐游览器登入TeamView官方下载界面,下载*.deb安装包(x86 64bit版本),下载完毕后进入Downloads文件夹,然后运行以下的指令:

$ cd ~/Downloads
$ sudo dpkg -i teamviwer_14.7.1965_amd64.deb
$ sodu apt-get install -f

然后打开Team Viewer查看Team Viewer为Linux系统分配的用户ID和密码:

然后在本地电脑也下载TeamViewr,在Control Remote Computer那一块输入用户的ID和密码就能对Linux进行图像化远程操作了。

scp 文件传输

如果想要将在不同电脑之间传输文件,我们可以使用scp指令。

将本地文件 file1.txt 传到Linux系统的桌面上:

$ scp ./file1.txt [email protected]:~/Desktop

在本地的Terminal中将Linux系统中的文件 file2.txt 复制到本地

$ scp [email protected]:~/Desktop/file2.txt ./

Python脚本编辑

我们已经学习了这么多操作指令,如果想要更加便捷地操作Linux系统,我们需要学习脚本语言来简化我们的运维工作,Python是一门强大的脚本语言,以下我们就来学习如何使用Python辅助运维的工作。

首先我们先要在Linux中安装Python,进入桌面创建一个file1.txt,再编辑一个新的Python文件,叫copy.py:

import os
os.system('cp file1.txt file2.txt')

在Terminal中运行此文件,桌面上就有了一个新的file2.txt文件了:

$ cd ~/Desktop
$ python3 copy.py

Python可以实现我们之前所有学习的指令操作,如果想要对Python有更多深入的朋友可以查看已经发布的《Python一周入门系列》,将Python化为手中的利器,强化自己的运维能力。

AWS云服务和VNC

接下来我要介绍AWS云服务,很多大型网站的服务器都是基于这个平台的。亚马逊提供的云服务安全稳定,所以很多用户在他们平台中租用服务器进行部署,以下我就来演示以下如何创建在AWS中创建自己的EC2,并使用VNC进行远程图像化界面操作。

首先登入AWS的官网,注册一个AWS账户,然后开始创建自己的Instance,这类的教程很多,我就不展开了,大家可以查看视频版来跟着操作,简单来说使用以下的步骤即可:

  1. 选择AWS EC2 ubuntu
  2. Lauch a instance
  3. Download the keypair
  4. Assign security group for ssh(ssh, 0.0.0./0)

之后在本地电脑中使用以下的指令进行登入:

$ chmod 400 ./aws_key_pair.pem
$ ssh -i ./aws_key_pair.pem [email protected]

VNC

创建好我们的云服务器后,我们可以使用VNC对云服务器进行远程图像化操作。(VNC是一款优秀的远程控制工具软件,由著名的AT&T的欧洲研究实验室开发)

首先我们需要登入亚马逊服务器,然后用下面对指令安装需要的包:

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal xfce4 vnc4server

安装完毕后,输入以下的命令,设置vnc连接的密码:

$ vncserver # Enter password after

然后修改 ~/.vnc/xstartup 文件,将下面的内容放入其中:

#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

然后退出Linux系统,用以下的命令重新登入:

$ ssh -L 5902:localhost:5902 -i ./aws_key_pair.pem [email protected]

输入以下的命令开启vncserver:

$ vncserver -geometry 1340x750

接下来我们就可以开始尝试从本地进行远程操作了,首先登入VNC官网,在本地电脑上下载 VNC Viewer,安装完毕VNC Viwer后,在本地的电脑中打开RealVNC,连接到 localhost:5902,就能看到Linux中的图像界面啦~

Mac的朋友也可以使用screen share来连接VNC:打开screen share,输入loclahost:5902即可查看。

实践练习

在自己的Linux桌面创建3个文件:file1.txt,file2.txt和file3.txt,然后编辑一个Python脚本,将这三个文件放到一个叫new_folder的新文件夹中。