【2024最新】 服务器安装Ubuntu20.04 (安装教程、常用命令、故障排查)持 ...

打印 上一主题 下一主题

主题 633|帖子 633|积分 1899

安装教程(体系、NVIDIA驱动、CUDA、CUDNN、Pytorch、Timeshift、ToDesk、花生壳)


  • 制作U盘启动盘,并安装体系


  • 在MSDN i tell you下载Ubuntu20.04 Desktop 版本,并利用Rufus制作UEFI启动盘,参考UEFI安装Ubuntu
  • 利用GPT+UEFI模式安装,记得更改主板选项Legacy to EFI support 为 enable
  • 出现安装体系重启后黑屏,大概是显卡驱动没有安装,参考重装ubuntu 20.04.1体系完成后遇到黑屏怎么办?

  • 安装NVIDIA显卡驱动


  • 先参考Ubuntu20.04下深度学习环境配置,配置apt-get换国内阿里源
  • 参考Ubuntu18-22.04安装和干净卸载nvidia显卡驱动——超详细、最简单中的方法二,利用体系自带的 “软件和更新” 步伐 - 附加驱动,选择带有recommend的驱动,进行安装
  • 安装过程中大概会出现的问题
    1. 1.The distribution-provided pre-install script failed! Are you sure you want to continue?
    2. 选择continue installation
    3. 2.Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later?  
    4. 选择 No 继续。
    5. 3.问题没记住,选项是:install without signing
    6. 4.问题大概是:Nvidia's 32-bit compatibility libraries?
    7. 选择 No 继续。
    8. 5.Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up.  
    9. 选择 Yes  继续
    复制代码
  • 假如出现安装驱动后黑屏,大概是图形管理器gdm3不兼容,可以安装lightdm,代码如下:
  1. sudo apt-get install lightdm
复制代码


  • 安装好后,选择lightedm作为默认图形管理器

  • 验证
  1. //执行此语句,出现显卡信息则证明安装成功。
  2. nvidia-smi
复制代码

3. 安装Anaconda


  • 参考Ubuntu20.04下深度学习环境配置,安装Anaconda
  • 大概出现的问题:
    1.   1.“Do you accept the license terms” // 是否同意条款,如果拒绝则无法安装
    2.   输入“yes”
    3.   
    4.   2.“Do you wish the installer to initialize Anaconda3 by running conda init?” // conda初始化操作,如果拒接可能会遇到接下来的问题
    5.   输入“yes”
    复制代码
  • 在给新用户安装Anaconda后,①没有显示(base),②conda:未找到命令,可采取以下代码:
  1. //先解决 2
  2. sudo vim ~/.bashrc
  3. //打开文件后,按i插入下一行,用户名更改为自己的用户名,之后按esc,输入:wq!,保存并关闭文件
  4. export PATH="/home/用户名/anaconda3/bin:$PATH"
  5. //更新source
  6. source ~/.bashrc
  7. //再解决 1,直接初始化conda
  8. conda init
复制代码

  • pip换清华源


  • 在/home/xx目次下创建.pip文件夹
  1. mkdir ~/.pip
复制代码


  • 创建pip.config文件
  1. sudo vim ~/.pip/pip.conf
复制代码


  • 写入以下内容:
  1. [global]
  2. index-url = https://pypi.tuna.tsinghua.edu.cn/simple
  3. [install]
  4. trusted-host = pypi.tuna.tsinghua.edu.cn
复制代码

  • 安装Pytorch-cpu


  • 参考Ubuntu20.04下深度学习环境配置,安装Pytorch-cpu

  • 安装CUDA


  • 纵然不在新建的conda假造环境中安装,如在base中安装CUDA,其他的假造环境也能正常利用
  • 参考Ubuntu20.04下深度学习环境配置,安装CUDA

  • 安装CUDNN


  • 所以纵然不在新建的conda假造环境中安装,如在base中安装CUDNN,其他的假造环境也能正常利用
  • cudnn9.0.0版本安装如下:

    • 进入官网,cudnn官网
    • 选择ubuntu20.04版本,并本地安装,如下图:

  • 由于选择Ubuntu时无法验证是否安装成功,所以这里选择第一个Tarball,下载.tar.xz文件进行解压安装


    • 安装代码如下:

  • 假如上一步选择了Ubuntu,那么这里利用以下代码
  1. wget https://developer.download.nvidia.com/compute/cudnn/9.0.0/local_installers/cudnn-local-repo-ubuntu2004-9.0.0_1.0-1_amd64.deb
  2. sudo dpkg -i cudnn-local-repo-ubuntu2004-9.0.0_1.0-1_amd64.deb
  3. sudo cp /var/cudnn-local-repo-ubuntu2004-9.0.0/cudnn-*-keyring.gpg /usr/share/keyrings/
  4. sudo apt-get update
  5. sudo apt-get -y install cudnn
  6. # 如果当前环境的cuda版本为11.x,那么用这行代码
  7. sudo apt-get -y install cudnn-cuda-11
  8. # 如果当前环境的cuda版本为12.x,那么用这行代码
  9. sudo apt-get -y install cudnn-cuda-12
