高性能服務器配置經驗指南1——剛配置好服務器應該做哪些事

文章目錄

    • 安裝ubuntu
    • 安裝必要軟件
    • 設置用戶
    • 遠程連接
    • 安全問題
    • ClamAV安裝教程
    • 步驟 1:更新系統軟件源
    • 步驟 2:升級系統(可選但推薦)
    • 步驟 3:安裝 ClamAV
    • 步驟 4:更新病毒庫
    • 步驟 5:驗證安裝
    • ClamAV 常用命令
      • 1. 基礎掃描命令
      • 2. 圖形界面(ClamTk)
    • 步驟 6:配置自動更新與掃描(可選)
      • 1. 定期更新病毒庫
      • 2. 定期掃描系統
  • 常見問題
    • 1、更新病毒庫報錯:ERROR: Failed to lock the log file /var/log/clamav/freshclam.log: Resource temporarily unavailable ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log). ERROR: initialize: libfreshclam init failed. ERROR: Initialization error!
      • **1. 檢查并停止沖突的進程**
        • **步驟 1.1:停止 `freshclam` 服務**
        • **步驟 1.2:終止所有 `freshclam` 進程**
      • **2. 檢查日志文件權限**
        • **步驟 2.1:檢查日志文件權限**
        • **步驟 2.2:修復權限(如果需要)**
        • **步驟 2.3:確保日志目錄存在且權限正確**
      • **3. 刪除現有日志文件并重新運行**
        • **步驟 3.1:刪除日志文件**
        • **步驟 3.2:手動運行 `freshclam`**

最近在學校內配置了一臺服務器,經過多番嘗試和重裝,踩了不少坑,也積累了不少經驗,現記錄在此作為參考,也希望能幫助到同樣有相同需求的伙伴。
本次配置的服務器是華碩主板,配有2張4090顯卡、189GB內存和2T固態外存,安裝的系統為ubuntu20.04,在此我想對剛接觸服務器配置的小伙伴說: 不要安Windows!不要安Windows!!不要安Windows!!! Windows操作起來固然更加直觀方便,但是后續帶來的麻煩是無窮無盡的。
好了,進入正題。

安裝ubuntu

我安裝ubuntu系統的方式全部來自于B站的這位up主的視頻:https://www.bilibili.com/video/BV1Cc41127B9?spm_id_from=333.788.videopod.episodes&vd_source=59276a77a9319f21b7dec25b3f709fdb&p=13
大家可以直接跟著他的操作一步步做,基本不會遇到什么問題。
但是作為服務器,我的建議是:雙系統的安裝是不必要的。如果你和我一樣,在這方面有一點強迫癥,想要把磁盤中的Windows也刪除的話,只要在安裝過程中到下圖這一步時,選擇“清除整個磁盤并安裝ubuntu”即可(在此之前,記得備份必要數據)。
在這里插入圖片描述

安裝必要軟件

ubuntu安裝完成后,想要作為一臺深度學習服務器使用,需要安裝一些必要軟件包,在上一步中,大家應該已經完成了軟件源的更新,在此不作贅述。
ubuntu安裝軟件一般是在終端進行安裝,打開的快捷鍵是:Ctrl+Alt+T,打開后就像下圖一樣:
在這里插入圖片描述
一般在安裝任何新軟件包之前,建議先更新軟件包列表:

sudo apt update

安裝編譯程序所需的軟件包:

sudo apt install build-essential

然后可以安一些文本編輯器,比較常用的就是vim和nano:

sudo apt install vim
sudo apt install nano

一般情況下,代碼的版本管理和團隊開發都要依托于云平臺,如Github和Gitee等,這就需要安裝版本控制工具git:

sudo apt install git

服務器的使用一般情況下是遠程使用,也就是通過局域網內的另一臺電腦遠程連接,所用協議為SSH,安裝命令為:

sudo apt install openssh-server

當然前提是要配置網絡的:

sudo apt install net-tools

安裝好ssh后,需要啟動SSH服務,并查看一下服務運行狀態:

sudo service ssh start
sudo service ssh status

