本篇博文是从我的公众号转过来的,请尊重作者的劳动成果,未经允许请勿转载!值得说明的是,本篇博文主要适用于使用Python的同学。

目录

  • 0 引言
  • 1 本地PC(windows)如何远程连接云服务器
  • 2 刚拿到云服务器以后的一些基本操作
  • 3 如何将项目部署到云服务器上并运行
  • 4 如何使用Pycharm调试云服务器上的代码
  • 5 如何使用图形桌面访问云服务器
  • 参考资料
  • 联系我

0 引言

    因为疫情的关系迟迟没有开学,磕盐和项目的工作都没办法开展。有的同学就说了,可以用Teamviewer、Splashtop之类的软件远程控制实验室电脑来搬砖。当然如果有先见之明,之前在实验室电脑里装了这类软件,可以出门左转回去继续搬砖了。如果很不巧,实验室电脑不能远程控制,然后自己的电脑能力又不够,那么就需要租一台高性能的云服务器来“云搬砖”。
    因为我自己有一个阿里云乞丐版ECS云服务器平时在用,就以阿里云ECS云服务器作为例子,其他的云服务器也是大同小异的。
    我的服务器操作系统是Linux,发行版本的Ubuntu 16.04LTS(在配置的时候大多数地方与18.04版本没有区别)。如果发行版本是Centos或者Kali的同学,具体的操作会有很多不同,但是大致的思路是一致的。
    

1 本地PC(windows)如何远程连接云服务器

    首先需要下载两个软件:PuTTY、WinSCP
    利用PuTTY我们可以远程连接云服务器,并获得一个Terminal,在Terminal中我们可以通过命令行对服务器进行操作。利用WinSCP我们可以很方便地操作云服务器的文件系统,可以很方便地对云服务器里的文件和目录进行下载、上传、重命名、改变属性等等。下面来看一下具体怎么使用。


    一打开PuTTY,默认就是第一幅图的位置(Session选项中)。
    在“1”位置中填写云服务器的公网IP地址;
    在“2”位置中填写云服务器开放的端口号(阿里云ECS默认是22,其他云服务器请自行查看云服务器的远程连接信息)。
    然后,点击左侧“Connection”,到了第二幅图的位置。
    在“3”位置中填10。这里填10的意思是每隔10秒向云服务器发送一个空数据,保证云服务器与PuTTY的连接一直处于活跃状态,防止长时间没动它就断连了。
    做完这些,就可以敲“Open”开始连接云服务器了。


    显示这个界面说明你和云服务器的通信应该是没问题的,只要登陆就行了。“login as:”这里输入用户名,具体用户名自行查看云服务器的远程连接信息。接着输入密码就可以访问你的云服务器了。


    如果看到这个界面,那么恭喜你,你已经成功连接上了云服务器。现在可以通过命令行来操作服务器了!
    请注意一点,当你用完云服务器的时候,请不要暴力的直接右上角叉掉!


    正确的关闭方式是在命令行下输入exit。当然有的时候输入一次exit无法直接关闭,需要输入两次exit才能关闭。
    如下图所示,有的时候需要输入两次exit,是因为你在前面操作的时候获取了管理员权限,第一次exit的时候是注销管理员,第二次exit才是关闭。


    如果嫌输入exit太麻烦的话,可以通过快捷键“Ctrl+D”来注销和关闭。

    接下来就是使用WinSCP来操作云服务器的文件系统。

    一打开WinSCP会弹出上图这样的窗口,选择“新建站点”。
    在“1”位置选择和你云服务器对应的文件协议;
    在“2”位置填写云服务器的公网IP地址;
    在“3”位置填写云服务器开放的端口号;
    在“4”位置填写登陆云服务器的用户名(对应上面PuTTY里“login as:”的位置);
    在“5”位置填写云服务器登陆密码。
    以上做完以后点击“保存”,就会弹出下图的窗口。


    在“7”位置可以设置新建的站点名称;
    “8”位置建议两个都勾选,这样下一次直接在桌面双击新建的快捷方式就可以直接连接云服务器的文件系统。


    登陆以后看到这个界面,那么恭喜你,你可以操作云服务器的文件系统了!


    需要注意的是,如果长时间没有操作的话WinSCP可能会断连。
    解决方法是,打开“选项”,选择远程,勾选“刷新远程面板间隔”,设置的时间我这里和PuTTY里的设置一样为10秒。


    同样的,用完WinSCP以后,请不要暴力关闭!
    正确的关闭方式是点击“会话”,选择“断开连接”。

    以上就是本地PC远程连接云服务器的操作方法。
    