复制代码


  • Tarball的cudnn安装如下:

    • 参考Ubuntu20.04下深度学习环境配置,安装CUDNN
    • 在输入以下代码时,前一个cuda是解压CUDNN后的目次,而cuda-xxx表示,将xxx更改为上一步安装cuda的版本号,详细可以打开目次 /user/local 进行检察。

  1.         sudo cp cuda/include/cudnn* /usr/local/cuda-xxx/include
  2.          
  3.         sudo cp cuda/lib/libcudnn* /usr/local/cuda-xxx/lib64
  4.          
  5.         sudo chmod a+r /usr/local/cuda-xxx/include/cudnn*
  6.         sudo chmod a+r /usr/local/cuda-xxx/lib64/libcudnn*
复制代码


  • 利用以下代码,进行查抄:
    3. 验证是否安装成功
  1. cat /usr/local/cuda-11.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
复制代码

  • 安装Pytorch


  • 新建conda假造环境,并在假造环境中安装Pytorch
  • 参考Ubuntu20.04下深度学习环境配置,安装Pytorch
  • 注意:pytorch自带cuda和cudnn,所以在安装了pytorch的假造环境中,默认利用的是pytorch自带的cuda和cudnn,检察cuda和cudnn版本的命令如下:
  1. # 进入pytorch环境
  2. import torch
  3. # 可以正确输出 cuda 版本号,说明 cuda 安装成功
  4. print(torch.version.cuda)
  5. # 可以正确输出 cuDNN 的 版本号,说明 cuDNN 安装成功
  6. print(torch.backends.cudnn.version())
  7. # 输出是 True,说明 CUDA 和 GPU 驱动的搭配是正确的
  8. print(torch.cuda.is_available())
复制代码

  • 安装Timeshift


  • 参考ubuntu20.04安装timeshift最新方法
  • 利用教程,参考Timeshift体系备份与还原

  • 安装ToDesk


  • 由于向日葵在切换Ubuntu账号时会黑屏,暂时找不到解决办法,所以利用ToDesk
  • 安装方法,参考ToDesk官网

  • 安装花生壳


  • 安装花生壳用内网穿透,实现外网访问内网服务器,详细参考花生壳免费实现Linux主机的内网穿透,可通过SSH、SCP长途访问
  • 必要注意:由于公开服务器至外网,因此会常常被攻击。所以要么开vip限定访问,要么仅在必要利用的时间开启内网穿透,不必要就及时关闭。
服务器的简化操作(长途Pycharm)


  • Pycharm长途连接服务器,参考PyCharm连接长途服务器配置过程


  • 注意:连接长途服务器后的Pycharm,相称于可视化修改代码的“记事本”,该项目的所有文件都会主动上传至服务器,因此代码并不在本地运行,但服务器上的文件不能主动同步到本地。
  • 现实运行流程为:先由Pycharm发送运行命令,然后服务器开始执行代码,最后代码运行结束,生成的模子也是留在服务器,必要手动下载回本地。
常用命令


  • conda命令,参考conda常用命令汇总,随时查询(最全)
  • 为普通用户添加sudo权限、删除sudo权限的方法,参考Ubuntu体系上为用户授予和删除sudo权限的方法
  • 桌面卡死解决办法,参考Ubuntu桌面卡死解决办法
  • 关闭SSH窗口后,使模子继承运行,参考screen命令解决SSH长途服务器练习代码断开连接后运行中断
  1. # 如果-ls输入错误成-l,那么重新输入-ls后会出现以下信息:
  2. (base) pp@slol:~$ screen -ls
  3. There are screens on:
  4.         1301732.pts-7.slol    (2024年03月18日 21时37分41秒)   (Detached)
  5.         27515.pp        (2024年03月16日 21时07分52秒)   (Detached)
  6.         26902.pts-0.slol      (2024年03月16日 21时00分53秒)   (Detached)
  7. 3 Sockets in /run/screen/S-pp.
  8. * 这可以使用screen -r命令重新连接到要关闭的会话,例如:
  9. # 第一个和第三个的名称要输全
  10. screen -r 1301732.pts-7.slol
  11. screen -r 26902.pts-0.slol
  12. # 中间一个可以直接这样输入
  13. screen -r pp
  14. # 连接到会话后,可以按下Ctrl + A + K键组合来杀死当前会话,以及杀死对话中的进程。
  15. # 使用Ctrl + A + D键组合来暂时中断当前会话,不会杀死对话中的进程。
