文章目錄
遠程管理在實際工作中,常用於在本機上對服務器進行操作。
一. 關機/重啓
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地址、 域名、 別名 ;port
是 SSH 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
命令中使用別名。