2 刚拿到云服务器以后的一些基本操作

    首先说一下,这些仅代表我个人想法,每个人的操作不同,我的分享仅供参考。
    一般来说新服务器apt的默认源是国外的,更新起来速度比较慢。
    所以拿到新服务器的第一步是:修改默认的国外源为国内源
    首先,备份一下默认源的文件:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

    接着,使用vi打开源的文件:

sudo vi /etc/apt/sources.list

    然后,将sources.list的内容更改为国内源的地址。
    这里需要特别注意一点,Ubuntu不同版本对应的系统代号不同:
    Ubuntu 12.04(LTS)代号为:precise
    Ubuntu 14.04(LTS)代号为:trusty
    Ubuntu 15.04代号为:vivid
    Ubuntu 15.10代号为:wily
    Ubuntu 16.04(LTS)代号为:xenial
    Ubuntu 18.04(LTS)代号为:bionic
    以阿里源为例(其他源地址自己百度),我的版本是Ubuntu 16.04LTS,那么应把sources.list里的内容改为:

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse

    保存后,更新apt源是否配置成功,Terminal中输入:

sudo apt-get update

    如果没有报错,并且显示类似下图,说明配置成功了。


    接下来,我会选择安装tree,使用tree可以很方便的在Terminal中查看当前文件目录,提高服务器的使用效率。
    所以第二步是:安装tree
    在Terminal中输入:

sudo apt-get install tree

    云服务器就会自动完成安装。看到类似下图这样的返回,说明安装成功了。


    在任意位置输入tree,就以当前文件为父文件夹,以树状结构返回所有子文件夹的信息,如下图所示。


    接下来主要是针对python的操作,如果不用python的可以跳过了。
    Python绝大多数包我们都是通过pip来完成安装。pip默认的源也是国外的源,速度很慢。所以,我们实际用的时候要用国内的源。
    第三步:配置pip源
    首先贴出一些国内源的地址:

清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
阿里云:http://mirrors.aliyun.com/pypi/simple/
豆瓣:http://pypi.douban.com/simple/
中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple/

    这里有两种方法:一种临时的,一种永久的。
    临时的方法就是每次在使用pip安装的时候,加上“-i 源地址”,例如:

sudo pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/

    临时的方法,配置简单,但是每次都要复制一遍地址,挺麻烦的。
    所以,使用永久的方法,一劳永逸地解决这个问题。
    首先,在云服务器原始目录下创建一个“.pip”的文件夹,然后进到这个文件夹里:

mkdir ~/.pip
cd ~/.pip

    然后,在这个文件夹下创建一个“pip.conf”文件,并用vi打开这个文件:

touch pip.conf
sudo vi pip.conf

    然后,在“pip.conf”内输入如下内容(以清华源为例):

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn

    保存后,更新一下pip检查一下是不是成功了:

sudo pip install --upgrade pip

    如果返回中出现了对应源的地址说明配置成功了,如下图,以后可以放心地用pip了。


    配置好pip源以后,自然而然地就是装各种包。
    第四步:pip安装各种包
    输入以下命令:

pip freeze

    它会返回现有的python包以及版本,如下图。


    常用的python包及其安装如下:

sudo pip install numpy
sudo pip install matplotlib
sudo pip install pandas
sudo pip install scipy
sudo pip install scikit-learn
sudo pip install scikit-image
sudo pip install opencv-python

    有很多的包需要外部库的支持,所以不在这里列举过多。像tensorflow、pytorch还有caffe之类的框架安装起来比较麻烦(特别是caffe,坑很多),以后再说,这里就不多说了。
    

3 如何将项目部署到云服务器上并运行

    这里我们只讨论Python项目。但是这个方法对于其他语言的项目部署也是可行的。
    我们可以通过WinSCP把python代码文件上传至云服务器中,然后再在PuTTY中用python调用相应的代码文件。
    下面这个视频做了一个简单的演示。
    演示视频传送门
    