复制代码

  • 实时检察CPU、GPU温度,参考Ubuntu 体系实时检察CPU温度和GPU温度
  • 实时检察CPU占用率,参考(top命令)怎样利用各种工具和命令来查抄 Ubuntu 中的 CPU 利用环境?
  • 检察磁盘空间占用率,参考【Linux】与磁盘相关的常用命令(自用)
  • 更改linux服务器的DNS服务器,禁用IPv6
  1. # 更改DNS服务器,查看DNS服务器设置
  2. systemd-resolve --status
  3. # 1. 修改系统的永久DNS文件,命令如下
  4. sudo vim /etc/systemd/resolved.conf
  5. # 2. 取消DNS行的注释,并更改如下:
  6. DNS=8.8.8.8 114.114.114.114
  7. # 3. 保存并推出永久DNS文件
  8. ESC + :wq!
  9. # 4. 清空本地DNS缓存
  10. sudo systemd-resolve --flush-caches
  11. # 5. 重启systemd-resolved服务
  12. sudo systemctl restart systemd-resolved
  13. # 6. 检查systemd-resolved服务状态
  14. sudo systemctl status systemd-resolved
  15. # 7. 查看接口名称
  16. nmcli con show
  17. # 8. 更改指定连接的DNS,将为IPv4设置Google的公共DNS服务器,并删除IPv6的DNS服务器
  18. #    并告诉NetworkManager忽略由DHCP提供的DNS服务器
  19. nmcli con mod "有线连接 1" ipv4.dns "8.8.8.8"
  20. nmcli con mod "有线连接 1" ipv4.ignore-auto-dns yes
  21. nmcli con mod "有线连接 1" ipv6.dns ""
  22. nmcli con mod "有线连接 1" ipv6.ignore-auto-dns yes
  23. # 9. 重启NetworkManager服务
  24. sudo systemctl restart NetworkManager
  25. # 10. 检查是否修改完成
  26. systemd-resolve --status
  27. # 禁用IPv6
  28. # 1. 进入sysctl.conf文件
  29. sudo vim /etc/sysctl.conf
  30. # 2. 添加以下行
  31. net.ipv6.conf.all.disable_ipv6 = 1
  32. net.ipv6.conf.default.disable_ipv6 = 1
  33. net.ipv6.conf.lo.disable_ipv6 = 1
  34. # 3. 保存更改后,执行以下命令
  35. sudo sysctl -p
复制代码
故障排查


  • 服务器被陌生IP访问,检察是否被入侵的简单步骤:
  1. # 1. 先lastb 查看登录失败的用户名、ip、时间等信息
  2. sudo lastb
  3. # 2. 若btmp文件过大,被系统的logrotate自动轮转,则旧文件会默认以 btmp.1 btmp.2 btmp.3的形式存储在 /var/log/目录下
  4. # 再用以下命令查看某个btmp文件,如查看btmp.1
  5. sudo lastb -f /var/log/btmp.1
  6. # 3. 使用last命令查看已经登录过的用户名、ip、时间等信息
  7. sudo last
  8. # 4. 使用echo命令清空btmp文件或wtmp文件
  9. sudo echo > /var/log/btmp
  10. sudo echo > /var/log/wtmp
复制代码

  • 根据进程号检察该进程的启动文件以及工作目次
  1. # 1. 先使用top命令查看当前占用cpu的进程号是什么
  2. # 2. 使用nvidia-smi命令查看当前占用gpu的进程叫什么名字
  3. # 3. 拿到进程号,比如3531之后,我们进入root用户
  4. su root
  5. # 4. 执行以下命令,即可查看该进程的目录列表
  6. ll /proc/3531
  7. # 5. 其中 cmd 是进程当前工作目录,exe 是进程的启动路径,cmdline 包含用于启动进程的完整命令行参数
复制代码

  • 防止服务器被暴力破解,给服务器添加脚本:每小时查抄是否有登录失败的ip,假如有就封禁该ip


  • 可以通过以下命令,检察登陆失败凌驾4次的ip:
  1. sudo lastb |awk '{print $3}'|sort |uniq -c|awk '{if ($1 > 4) print $2}'
复制代码


  • 脚本代码检察ubuntu20.04 主动封禁恶意ip的代码与计划思绪

  • 服务器被陌生IP访问,检察是否被入侵的排查手册:


  • 简单版,参考怎样查抄linux服务器是否被入侵
  • 详细排查手册,参考Linux 应急响应流程及实战演练

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

雁过留声

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表