• 阿里云轻量应用服务器Ubuntu20.04上手体验与基本配置(图形界面,ssh,代理等)



    tags: Ubuntu Server Tips Config

    写在前面

    最近通过帅地的公众号get了一个一年的阿里云轻量应用服务器, 2核4GB, 磁盘60GB,流量1100GB, 感觉还是相当够用的. 一开始我就将其当成一个x86_64架构的虚拟机了, 但是后来发现这样实在是有点浪费了, 云服务器能做的事情可真是多. 之前就了解过的内网穿透服务器就可以用云服务器来搭建, 此外还可以做一些个人站点之类的. 话不多说, 我们先来配置一下这座’毛坯房’, 让它能够适应我们的需求.

    系统镜像我选择了Ubuntu当前支持的最新版本20.04(focal), 毕竟是最大众化的一款Linux发行版了, 用着顺手.

    之后可以通过重置镜像的方式更改.

    ssh链接:秘钥文件+密码

    由于平台默认已经为我们分配了公网ip, 此时就可以远程连接到云服务器了, 只需要在管理界面配置一下远程登录的密码即可, 但是这样会比较麻烦, 密码8位带字母数字, 每次都要输入一遍. 这里建议通过秘钥文件的方式来连接(确保安全的前提下), 管理面板上有详细的操作流程.

    下面我设置了一个快捷命令, 连服务器更加顺手了:

    alias ubt='ssh -i /Users/xxx/.ssh/ssh1.pem root@<公网IP>'
    
    • 1

    需要注意这样设置之后, 密码登录会失效, 需要修改/etc/ssh/sshd_config文件的最后一行, 将PasswordAuthentication no, 改为PasswordAuthentication yes, 然后重启服务sudo systemctl restart sshd, 最后重启服务器:reboot, 这样就能看到生效了, 用手机端termux连服务器, 美滋滋~

    后续的操作也基本都是通过ssh链接进行的.

    镜像

    这里阿里云直接帮我们设置为自己家的软件源镜像了, 速度相当快.

    安装基本工具

    查看系统信息

    apt install neofetch
    
    • 1
                .-/+oossssoo+/-.               root@xxx
            `:+ssssssssssssssssss+:`           ----------------------------
          -+ssssssssssssssssssyyssss+-         OS: Ubuntu 20.04.1 LTS x86_64
        .ossssssssssssssssssdMMMNysssso.       Host: Alibaba Cloud ECS pc-i440fx-2.1
       /ssssssssssshdmmNNmmyNMMMMhssssss/      Kernel: 5.4.0-47-generic
      +ssssssssshmydMMMMMMMNddddyssssssss+     Uptime: 12 hours, 36 mins
     /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/    Packages: 2121 (dpkg)
    .ssssssssdMMMNhsssssssssshNMMMdssssssss.   Shell: bash 5.0.17
    +sssshhhyNMMNyssssssssssssyNMMMysssssss+   Resolution: 1024x768
    ossyNMMMNyMMhsssssssssssssshmmmhssssssso   Terminal: /dev/pts/1
    ossyNMMMNyMMhsssssssssssssshmmmhssssssso   CPU: Intel Xeon Platinum 8269CY (2) @ 2.499GHz
    +sssshhhyNMMNyssssssssssssyNMMMysssssss+   GPU: 00:02.0 Cirrus Logic GD 5446
    .ssssssssdMMMNhsssssssssshNMMMdssssssss.   Memory: 1126MiB / 3748MiB
     /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/
      +sssssssssdmydMMMMMMMMddddyssssssss+
       /ssssssssssshdmNNNNmyNMMMMhssssss/
        .ossssssssssssssssssdMMMNysssso.
          -+sssssssssssssssssyyyssss+-
            `:+ssssssssssssssssss+:`
                .-/+oossssoo+/-.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    编译工具链

    apt install gdb make
    
    • 1

    MySQL

    apt install mysql-server
    apt install libmysqlclient-dev # 解决找不到的问题
    
    • 1
    • 2

    防火墙工具

    这个算是相当重要了, 因为之后的网络服务都要通过防火墙, 不安装当然也可以, 但是会不安全, 之后在内网穿透部分我也会提到这个.

    apt install firewalld
    apt install iptables-services
    
    • 1
    • 2

    开启服务:

    systemctl start firewalld
    
    • 1

    查看版本和当前运行状态:

    firewall-cmd --version
    firewall-cmd --state
    
    • 1
    • 2

    node.js

    后面的clash配置要用:

    apt install nodejs
    apt install npm
    
    • 1
    • 2

    npm镜像设置:

    npm_config_registry=http://registry.npmmirror.com npx npm-mirror-set taobao
    
    • 1

    安装pm2(应用管理):

    npm install pm2 -g
    
    • 1

    图形界面

    这里虽说云服务器加GUI实属没必要, 不过有时候做一下Webserver的话不开个浏览器实在是看不到效果, 安一个基本的就够了(因为是真的卡, 甚至不如自己本地搭建的multipass). 这里参考了1:

    apt install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal ubuntu-desktop
    
    • 1

    还要安装一个叫做vnc的东西, 有了这个方便的小工具, 我们才能通过vnc-viewer这款软件(在Mac)上查看远程服务器的图形化界面.

    apt-get install tightvncserver
    
    • 1

    或者通过aptitude安装vnc4server, 两者功能是一样的.

    apt-get install aptitude
    aptitude install vnc4server
    
    • 1
    • 2

    需要注意镜像的问题2, 修改vi /etc/apt/sources.list, 在第一行加上

    deb http://archive.ubuntu.com/ubuntu/ bionic universe
    
    • 1

    然后更新镜像apt update.

    完成之后, 在Mac上安装vnc-viewer:

    brew install vnc-viewer
    
    • 1

    通过输入vncserver启动vncserver, 修改配置文件:vim ~/.vnc/xstartup.如下:

    #!/bin/sh
    
    export XKL_XMODMAP_DISABLE=1
    export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
    export XDG_MENU_PREFIX="gnome-flashback-"
    gnome-session --session=gnome-flashback-metacity --disable-acceleration-check &
    vncconfig &
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    这里我就用了官方给的配置, 最后一行是开启剪贴板支持(不过我感觉好像没起作用).

    截屏2022-11-07 14.24.08

    防火墙端口开启

    这里还有一个重要的步骤, 就是关于防火墙的端口开启设置, 需要开启的端口为59005901, 这个1就是之前vncserver默认的第一个实例. 在管理界面中右上角添加规则:

    截屏2022-11-07 12.23.54

    由于前面设置过了防火墙, 这里就需要先添加相应的端口, 这里参考了3, 思路都是一样的:

    firewall-cmd --zone=public --add-port=5900/tcp --permanent
    firewall-cmd --zone=public --add-port=5901/tcp --permanent
    
    • 1
    • 2

    查看端口状态:

    firewall-cmd --query-port=5900/tcp
    firewall-cmd --query-port=5901/tcp
    
    • 1
    • 2

    netstat查看服务器是否开启了任务监听对应端口:

    sudo netstat -tunlp | grep 5901
    
    • 1

    这里应该显示如下:

    tcp6       0      0 :::5901                 :::*                    LISTEN      5502/Xvnc4
    
    • 1

    查看防火墙的端口开放情况:(对5900亦然, 下同)

    sudo iptables -L -n --line-numbers | grep 5901
    
    • 1

    若没有, 需要用下面的方法开启:

    sudo iptables -I INPUT -ptcp --dport 5901 -j ACCEPT
    
    • 1

    最后刷新防火墙:

    firewall-cmd --reload
    
    • 1

    端口部分就完成了.


    重启vnc:

    vncserver -kill :1 && vncserver -geometry 1920x1080 :1
    
    • 1

    打开Mac本机的vnc-viewer, 输入: <公网IP>:1, 其他默认, 即可连接.

    配置代理

    方便GitHub等的访问, 这里采用了clash命令行客户端, 参考了4.

    wget https://github.com/Dreamacro/clash/releases/download/v1.11.12/clash-linux-amd64-v1.11.12.gz
    gzip -d clash-linux-amd64-v1.11.12.gz
    mv clash-linux-amd64-v1.11.12 clash
    mkdir /opt/clash
    mv clash /opt/clash/clash
    cd /opt/clash
    chmod 755 clash
    ./clash -v
    # Clash v1.11.12 linux amd64 with go1.19.3 Fri Nov  4 05:30:39 UTC 2022
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    /opt/clash中新建:

    vi start_clash.sh
    # 加入如下内容:
    ./clash -d .
    
    • 1
    • 2
    • 3

    然后开启:

    chmod 755 start_clash.sh
    pm2 start start_clash.sh
    
    • 1
    • 2

    此时可以看到:

    最后同样, 加个快捷指令:

    alias uvpn='pm2 stop /opt/clash/start_clash.sh'
    alias vpn='pm2 start /opt/clash/start_clash.sh'
    
    • 1
    • 2

    以及:

    alias vv="export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7891"
    alias uv="unset https_proxy http_proxy all_proxy"
    
    • 1
    • 2

    终端上GitHub的问题就可以解决了, 下面测试一下(with Google):

    curl -vvv google.com
    
    • 1
    * Uses proxy env variable http_proxy == 'http://127.0.0.1:7890'
    *   Trying 127.0.0.1:7890...
    * TCP_NODELAY set
    * Connected to 127.0.0.1 (127.0.0.1) port 7890 (#0)
    > GET http://google.com/ HTTP/1.1
    > Host: google.com
    > User-Agent: curl/7.68.0
    > Accept: */*
    > Proxy-Connection: Keep-Alive
    ...
    <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
    <TITLE>301 Moved</TITLE></HEAD><BODY>
    <H1>301 Moved</H1>
    The document has moved
    <A HREF="http://www.google.com/">here</A>.
    </BODY></HTML>
    * Connection #0 to host 127.0.0.1 left intact
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    关闭之后:

    也可以通过pm2 list查看运行状态.

    开多了运行程序可以用pm2 delete 删掉.

    ref


    1. 通过VNC搭建Ubuntu 18.04和20.04图形界面 (aliyun.com); ↩︎

    2. 阿里云 腾讯云 服务器Ubuntu 20.04安装图形界面,解决灰屏问题,解决复制粘贴问题,并调整分辨率大小_Big Z的博客-CSDN博客_阿里云ubuntu安装图形界面; ↩︎

    3. 腾讯云frp连接失败。login to server failed: dial tcp x:7000: connectex: A connection attempt failed because_Ts势的博客-CSDN博客_frp无法连接; ↩︎

    4. 如何让国内的阿里云服务器可以高速下载Github代码 – V2方圆 (v2fy.com); ↩︎

  • 相关阅读:
    华为云图像识别服务
    【刷题】代码随想录算法训练营第二十三天|669、修剪二叉搜索树,108、将有序数组转换为二叉搜索树,538、把二叉搜索树转换为累加树
    Java高频面试题:一文掌握JVM虚拟机体系结构的深层内涵!
    Unity WIFI 无线打包至手机
    工业控制系统所面临的安全威胁
    【LeetCode】Day95-有效的数独&矩阵置零
    flannel网络
    RocketMQ的从节点代理主节点模式
    纯干货:解读输出文件 | VASP零基础实用教程
    OpenShift Security (19) - 用红帽官方镜像加固云原生应用安全
  • 原文地址:https://blog.csdn.net/qq_41437512/article/details/127730538