如果顯示下面的內容,說明SSH已經啟動,應該已經可以進行遠程連接了:
在這里插入圖片描述
接下來可以安裝一些編譯器、編譯工具等:

sudo apt install gcc
sudo apt install g++
sudo apt install make
sudo apt install cmake

可以再安裝一個用于查看COP、內存等資源使用情況的軟件包htop:

sudo apt install htop

運行方式直接在終端輸入htop,回車即可,運行界面如下:
在這里插入圖片描述
可以看到CPU和內存的使用情況,也可以看到各個終端的終端號和資源使用情況。

設置用戶

一般在科研中,一臺服務器需要多個人一起使用,為了避免文件系統的沖突,建議給服務器設定多個用戶,大家分別在自己的用戶下操作,更加方便。
創建新用戶的命令為:

sudo adduser newusername

此處newusername為用戶名,需要按照自己的要求進行修改,執行上述命令后,系統會提示你為這個用戶設定密碼,填寫用戶信息,不想填按回車就行,提示信息類似于:

[sudo] password for 當前用戶:
正在添加用戶 "新用戶名"
正在添加新組 "新用戶名" (1001)
正在添加新用戶 "新用戶名" (1001) 到組 "新用戶名"
創建主目錄 "/home/新用戶名"
正在從 "/etc/skel" 復制文件
輸入新的 UNIX 密碼:
重新輸入新的 UNIX 密碼:
passwd:已成功更新密碼

在這里,強烈建議把密碼設的復雜一點,不然容易被人黑進來挖礦,計算資源被占用是小事,造成數據泄露或者文件系統損壞就很麻煩。
根據需要,也可以為用戶添加或刪除sudo權限:

# 為用戶username添加sudo權限
sudo usermod -a -G sudo username# 去除用戶username的sudo權限
sudo usermod -G usergroup username

遠程連接

設置好用戶后,用戶們就可以嘗試一下能不能遠程連接服務器了,以Windows為例,首先按win+R打開運行界面:
在這里插入圖片描述
在框中輸入cmd,回車后打開終端:
在這里插入圖片描述

輸入以下內容:

# xx.xxx.xxx.xxx是服務器的ip地址
ping xx.xxx.xxx.xxx

如果出現下圖中的信息,證明自己的電腦和服務器都正常連接在局域網內。
在這里插入圖片描述
那么xx.xxx.xxx.xxx怎么查看呢,打開服務器的終端,輸入:

ifconfig

輸入如下,一般情況下ip地址就是下圖紅框內的數字:
在這里插入圖片描述
然后,測試下SSH能不能用,依然是在Windows的終端里,輸入:

ssh username@xx.xxx.xxx.xxx

第一次連接時,可能會有如下警告信息:

The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

確認下ip地址和用戶名信息,確認無誤后輸入yes,輸入對應用戶的密碼后,一般出現類似以下提示信息,說明SSH連接成功了,接下來就可以利用服務器的算力搞科研了:
在這里插入圖片描述
當然,也有可能連接失敗,此時要考慮是不是防火墻把ssh的端口攔截了,那么需要在服務器上輸入命令將ssh的端口權限打開,命令為:

sudo ufw allow 22

其中22是ssh服務的默認端口。

安全問題

截止到本文落成,服務器已經被不明ip黑了兩次了,結合關稅戰形式,我。。。(我超牢美怎么這么壞啊.jpg)。
開個玩笑,不管是什么原因,我們在配置服務器時都要有安全意識,因為數據無價,所以有以下幾點要注意:
(1)服務器中所有用戶的密碼要盡可能復雜,包括符號、大小寫字母、隨機數字等。
(2)SSH的端口號盡量不要用默認的22,可以改成其他的,方法是修改SSH的配置文件:

sudo vi /etc/ssh/sshd_config

打開后,在下圖中紅框內修改:
在這里插入圖片描述
修改端口號可以自擬,不要超過65535就行。
接著重啟SSH就可以了:

systemctl restart sshd.service

下一次登陸的時候,需要在命令后加上新的端口號(假設為xxxx):

ssh username@xx.xxx.xxx.xxx -p xxxx

