Linux基礎之遠程管理常見命令


遠程管理在實際工作中,常用於在本機上對服務器進行操作。

一. 關機/重啓

shutdown 選項 時間 命令可以安全的 關機 或者 重新啓動系統。

選項 含義
-r 重新啓動

注:

  • 不指定選項和時間,默認一分鐘後關閉電腦
  • 維護遠程服務器時,最好不要關閉系統,而是重新啓動系統

常用示例:

# 立刻關機 now表示現在
shutdown now

# 立刻重啓
shutdown -r now

# 五分鐘後重啓 
shutdown -r +5

# 在10:00重啓
shutdown -r 10:00

# 取消之前的 關機/重啓 計劃
shutdown -c 

二. 查看網卡信息和檢查連接信息

01. 網卡 和 IP地址

  • 網卡是一個專門負責網絡通訊的硬件設備
  • IP 地址是設置在網卡上的地址信息

我們可以把 電腦 比作 電話網卡 相當於 SIM 卡IP 地址 相當於 電話號碼

02. ifconfig

ifconfig 可以查看計算機當前的網卡配置信息。

配置信息分爲兩個部分,本地 IP 地址包含在第一部分,第二部分中的 127.0.0.1本地環回地址,一般用來測試本機網卡是否正常。

ifconfig | grep inet 可以更清晰的查看到 IP 地址。

注:

  • 一臺計算機中有可能會有一個 物理網卡 和 多個虛擬網卡,在 Linux 中物理網卡的名字通常以 ensXX 表示。

03. ping

ping 一般用於檢測計算機到目標計算機的連接是否通暢,並且可以用 Ctrl + c 來終止命令執行。

網絡上的機器都有 唯一確定的 IP 地址,我們給目標 IP 地址發送一個數據包,對方就要返回一個數據包,根據返回的數據包以及時間,我們可以確定目標主機的存在。

因爲 域名最終指向的就是IP地址 , 所以我們也可以用ping向一個域名。 例如:

ping www.pornhub.com

三. 遠程登錄和複製文件

01. SSH

(1). SSH相關背景知識

在日常工作中,我們通常都是在本地遠程登錄到服務器上進行維護操作的。在 Linux 中 SSH 是非常常用的工具,通過 SSH客戶端 我們可以直接連接到運行了 SSH服務器 的遠程機器上。

SSH客戶端 是一種使用 Secure Shell (SSH) 協議連接到遠程計算的軟件程序。

  • SSH 是目前較可靠,專爲 遠程登錄會話和其他網絡服務 提供安全性的協議;可以有效防止遠程管理過程中的信息泄露。 通過 SSH協議 對所有傳輸的數據進行加密,也能夠防止 DNS 欺騙和 IP 欺騙
  • 通過 SSH 傳輸的數據是可以進行壓縮的,所以可以大大加快傳輸數據的效率

SSH服務器 的默認端口號爲 22,如果是默認端口號,那麼在連接的時候就可以省略。

拓展

  • 端口號:通過 端口號可以找到計算機上運行的應用程序。
  • 常見服務端口號有:
服務 端口號
SSH服務器 22
web服務器 80
HTTPS 443
FTP服務器 21

(2). SSH客戶端的簡單使用

Linux 或者 Unix(Mac就是基於Unix的) 操作系統上是自帶SSH服務的,可以直接在終端中使用命令來連接機器。

ssh [-p port] user@remote
  • user 是遠程機器上的用戶名,如果不指定就默認爲當前用戶 ;
  • remote 是遠程機器的地址,可以是 IP地址域名別名
  • portSSH Server 監聽的端口,如果不指定默認值爲 22
  • 在實際工作中可能 SSH服務器 的端口不是 22 ,那麼就需要 -p 選項來指定正確的端口 ;
  • 使用命令 exit 可以退出當前用戶的登錄。

Windows 系統中不能使用SSH命令,我們可以安裝 Putty 或者 XShell 客戶端來完成遠程登錄管理操作。
下載地址: Putty /// XShell