4 如何使用Pycharm调试云服务器上的代码

    写python的同学绝大多数都用Pycharm,但是大家可能不知道,Pycharm其实可以进行远程调试。
    使用这个方式,效率上要比使用WinSCP上传代码文件要高一些。但是这个方法只针对Python语言且使用PyCharm的用户。
    下面来看具体怎么操作。

    首先打开Pycharm,在菜单栏上选择Tools -> Deployment -> Configuration,进行云服务器连接配置。


    点击“+”创建一个新的服务器连接,注意这里要选择和你云服务器对应的文件协议。


    我的云服务器是SFTP文件协议,就以SFTP为例。
    在“1”位置填写云服务器公网IP地址;
    在“2”位置填写云服务器开放的端口号;
    在“3”位置填写登陆云服务器用户名;
    在“4”位置填写云服务器登陆密码;
    在“5”位置填写你的项目根目录在云服务器上的地址。


    填写完毕后点击“Test Connection”测试和云服务器的连接。


    如果弹出这样的提示框,说明PyCharm已经可以连接云服务器了!


    然后进入“Mappings”选项配置,检查一些地址映射的配置。
    因为我们在前面Root path里面已经填写了项目的根目录地址,所以这里就不用再做其他的配置了,在“Deployment path”和“Web path”里填一个“/”即可。

    为了使本地的Python解释器和云服务器的Python解释器一致,接下来我们配置Python解释器。


    打开“Setting”找到“Project Interpreter”,点击红色框中的小齿轮,点击“show all”,打开下图界面。


    然后点击“+”号添加一个新的Python解释器


    为了和云服务器的Python解释器一致,选择“SSH Interpreter”。
    在“1”位置填写云服务器公网IP地址;
    在“2”位置填写云服务器开放的端口号;
    在“3”位置填写登陆云服务器用户名。
    填写完后,点击“Next”。


    输入密码后点击“Next”。


    这里默认红框中是勾选的,我们取消勾选,因为我们要用刚刚在配置连接的时候配置的地址,这里就不用它的默认地址。


    这样我们就完成了Python解释器的配置,我们把本地项目的解释器改成这个解释器,就可以让本地使用云服务器的Python解释器了。

    现在配置完毕后,我们来检查一下本地项目和云服务器上的项目目录。


    可以看到,本地项目目录下有“init.py”文件;
    云服务器项目目录下没有“init.py”文件。


    点击“Upload to xxx”,将本地项目目录下的“init.py”文件上传至服务器。


    可以看到,“init.py”代码文件成功上传到云服务器项目目录下了。


    接着,在本地项目目录下创建一个和云服务器项目目录下同名的“hello.py”文件。


    可以看到,本地项目的“hello.py”里面是空的,云服务器里的“hello.py”是有内容的。


    点击“Download from xxx”,将云服务器里的“hello.py”下载到本地项目目录下。


    下载完成后,可以看到云服务器上的“hello.py”覆盖到本地项目了。


    现在我在本地对代码进行改动,改动完后点击“Sync with Deployed to xxx”。


    会弹出这样一个窗口,左下方是本地改动后的代码,右下方是云服务器上的代码。
    “1”按钮是只同步当前代码文件;
    “2”按钮是同步所有代码文件(当有多个代码文件的时候慎用)。


    完成同步后,看到云服务器上的代码和本地的代码一致了。

    通过PyCharm的这些功能,我们完全可以在本地很方便地调试云服务器上的Python项目。
    

5 如何使用图形桌面访问云服务器

    这里绝对是大家最喜欢的东西,因为绝大多数同学不喜欢操作命令行,有图形桌面点起来才香!

    首先我们先对云服务器做一些配置。
    第一步:在云服务器上安装vncserver

sudo apt-get update
apt-get install vnc4server

    第二步:在云服务器上安装桌面软件

apt-get install ubuntu-desktop

    第三步:启动vncserver

vncserver :1


    这里会让你设置一个密码(最长只能8位),这个密码需要记住,待会儿远程连接的时候要用到。
    确认密码以后,看到类似红色框中的“New xxx”的字样就说明vncserver启动成功了。
    然后我们关闭刚才启动的vncserver做进一步配置:

vncserver -kill :1

    第四步:修改vncserver的启动文件

vi ~/.vnc/xstartup


    打开“xstartup”文件后看到的是这样的。
    然后把它里面的内容改成下面这样,然后保存。

#!/bin/sh# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
# x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
# x-window-manager &gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

    第五步:再次启动vncserver

vncserver :1

    第六步:查看vcnserver服务使用的端口号

ps -ef | grep vnc


    从返回可以看到,服务使用了TCP 5901端口。

    第七步:开放vncserver相应的端口

    以阿里云服务器为例,开放端口5901。授权对象这里可以指定某段IP可访问,也可以像我这样设置所有IP可访问。

    到这里,云服务器上面的配置基本上是结束了。

    接下来是本地PC上的操作。
    需要在本地PC上下载一个软件:VNC Viewer


    安装完成后,打开VNC Viewer,在红色框中输入“IP:5901”,回车。


    弹出这个提示框,告诉你这样的连接是没有加密的。所以使用这种方法,是有风险的。
    切忌进行涉密操作,任何涉密的数据、操作都不应该接入网络!!!


    在确保没有任何涉密数据和操作的前提下,点击“Continue”,然后输入刚才第一次启动vncserver时设置的密码。


    大功告成!!!


    最后来个彩蛋,这样的图形桌面是不是更好看一点~

    如有误,欢迎批评指正。
    

参考资料

    [1] @dk_0228, 阿里云ECS,Ubuntu Server 16.04安装图形界面远程控制
    [2] @dale丶无双, 本地Windows远程连接阿里云服务器图形界面(使用vnc viewer)

