0

    云服务器那些好玩有趣的开源项目 - 腾讯云+Ubuntu20.04

    2023.04.15 | admin | 247次围观

    友友们,由于上海疫情我从4月初开始就居家隔离,足不出户,闲来无事又把原来的阿里云服务器掏出来重新玩了一遍。看到知乎上有不少帖子都介绍了如何在云服务器上部署一些好玩的项目,但是都太过于分散,没有一篇综合性的帖子教大家从头开始租一台云服务器,并列举一些好玩的应用,所以今天写的这篇文章就把过往玩云服务器的一些笔记和经验总结一下,有兴趣的友友们可以玩一玩。

    注:本篇所使用的云服务器系统为Ubuntu 20.04.4 LTS版本(LTS表示long term support长期支持),云服务器为腾讯云4核8G内存10M出网带宽

    云服务器能拿来干嘛?

    通常云服务器都是提供给企业部署数据库和工具链,有的也用来搭建宣传网站,云服务器背后的实质是提供商自己的大型计算中心,这块目前国外做的比较好的有微软的Azure和亚马逊的AWS,国内这块阿里腾讯华为很早就开始布局云计算,云存储,云服务器的优势是省去了企业自己买服务器搭建整套系统的运营维护成本,典型的云服务器提供商也都支持弹性硬件资源,这样也免去了在服务器硬件资源不够的情况下扩容的麻烦。总而言之云服务器相当于是企业租用提供商的硬件资源。

    先撇开企业的商业用途不说,个人租用一个云服务器和企业级云服务器在硬件资源上本质没有任何区别,主要差别在于24h的人工技术支持这块。下面就给大家介绍一下:

    1. 为什么要用云服务器,能学习到哪些知识

    2. 如何选一个适合自己的云服务器

    3. 如何进行一些云服务器的基本操作

    4. Ubuntu云服务器有哪些好玩实用的项目

    一、为什么要用云服务器,能学习到哪些知识

    通常个人的云服务器主要是用来学习一些网络和计算机知识,云服务器非常适合学习linux和人工智能。当然肯定有人说学Linux可以在自己电脑或者买个开源硬件例如树莓派,没错,我尝试过在自己的电脑上装VMware虚拟机跑Ubuntu,由于虚拟机本身也占用了电脑的部分硬件资源,如果电脑配置不是很高的话,会稍许有点卡。我自己也有一块几年前买的树莓派4B 4GB版本,当时是400出头入手,最近看了一下某宝由于芯片供应短缺和疫情的影响,现在一块树莓派已经涨价到快1000块钱了,如果友友们是学生党的话估计有点难承受。像云服务器,最基本的入门级有2核2G,2核4G,4核8G,下面就从我自己对树莓派4B,4核8G的腾讯云服务器来和个人电脑(11代i5,3.1GHz 8核)对比下优劣势。

    对于从没接触过云服务器、Ubuntu Linux的萌新来说,最简单的就是在云服务器上搭建一个windows系统,然后通过远程桌面把这台云服务器当远程电脑来用,几个典型的云服务器提供商例如阿里云,腾讯云,华为云都提供了控制台,直接在控制台里面选择系统为windows,然后会一步步教你如何通过本地的电脑远程桌面连接。本篇文章重点是介绍一些可以部署在云服务器上的好玩的开源项目,以及如何一步步使用。

    通过把玩云服务器可以学到很多linux知识:

    1. 网络的基础知识 - IP地址,端口,内网,外网,NAT内网穿透,代理服务器

    2. SSH命令行 - Linux常用操作命令和运行原理

    3. Docker容器技术的基本知识和使用

    4. 如何搭建个人网站/博客,Gitlab服务器,甚至是云VSCode,以及使用网页管理软件对数据库,Docker等进行基本管理

    二、如何选一个适合自己的云服务器

    云服务器对于新用户相比老用户有很大的优惠,国内像腾讯云、阿里云、华为云每天都有特价活动,我差不多是在去年这个时候在阿里云官网特价活动时买了一个2核2G的轻量应用服务器,98一年,快到期了仍然可以继续以这个价格续费,所以直接续到了2024年。

    今年由于阿里云2核2G的性能部署一些大型的java应用已经捉襟见肘,例如在部署xwiki的时候CPU和内存总是会飙到100%,然后卡死,所以我索性又买了一年的腾讯云4核8GB内存10M带宽,官网原价一年2600,三年7800,我在某鱼上找到一个商家买的只需要一年260,真是太实惠了服务器文件夹映射到本地,前提必须是第一次使用的新用户,后悔没直接买三年的。各位友友们如果还发现什么特别的优惠渠道,可以私信我。

    某鱼给出的价格

    从个人的使用体验来看,国外的云服务器由于网速原因就不用考虑了,国内这三家的云服务器相同规格的性能都差不多,有人做过专业的评测,这里就不多说了。腾讯云这块做的最完善使用体验最好,帮助信息也很全面,阿里的使用体验是稍微差一些,华为云没用过不知道。

    从经济性来看,腾讯云的优惠是最大的,其次是阿里云,华为云的优惠最少也最贵。这三家每年任何时候都有新用户的特价活动,活动页面就摆在官网左上角最显著的位置,活动页面的链接如下:

    阿里云:

    腾讯云:

    华为云:

    三、如何进行一些云服务器的基本操作

    在购买好云服务器之后,进入控制台就可以对云服务器进行一些基本操作,这里以我自己的腾讯云为例:

    重装Ubuntu 20.04 LTS

    进入控制台后,选择右上角的更多操作-重装系统,这里以Ubuntu 20.04 LTS官方镜像为例,点击确定开始重装,LTS表示长期支持,目前20.04是Ubuntu提供的非常稳定的Linux版本,很多企业级服务器都在用。

    控制台界面

    大概一分钟不到,云服务器就自动重装好了,回到控制台就可以查看系统的一些基本信息:

    image.png

    概要:可以查看公网IP(这个要记住,登录ssh要用),内网ip,常用按你牛,实例(此云服务器)的基本状态信息。

    防火墙:主要是用来开放或限制一些端口,端口范围是0~65535,常见的默认端口号:22(ssh),80(http非安全),443(https安全),3306(MySQL),138和445(samba网盘 tcp),137和138(samba网盘 udp)。出于安全考虑,建议是需要多少端口开多少端口,默认端口号也可以改(一般在linux /etc目录下的配置文件中修改)。对于第一次使用Ubuntu Linux的萌新可以先把端口全部开放,避免某些应用被防火墙拦截无法访问,腾讯云默认开放了22,80,443这几个常用的端口。

    防火墙配置案例

    快照:备份当前的状态用的,会把当前所有数据都备份,必要的时候可以回滚。注意:重装系统后快照数据都会丢失。

    监控:可以查看CPU,内存,网络,硬盘IO等信息,主要用于监控系统的运行健康状况。

    Ubuntu 系统如何使用 root 用户登录实例?

    Ubuntu 系统的默认用户名是 ubuntu,并在安装过程中默认不设置 root 帐户和密码。用默认用户登录很多权限不够会很麻烦,可在设置中开启允许 root 用户登录。具体操作步骤如下:

    1. 在控制台点击登录(有的叫一键登录),此时是以ubuntu普通管理员用户登录的ssh。

    2. 执行命令 sudo passwd root ,设置 root 密码,提示密码更新成功。这里sudo是指以root权限执行命令。

    通常使用时我们需要使用自己本地的命令行工具以root用户登录ssh,如果不是root用户登录需要在命令前加上sudo,可使用who命令查看当前登录的用户。

    依次输入以下命令:

    apt update  #更新apt软件源,腾讯云已经使用的国内ubuntu镜像源,所以速度超级快
    apt upgrade #更新所有软件
    apt install nano #nano是ssh界面下很好用的文本编辑器
    nano /etc/ssh/sshd_config #修改ssh的配置文件,如果友友们习惯用vim也一样,我是不习惯

    找到 #Authentication,将 PermitRootLogin 参数修改为 yes。如果 PermitRootLogin 参数被注释,去掉首行的注释符号(#)。

    找到 #Authentication,将 PasswordAuthentication 参数修改为 yes。

    按CTRL+x 保存并回到到命令行,这样就可以通过自己电脑的ssh终端以root身份登录云服务器了。

    使用ssh终端登录云服务器

    接下来我们可以通过自己电脑的ssh终端以root身份登录云服务器,我用的是SecureCRT,界面美观实用,命令历史还能直接按↑查看。

    SecureCRT新建会话界面

    协议选择SSH2,主机名/IP地址填写:控制台上的公网ip地址,端口号默认就是22,用户名写root,密码则是刚在sudo passwd root时输入的密码,这个要记住。

    进入ssh命令行界面后,可以看到上一次登录时什么时候从哪个ip地址登录的,这里的ip地址是指你自己电脑的公网ip地址,可以在查询到,不是内网ip地址。

    SecureCRT界面

    下面列举一些常用的linux命令:

    把主机名改为ubuntu:hostnamectl set-hostname ubuntu

    更新源:apt update

    更新软件:apt upgrade

    查看已安装的软件:apt list --installed

    清理旧版本的软件缓存:apt-get autoclean

    清理所有软件缓存:apt-get clean

    删除系统不再使用的孤立软件:apt-get autoremove

    列出当前目录下的文件和文件夹:ls -la 或 直接 ls

    切换到etc或特定目录下:cd /etc 或 cd /目录名 或 cd .. 回到上一级目录

    查看当前所有系统进程信息:top (CTRL+C退出)

    列出所有进程列表:ps -a

    查看某一个进程的进程pid:ps -a |grep 进程名

    杀掉某一个进程:kill 进程pid

    建立文件夹:mkdir 文件夹名

    查看8080端口使用情况:netstat -atp | grep 8080

    查看网卡信息:ifconfig (如果没有可以通过apt install net-tools安装)

    删除文件或文件夹:rm -rf /路径 (这个命令要慎用,某些大厂程序员就是在离职时用了rm -rf *把所有服务器的数据删除了)

    复制文件/文件夹:cp 要拷贝的目录或文件路径 目标目录或文件路径

    剪切文件/文件夹:mv 要剪切的目录或文件路径 目标目录或文件路径

    进程控制:systemctl enable/disable/start/stop/restart/status 进程名

    Linux常用的文件夹目录:

    Ubuntu目录

    /etc 存放系统和应用的配置信息,通常一些应用的配置信息在/etc下都有单独的文件夹

    /home 如果以非root用户登录,/home目录下就有这个用户名的文件夹,通常可以存放一些个人数据

    /root 如果以root用户登录,/root就是默认的用户目录

    /bin 执行程序目录,通常不用管,通常是/usr/bin目录链接过来的

    /usr 用户程序目录,通常不用管

    /var/log 系统日志目录,.log就是日志文件,可以用文本编辑器打开

    具体linux的使用我就不在这里过多介绍,网上教程很多,下面介绍一些云服务器必装的应用。

    四、Ubuntu云服务器有哪些好玩实用的项目

    本篇文章的重点来了,下面介绍一下我实际体验并强烈推荐的一些实用软件,这里推荐的都是免费开源的项目,我是个实用颜值控,界面必须先美观好看,其次好用实用才是王道。众所周知,Github是程序员的天堂,更是开源软件的集中地,Github上有无数的开源项目可以把玩,当然这里只介绍了其中的冰山一角。

    TOP 1:Samba - 在windows中远程访问云服务器文件夹

    对于不经常使用ubuntu命令行的友友们,动不动编辑一个配置文件或者找一个文件目录,反复在命令行里ls,cd,nano很痛苦,Samba可以将云服务器的文件夹目录直接映射到本地电脑,也可以直接当网盘使用。

    1. 通过如下一个命令就可以安装samba:sudo apt install samba

    2. 查看samba的运行状态:systemctl status smbd

    3. 创建一个samba的root用户:sudo smbpasswd -a root

    4. 接下来是samba的配置,也是大家在使用samba遇到最多的一个问题,我这里通过samba将云服务器的根目录直接共享出来,以root访问,配置如下:修改samba配置文件:nano /etc/samba/smb.conf

    [global]
    workgroup = WORKGROUP
    server string = %h
    security = user
    map to guest = never
    log file = /var/log/samba/log.%m
    max log size = 1000
    logging = file
    panic action = /usr/share/samba/panic-action %d
    server role = standalone server
    obey pam restrictions = no
    hosts deny = ALL
    #出于安全考虑,这里填写你的本地公网ip地址或网段,可在 http://ip.tool.chinaz.com/ 查询
    hosts allow = 101.29.121.43 101.29.*.*[ubuntu]
    comment = share for users

    path = /
    browseable = yes
    available = yes
    writable = yes
    public = yes

    配置完之后CTRL+X 按两次回车键保存退出。

    1. 使用检查samba配置文件是否有误:testparm

    2. 确认无误后重启samba服务:systemctl restart smbd

    3. 在控制台防火墙添加 138和445(samba网盘 tcp),137和138(samba网盘 udp) 用于开放samba使用的这四个端口。

    4. 这时就可以通过本地计算机-我的电脑-映射网络驱动器,输入\\云服务器公网ip地址\ubuntu,使用其他凭据链接打勾,点击完成,输入root用户名和密码即可将云服务器根目录映射到本地。

    上面提到配置smb.conf文件时,增加了hosts deny和allow,原来我在用samba的时候并没有设置这两项,结果通过/var/log/samba下面的日志发现每天都有全世界各地的计算机都在尝试登录我的云服务器,所以建议大家还是及时把安全设置加上比较好,这样就只有你本地电脑可以访问云服务器的目录了。

    Windows不能访问的原因:防火墙需要开放tcp/139,445端口服务器文件夹映射到本地,udp/137,138端口

    TOP 2:Docker + 网页管理工具Portainer - 将应用部署在云服务器一个个小容器里,随用随取,不用就删

    之前用Ubuntu一直没有装docker,所有应用都直接部署在ubuntu上,结果导致ubuntu遇到各种系统问题重装了好多次,吐槽linux怎么能这么难用,接近崩溃。自从用了docker之后,发现docker是真香定律,docker部署应用和硬件基本无关,做到了真正的软硬解耦,所有应用直接部署在docker中,有问题直接删除容器就可以,下面介绍下docker的安装和使用。

    Docker和Dockerhub官网:

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论