(3)可以考慮安裝殺毒軟件,如ClamAV。

ClamAV安裝教程

本文使用 apt 在 Ubuntu/Debian 系統上安裝 ClamAV。

步驟 1:更新系統軟件源

安裝前先更新系統軟件包列表,確保依賴項可用:

sudo apt update

步驟 2:升級系統(可選但推薦)

建議先升級系統已安裝的軟件包,避免依賴沖突:

sudo apt upgrade -y

步驟 3:安裝 ClamAV

使用 apt 安裝 ClamAV 及其相關組件:

sudo apt install clamav clamav-daemon clamtk -y
  • clamav:核心病毒掃描工具。
  • clamav-daemon:后臺守護進程(用于實時監控或服務模式)。
  • clamtk:圖形化界面(可選,適合不熟悉命令行的用戶)。

步驟 4:更新病毒庫

安裝完成后,必須更新病毒數據庫才能生效:

sudo freshclam

freshclam 會從 ClamAV 官方服務器下載最新的病毒定義(.cvd 文件)。
如果遇到超時或連接問題,可能是網絡或軟件源問題,可參考下方常見問題。

步驟 5:驗證安裝

確認 ClamAV 安裝成功:

clamscan --version

預期輸出示例:

ClamAV 0.103.2/25705/Sat Apr 19 03:00:00 2025

ClamAV 常用命令

1. 基礎掃描命令

  • 全盤掃描(謹慎使用,耗時較長)
sudo clamscan -r /
  • 指定目錄掃描
clamscan -r /path/to/directory
  • 僅顯示感染文件:
clamscan -i -r /path/to/directory
  • 刪除檢測到的惡意文件:
sudo clamscan --remove -r /path/to/directory

2. 圖形界面(ClamTk)

啟動圖形化界面:

clamtk

步驟 6:配置自動更新與掃描(可選)

1. 定期更新病毒庫

編輯 cron 任務,每天自動更新病毒庫:

sudo crontab -e

添加以下行:

0 2 * * * /usr/bin/freshclam

2. 定期掃描系統

設置每天凌晨 1 點掃描主目錄并記錄日志:

0 1 * * * /usr/bin/clamscan -r /home >> /var/log/clamav/scan.log

常見問題

1、更新病毒庫報錯:ERROR: Failed to lock the log file /var/log/clamav/freshclam.log: Resource temporarily unavailable ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log). ERROR: initialize: libfreshclam init failed. ERROR: Initialization error!

您遇到的錯誤 Failed to lock the log file /var/log/clamav/freshclam.log: Resource temporarily unavailable 是由于 日志文件被其他進程占用或鎖定 導致的。以下是詳細的解決步驟:


1. 檢查并停止沖突的進程

ClamAV 的 freshclam 服務和手動運行的 freshclam 命令可能會同時嘗試訪問日志文件,導致沖突。請按以下步驟操作:

步驟 1.1:停止 freshclam 服務
sudo systemctl stop clamav-freshclam
步驟 1.2:終止所有 freshclam 進程
sudo pkill -f freshclam

2. 檢查日志文件權限

確保日志文件和目錄的權限正確,允許 clamav 用戶寫入:

步驟 2.1:檢查日志文件權限
ls -l /var/log/clamav/freshclam.log

預期輸出應類似:

-rw-r----- 1 clamav clamav ... /var/log/clamav/freshclam.log
步驟 2.2:修復權限(如果需要)
sudo chown clamav:clamav /var/log/clamav/freshclam.log
sudo chmod 640 /var/log/clamav/freshclam.log
步驟 2.3:確保日志目錄存在且權限正確
sudo mkdir -p /var/log/clamav
sudo chown clamav:clamav /var/log/clamav
sudo chmod 750 /var/log/clamav

3. 刪除現有日志文件并重新運行

如果日志文件損壞或被鎖定,可以刪除后重新生成:

步驟 3.1:刪除日志文件
sudo rm -f /var/log/clamav/freshclam.log
步驟 3.2:手動運行 freshclam
sudo freshclam

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77998.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77998.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77998.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

