09-常用指令(3)
網路配置
網路地址轉換 NAT
NAT 概述
- 需要在專用網連線到網際網路的路由器上安裝 NAT 軟體。裝有 NAT 軟體的路由器叫作 NAT路由器,它至少有一個有效的外部全球IP地址
- 所有使用本地地址的主機在和外界通訊時,都要在 NAT 路由器上將其本地地址轉換成全球 IP 地址,才能和網際網路連線
NAT 路由器工作原理
VMWare 配置 NAT
虛擬機器設定
每一個 VMnet* 相當於一個網路,虛擬機器如果想要上網,就設定成 VMnet 的網段內的 IP 地址。通過預設閘道器(也就是在宿主機中虛擬出來的網絡卡地址,它也在這個網段裡,也是該網段的預設閘道器),發給物理機,宿主機的虛擬網絡卡收到該資料報後,再將資料報源地址改為物理機的公網地址,最後向外轉發(就是 NAT 的過程)。
- VMnet* 相當於你物理機裡的一個網段,上網的時候統統用物理機的公網地址替換了(NAT)
- 要想讓虛擬機器上網,必須把物理機的網絡卡放入和虛擬機器一個網段,資料才能出去
- 虛機若想訪問物理機的共享資源 / Ping,地址應該寫物理機虛擬網絡卡的地址而不是公網地址
虛擬網路編輯器
Linux 網路環境配置
自動獲取 IP
- 說明:登陸後,通過介面的來設定自動獲取 IP
- 特點:Linux 啟動後會自動獲取 IP,缺點是每次自動獲取的 IP 地址可能不一樣
指定固定 IP
說明:通過修改配置檔案 /etc/sysconfig/network-scripts/ifcfg-ens33
來指定 IP。
程序管理
基本介紹
- 在 Linux 中,每個執行的程式(程式碼)都稱為一個"程序"。每一個程序都分配一個 ID 號。
- 每一個程序,都會對應一個父程序,而這個父程序可以複製多個子程序。例如 www 伺服器。
- 每個程序都可能以 2 種方式存在的:前臺與後臺
- 前臺程序就是使用者目前的螢幕上可以進行操作的
- 後臺程序則是實際在操作,但由於螢幕上無法看到的程序,通常使用後臺方式執行
- 一般系統的服務都是以後臺程序的方式存在,而且都會常駐在系統中,直到關機才結束。
顯示系統執行的程序
- 指令格式:
ps –aux | grep xxx
- 功能描述:是用來檢視目前系統中,有哪些正在執行,以及它們執行的狀況
- 常用的引數有
aux
,也可以不加任何引數ps -a
顯示當前終端的所有程序資訊ps -u
以使用者的格式顯示程序資訊ps -x
顯示後臺程序執行的引數
- 若只希望檢視 sshd 服務的程序狀況:
ps -aux | grep sshd
- 查詢結果的列名說明
檢視程序的父程序
- 要求:以全格式顯示當前所有的程序,檢視程序的父程序
ps -ef
是以全格式顯示當前所有的程序。引數-e
顯示所有程序,-f
表示"全格式"- 若只關心個別程序,可通過
ps -ef | grep xxx
對查詢結果進行過濾 - 查詢結果的列名說明
檢視程序樹,可以更加直觀的來看程序資訊
- 基本語法:
pstree [選項]
- 常用選項:
-p
顯示程序的 PID-u
顯示程序的所屬使用者
- 應用例項:
- 以樹狀的形式顯示程序的 pid
- 以樹狀的形式程序的使用者 id
- 以樹狀的形式顯示程序的 pid
終止程序
- 基本介紹:若是某個程序執行一半需要停止時,或是已消了很大的系統資源時,此時可以考慮停止該程序。使用
kill
命令來完成此項任務。 - 基本語法
kill [選項] 程序號
:通過程序號殺死程序killall 程序名稱
:通過程序名稱殺死程序,也支援萬用字元,這在系統因負載過大而變得很慢時很有用
- 常用選項:
-9
表示強迫程序立即停止 - 最佳實踐
- 踢掉某個非法登入使用者
- 終止遠端登入服務 sshd,在適當時候再次重啟 sshd 服務
- 終止多個 gedit 編輯器:
killall gedit
- 強制殺掉一個終端
- 踢掉某個非法登入使用者
服務管理
簡述
服務(service) 本質就是程序,但是是執行在後臺的,通常都會監聽某個埠,等待其它程式的請求,比如(mysql,sshd,防火牆等),因此我們又稱為守護程序,是 Linux 中非常重要的知識點。
systemctl
指令:systemctl [start | stop | restart | reload | status] 服務名
檢視當前防火牆的狀況,關閉防火牆和重啟防火牆
- iptables 是 Linux 中對網路資料包進行處理的一個功能元件,就相當於防火牆,可以對經過的資料包進行處理,例如:資料包過濾、資料包轉發等等。iptables 其實是一堆規則,防火牆根據 iptables 裡的規則,對收到的網路資料包進行處理。iptables 裡的資料組織結構分為:表、鏈、規則。
- iptables 在 CentOS 7 版本上需要自行安裝:
yum install iptables-services
- 檢查是否安裝成功
- 啟動 iptables:
systemctl start iptables.service
- 有關命令
systemctl start iptables #啟動 systemctl status iptables #檢視執行狀態 systemctl restart iptables.service #重啟 systemctl stop iptables.service #停止 systemctl enable iptables.service #設定開機啟動 systemctl disable iptables.service #禁止開機啟動
- 關閉或者啟用防火牆後,立即生效。[telnet 測試某個埠即可]
- 這種方式只是臨時生效,當重啟系統後,還是迴歸以前對服務的設定。如果希望設定某個服務自啟動或關閉永久生效,要使用
chkconfig
指令
檢視服務名
- 使用
setup → 系統服務
就可以看到
- 檢視
/etc/init.d/服務名稱
服務的執行級別
- 檢視或者修改預設級別:
vi /etc/inittab
- Linux 有 7 種執行級別(RunLevel):常用的是級別 3 和 5
- 執行級別0:系統停機狀態,系統預設執行級別不能設為 0,否則不能正常啟動
- 執行級別1:單使用者工作狀態,root 許可權,用於系統維護,禁止遠端登陸
- 執行級別2:多使用者狀態(沒有NFS),不支援網路
- 執行級別3:完全的多使用者狀態(有NFS),登陸後進入控制檯命令列模式
- 執行級別4:系統未使用,保留
- 執行級別5:X11 控制檯,登陸後進入圖形 GUI 模式
- 執行級別6:系統正常關閉並重啟,預設執行級別不能設為 6,否則不能正常啟動
- 開機的流程說明
- 如果不小心將預設的執行級別設定成 0 或者 7 ,怎麼處理?進入單使用者模式,修改成正常的即可
通過 chkconfig 命令可以給每個服務的各個執行級別設定自啟動/關閉。 chkconfig 重新設定服務後自啟動或關閉,需要重啟機器 reboot 才能生效。
chkconfig --list | grep xxx
chkconfig 服務名 --list
chkconfig --level 5 服務名 on/off
- 請顯示當前系統所有服務的各個執行級別的執行狀態
chkconfig --list
- 請檢視 sshd 服務的執行狀態
service sshd status
- 將 sshd 服務在執行級別 5 下設定為不自動啟動
chkconfig --level 5 sshd off
- 當執行級別為 5 時,關閉防火牆
chkconfig --level 5 iptables off
- 在所有執行級別下,關閉防火牆
chkconfig iptables off
- 在所有執行級別下,開啟防火牆
chkconfig iptables on
動態監控程序
- 基本語法:
top [選項]
- 功能描述:top 與 ps 命令很相似。它們都用來顯示正在執行的程序。top 與 ps 最大的不同之處,在於 top 在執行一段時間可以更新正在執行的的程序。
- 選項說明
- 互動操作說明
- 應用例項
- 監視特定使用者
- top:輸入此命令,按回車鍵,檢視執行的程序
- u:然後輸入
u
回車,再輸入使用者名稱即可
- 終止指定的程序
- top:輸入此命令,按回車鍵,檢視執行的程序
- k:然後輸入
k
回車,再輸入要結束的程序 ID 號
- 指定系統狀態更新的時間(每隔10秒自動更新):
top -d 10
- 監視特定使用者
監控網路狀態
netstat
- 基本語法:
netstat [選項]
- 功能描述:檢視系統網路服務的情況
- 選項說明
-an
按一定順序排列輸出-p
顯示哪個程序在呼叫
- 示例
- 檢視系統所有的網路服務:
netstat -anp | more
- 檢視服務名為 sshd 的服務的資訊
- 檢視系統所有的網路服務:
ping
一種網路檢測檢測工具,它主要是用檢測遠端主機是否正常,或是兩部主機間的介質是否為斷、網線是否脫落或網絡卡故障。
RPM 包管理
簡述
一種用於網際網路下載包的打包及安裝工具,它包含在某些Linux分發版中。它生成具有 .RPM 副檔名的檔案。RPM 是 RedHat Package Manager(RedHat 軟體包管理工具)的縮寫,類似 Windows 的 setup.exe,這一檔案格式名稱雖然打上了 RedHat 的標誌,但理念是通用的。
Linux 的分發版本都有采用 (如 suse,redhat,centos ...),可以算是公認的行業標準了。
查詢 rpm
- rpm 包的簡單查詢指令:
rpm –qa | grep xx
- rpm 包名基本格式
- 其它查詢指令
rpm -qa | more
查詢所安裝的所有 rpm 軟體包rpm -qi 軟體包名
查詢軟體包資訊rpm -q 軟體包名
查詢軟體包是否安裝rpm -ql 軟體包名
查詢軟體包中的檔案rpm -qf 檔案全路徑名
查詢檔案所屬的軟體包
解除安裝 rpm
- 基本語法:
rpm -e RPM包的名稱
- 細節討論
- 如果其它軟體包依賴於您要解除安裝的軟體包,解除安裝時則會產生錯誤資訊。如:
rpm -e foo
removing these packages would break dependencies:foo is needed by bar-1.0-1
- 如果我們就是要刪除 foo 這個 rpm 包,可以增加引數
--nodeps
,就可以強制刪除,但是一般不推薦這樣做,因為依賴於該軟體包的程式可能無法執行。如:rpm -e --nodeps foo
- 如果其它軟體包依賴於您要解除安裝的軟體包,解除安裝時則會產生錯誤資訊。如:
安裝 rpm
- 基本語法:
rpm -ivh RPM包全路徑名稱
- 引數說明
- i=install 安裝
- v=verbose 提示
- h=hash 進度條
- 以安裝 Firefox 為例,需要先找到 rpm 包:掛載當初安裝 Linux 的 ISO 檔案
YUM
- Yum 是一個 Shell 前端軟體包管理器。基於 RPM 包管理,能夠從指定的伺服器自動下載 RPM 包並且安裝(要求聯網),可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包。
- yum 的基本指令
- 查詢 yum 伺服器是否有需要安裝的軟體:
yum list | grep xxx
- 安裝指定的 yum 包:
yum install xxx
- 查詢 yum 伺服器是否有需要安裝的軟體:
- 示例:使用 yum 的方式來安裝 Firefox