02. SCP

SCP 就是 secure copy, 是一個在 Linux 下用來遠程拷貝文件 的命令。它和 SSH 的格式基本相同,但是需要注意的是,在指定端口時用大寫的 P 而不是小寫。

選項 含義
-r 若給出的源文件是目錄文件,則 scp 將遞歸複製該目錄下的所有子目錄和文件,目標文件必須爲一個目錄名
-P 若遠程 SSH 服務器的端口不是 22,需要使用大寫字母 -P 選項指定端口

示例:

# 把本地當前目錄下的 01.py 文件 複製到 遠程 家目錄下的 Desktop/01.py
# 注意:`:` 後面的路徑如果不是絕對路徑,則以用戶的家目錄作爲參照路徑
scp -P port 01.py user@remote:Desktop/01.py

# 把遠程 家目錄下的 Desktop/01.py 文件 複製到 本地當前目錄下的 01.py
scp -P port user@remote:Desktop/01.py 01.py

# 加上 -r 選項可以傳送文件夾
# 把當前目錄下的 demo 文件夾 複製到 遠程 家目錄下的 Desktop
scp -r demo user@remote:Desktop

# 把遠程 家目錄下的 Desktop 複製到 當前目錄下的 demo 文件夾
scp -r user@remote:Desktop demo

scp 這個終端命令只能用在 Linux 或者 Unix 系統下,如果在 Windows 系統中可以安裝 FileZilla 使用 FTP 進行文件傳輸。

  • FileZilla 下載地址
  • FileZilla 在傳輸文件時,使用的是 FTP 服務 而不是 SSH 服務,因此端口號應該設置爲 21

注:FileZilla 連接 Linux 失敗,顯示狀態爲 :嘗試連接“ECONNREFUSED - 連接被服務器拒絕”失敗, 解決方法請點擊此博客


03. 免密碼登錄 和 配置別名

使用 Linux 系統作爲客戶端,在與服務器遠程連接或傳輸文件時,總是要輸入服務器密碼,還要輸入長長一串 [-p/P port] user@remote 。每登陸一次,都要輸入一次,實在是很麻煩。

我們可以分別利用 設置免密碼登錄配置經常連接的主機的別名 來解決這一麻煩。 這兩個設置都是通過修改 SSH 配置信息完成的,而有關 SSH 配置信息都保存在用戶家目錄下的 .ssh 目錄下。

(1). 設置免密碼登錄

首先我們來了解一下 非對稱加密算法

  • 使用 公鑰加密 的數據,需要 私鑰解密
  • 使用 私鑰加密 的數據,需要 公鑰解密

步驟一: 在終端中執行一次 ssh-keygen 命令就可以生成,一個名爲 id_rsa 的私鑰文件和另一個名爲 id_rsa.pub 的公鑰文件。

步驟二: 執行 ssh-copy-id -p port user@remote 命令,將公鑰文件發給服務器。 這樣,再次登錄服務器的時候,就不需要輸入密碼了。

免密原理:
在完成上面的操作後,本地擁有 公鑰、私鑰兩個文件,在傳輸數據的時候使用 私鑰 對數據加密併發送到服務器。 而服務器擁有 公鑰文件, 可以對數據解密。 完成操作後,將數據用 公鑰 加密並返回給本地。
這一來一回的過程中,數據在網絡中傳輸時,都是加密的。 避免了數據被盜取的風險,並在步驟二中已經確認過本地請求遠程登錄者的身份後(簡單的說就是步驟二中輸入過一次服務器密碼 o(╯□╰)o ),就可以進行免密登錄了。

(2). 設置別名

步驟一:.ssh 目錄下執行命令 touch config 。創建一個名爲 config 的文件。

步驟二:config 文件中追加以下內容:

Host 別名
    HostName ip地址
    User 用戶名
    Port 端口號

這樣就可以使用命令 ssh 別名 來實現遠程登錄了,同樣也可以在 scp 命令中使用別名。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章