直流絕緣監測解決方案:保障工業與新能源系統的安全運行

一、引言 隨著工業自動化和新能源技術的快速發展,直流供電系統在光伏發電、儲能電站、電動汽車充電樁等領域的應用日益廣泛。然而,直流系統的正負極不接地(IT系統)特性,使得絕緣故障可能導致漏電、短路甚至設備損毀等…

VSCode 用于JAVA開發的環境配置,JDK為1.8版本時的配置

插件安裝 JAVA開發在VSCode中,需要安裝JAVA的必要開發。當前安裝只需要安裝 “Language Support for Java(TM) by Red Hat”插件即可 安裝此插件后,會自動安裝包含如下插件,不再需要單獨安裝 Project Manager for Java Test Runner for J…

C++入門語法

C入門 首先第一點,C中可以混用C語言中的語法。但是C語言是不兼容C的。C主要是為了改進C語言而創建的一門語言,就是有人用C語言用不爽了,改出來個C。 命名空間 c語言中會有如下這樣的問題: 那么C為了解決這個問題就整出了一個命名…

輸入框僅支持英文、特殊符號、全角自動轉半角 vue3

需求&#xff1a;封裝一個輸入框組件 1.只能輸入英文。 2.輸入的小寫英文自動轉大寫。 3.輸入的全角特殊符號自動轉半角特殊字符 效果圖 代碼 <script setup> import { defineEmits, defineModel, defineProps } from "vue"; import { debounce } from "…

Uniapp:創建項目

目錄 一、前提準備二、創建項目三、項目結構四、運行測試 一、前提準備 首先要創建uniapp項目&#xff0c;需要先下載HBuilderX&#xff0c;HBuilderX是一款開箱即用的工具&#xff0c;下載完畢之后&#xff0c;解壓到指定的目錄即可使用&#xff0c;需要注意的是最好路徑里面…

ESM 內功心法:化解 require 中的奪命一擊!

前言 傳聞在JavaScript與TypeScript武林中,曾有兩大絕世心法:CommonJS與ESM。兩派高手比肩而立,各自稱霸一方,江湖一度風平浪靜。 豈料,時局突變。ESM逐步修成陽春白雪之姿,登堂入室,成為主流正統。CommonJS則漸入下風,功力不濟,逐漸退出主舞臺。 話說某日,一位前…

【STL】unordered_set

在 C C C 11 11 11 中&#xff0c; S T L STL STL 標準庫引入了一個新的標準關聯式容器&#xff1a; u n o r d e r e d _ s e t unordered\_set unordered_set&#xff08;無序集合&#xff09;。功能和 s e t set set 類似&#xff0c;都用于存儲唯一元素。但是其底層數據結…

go語言八股文

1.go語言的接口是怎么實現 接口&#xff08;interface&#xff09;是一種類型&#xff0c;它定義了一組方法的集合。任何類型只要實現了接口中定義的所有方法&#xff0c;就被認為實現了該接口。 代碼的實現 package mainimport "fmt"// 定義接口 type Shape inte…

kafka auto.offset.reset詳解

在 Kafka 中&#xff0c;auto.offset.reset latest 的含義及行為如下&#xff1a; 1. ??核心定義?? 當消費者組??首次啟動??或??無法找到有效的 offset??&#xff08;例如 offset 過期、被刪除或從未提交&#xff09;時&#xff0c;消費者會從分區的??最新位置…

深度學習-損失函數

目錄 1. 線性回歸損失函數 1.1 MAE損失 1.2 MSE損失 2. CrossEntropyLoss 2.1 信息量 2.2 信息熵 2.3 KL散度 2.4 交叉熵 3. BCELoss 4. 總結 1. 線性回歸損失函數 1.1 MAE損失 MAE&#xff08;Mean Absolute Error&#xff0c;平均絕對誤差&#xff09;通常也被稱…

第六篇:linux之解壓縮、軟件管理