联系我

    如有疑问,邮件是最快联系我的方式:wm_chen@yeah.net

【攻略】如何用云服务器实现云搬砖相关推荐

  1. 读取文件云服务器bcc,云服务器bcc如何用

    云服务器bcc如何用 内容精选 换一换 当云服务器网络异常.防火墙未放行本地远程桌面端口.云服务器CPU负载过高等场景均可能导致云服务器无法正常登录.当您的云服务器无法远程登录时,我们建议您首先检查是 ...

  2. 云服务优缺点_什么是云服务器,云服务器的优缺点

    建网站,存储代码的空间有虚拟主机,也有云服务器,还有更高级的物理服务器,性能递增,如果你已经入门了,对于如何建站有了一定了解,那么建议大家入手一台属于自己的云服务器,这在以前是不可思议的,但是随着时间 ...

  3. 云计算机房所用服务器,什么是云机房、云服务器、云主机?这三者有什么区别?...

    云机房是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备.典型的云计算提供商往往提供通用的网络业务应用,可以通过浏览器等软件或者其他Web服务来访问,而软件 ...

  4. 华为云服务器芯片,云服务器芯片

    云服务器芯片 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 本文介绍了弹性云服 ...

  5. 云服务器 生物信息学,云服务器 生物信息学

    云服务器 生物信息学 内容精选 换一换 挂载有NVMe SSD盘的Linux弹性云服务器(如P1型云服务器)发生故障时,需联系管理员通过异地重建的方式进行恢复,新建故障弹性云服务器.如果故障弹性云服务 ...

  6. 系统云服务器,系统云服务器

    系统云服务器 内容精选 换一换 当云服务器密码即将过期.密码泄露或首次登录时(首次登录云服务器建议您修改初始密码),您可以参考本节操作在操作系统内部修改云服务器密码.优先推荐您参考在控制台重置云服务器 ...

  7. 读取文件云服务器bcc,云服务器bcc 使用

    云服务器bcc 使用 内容精选 换一换 由于同一时间点,一台云服务器上能安装多个应用,但每路会话同一时刻只能运行一个应用,且每台云服务器连接的设备数量有限.因此,当用户数增多,云服务器数量不能满足业务 ...

  8. 腾讯云服务器挂载云硬盘

    腾讯云服务器挂载云硬盘 1.到腾讯云服务器购买一块云硬盘,然后直接挂载到你的服务器下就可以了,如果服务器不能识别,请看部分存量云服务器无法识别弹性云盘的解决方法 2.挂载完云硬盘之后,云硬盘默认处于未 ...

  9. 为什么会显示贵州云服务器,为什么云服务器都在贵州

    为什么云服务器都在贵州 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 云服务器 ...

最新文章

  1. 每天工作四小时的程序员-转
  2. 动态链接库dll,静态链接库lib, 导入库lib 转
  3. 网络编程1之计算机网络及参考模型、域名、服务器
  4. 宁波理工大学计算机程序设计培训,拼搏在程序设计前列——专访ACM大赛冠军浙江大学宁波理工学院FBH团队...
  5. 51单片机使用定时器进行数码管动态扫描程序
  6. Gradle命令行便利
  7. synchronized原理_面试必备—Synchronized 关键字使用、底层原理
  8. oracle 10g安装企业版,企业版Oracle10g的安装-过程
  9. resample函数_使用Pandas的resample函数处理时间序列数据的技巧
  10. 客快物流大数据项目(五十一):数据库表分析
  11. 提权、渗透、经验、技巧总结大全三
  12. BZOJ5109 CodePlus 2017大吉大利,晚上吃鸡!(最短路+拓扑排序+bitset)
  13. Kotlin相关博客资源
  14. Python使用进程池管理进程和进程间通信
  15. 为什么使用Hadoop?
  16. eclipse使用总结
  17. 换空间导致排名丢失之谷歌排名恢复技巧
  18. 图片怎么修改成750x750像素?
  19. 逻辑卷管理LVM(logical volume manager)
  20. android MVC,MVP,MVVM概论

热门文章

  1. 在ArcMap中画一条彩虹颜色的路
  2. 绕过tp路由器管理密码_tplogin.cn默认密码是什么 tplogin.cn默认密码介绍【详解】...
  3. IntelliJ IDEA中的神仙插件 写代码必备!
  4. 前端最有成就感一—-封装
  5. LeetCode题解(1276):不浪费原料的汉堡制作方案(Python)
  6. sfc /scannow 提示 插入Windows XP SP3 CD 光盘
  7. SpringBoot 官方强烈推荐,连接池,太快了!
  8. android唱吧源码,Android版唱吧K歌王
  9. EFM32G232F64时钟树
  10. java 打印 string_java 控制打印机实现打印 String【】aa 字符串的数据