第六篇&#xff1a;linux之解壓縮、軟件管理 文章目錄 第六篇&#xff1a;linux之解壓縮、軟件管理一、解壓和壓縮1、window壓縮包與linux壓縮包能否互通&#xff1f;2、linux下壓縮包的類型3、打包與壓縮 二、軟件管理1、rpm1、什么是rpm&#xff1f;2、rpm包名組成部分3、如何…

Redis 鍵管理

Redis 鍵管理 以下從鍵重命名、隨機返回鍵、鍵過期機制和鍵遷移四個維度展開詳細說明&#xff0c;結合 Redis 核心命令與底層邏輯進行深入分析&#xff1a; 一、鍵重命名 1. ?RENAME?? 與 ?RENAMENX?? **RENAME key newkey?**&#xff1a; 功能&#xff1a;強制重命名…

OpenCV 模板匹配方法詳解

文章目錄 1. 什么是模板匹配&#xff1f;2. 模板匹配的原理2.1數學表達 3. OpenCV 實現模板匹配3.1基本步驟 4. 模板匹配的局限性5. 總結 1. 什么是模板匹配&#xff1f; 模板匹配&#xff08;Template Matching&#xff09;是計算機視覺中的一種基礎技術&#xff0c;用于在目…

TextCNN 模型文本分類實戰:深度學習在自然語言處理中的應用

在自然語言處理&#xff08;NLP&#xff09;領域&#xff0c;文本分類是研究最多且應用最廣泛的任務之一。從情感分析到主題識別&#xff0c;文本分類技術在眾多場景中都發揮著重要作用。最近&#xff0c;我參與了一次基于 TextCNN 模型的文本分類實驗&#xff0c;從數據準備到…

Qt-創建模塊化.pri文件

文章目錄 一、.pri文件的作用與基本結構作用基本結構 二、創建.pri文件如何添加模塊代碼&#xff1f; 一、.pri文件的作用與基本結構 作用 在Qt開發中&#xff0c;.pri文件&#xff08;Project Include File&#xff09;是一種配置包含文件&#xff0c;用于模塊化管理和復用項…

SpringCloud組件——Eureka

一.背景 1.問題提出 我們在一個父項目下寫了兩個子項目&#xff0c;需要兩個子項目之間相互調用。我們可以發送HTTP請求來獲取我們想要的資源&#xff0c;具體實現的方法有很多&#xff0c;可以用HttpURLConnection、HttpClient、Okhttp、 RestTemplate等。 舉個例子&#x…

EAL4+與等保2.0:解讀中國網絡安全雙標準

EAL4與等保2.0&#xff1a;解讀中國網絡安全雙標準 在當今數字化時代&#xff0c;網絡安全已成為各個行業不可忽視的重要議題。特別是在金融、政府、醫療等領域&#xff0c;保護信息的安全性和隱私性顯得尤為關鍵。在中國&#xff0c;EAL4和等級保護2.0&#xff08;簡稱“等保…

FFmpeg+Nginx+VLC打造M3U8直播

一、視頻直播的技術原理和架構方案 直播模型一般包括三個模塊&#xff1a;主播方、服務器端和播放端 主播放創造視頻&#xff0c;加美顏、水印、特效、采集后推送給直播服務器 播放端&#xff1a; 直播服務器端&#xff1a;收集主播端的視頻推流&#xff0c;將其放大后推送給…

【Redis】緩存三劍客問題實踐(上)

本篇對緩存三劍客問題進行介紹和解決方案說明&#xff0c;下篇將進行實踐&#xff0c;有需要的同學可以跳轉下篇查看實踐篇&#xff1a;&#xff08;待發布&#xff09; 緩存三劍客是什么&#xff1f; 緩存三劍客指的是在分布式系統下使用緩存技術最常見的三類典型問題。它們分…

Flink 2.0 編譯

文章目錄 Flink 2.0 編譯第一個問題 java 版本太低maven 版本太低maven 版本太高開始編譯擴展多版本jdk 配置 Flink 2.0 編譯 看到Flink2.0 出來了&#xff0c;想去玩玩&#xff0c;看看怎么樣&#xff0c;當然第一件事&#xff0c;就是編譯代碼&#xff0c;但是沒想到這么多問…