一文細講Linux下網絡的管理

這篇主要講解在Linux下網絡的管理

那麼接下來就開始吧,如果文章有錯誤的地方請大家多多包涵,不吝在評論區指正哦~

聲明:基於Centos6.9

一、Linux下的網絡

Linux支持各種協議類型的網絡

  • TCP/IP、NetBIOS/NetBEUI、IPX/SPX、AppleTake等
  • 在網絡底層也支持Ethernet、Token Ring、ATM、PPP(PPPoE)、FDDI、Frame Relay等網絡協議。
  • 這些網絡協議是Linux內核提供的功能,具體的支持情況由內核編譯參數決定。

配置網絡參數有兩種方式:

  • 臨時性網絡配置
    • 通過命令修改當前內核中的網絡相關參數實現,配置後立即生效,重新開機後失效
  • 永久性網絡配置
    • 通過直接修改網絡相關的配置文件實現,需要重啓服務,重新開機後保留所有配置

在Linux下配置網絡,總會遇到橋接和NAT模式的概念的,這裏我簡要摘抄一下:

  • 橋接模式的虛擬機,就像一個在路由器"民政局"那裏"上過戶口"的成年人,有自己單獨的居住地址,雖然和主機住在同一個大院裏,但好歹是有戶口的人,可以大搖大擺地直接和外面通信。
  • NAT模式的虛擬機,純粹就是一個沒上過戶口的黑戶,路由器"民政局"根本不知道有這麼個人,自然也不會主動和它通信。即使虛擬機偶爾要向外面發送點的信件,都得交給主機以主機的名義轉發出去,主機還專門請了一位叫做NAT的老大爺來專門負責這些虛擬機的發信、收信事宜。
  • 僅主機模式的虛擬機,純粹是一個徹徹底底的黑奴,不僅沒有戶口、路由器"民政局"不知道這麼號人,還被主機關在小黑屋裏,連信件也不準往外發。

參考資料:

1.1常用的管理網絡命令

網絡接口相關

  • 查看網絡接口配置:ifconfig [ethX]
  • 網絡接口的啓用與停用:使用 ifup ethX 命令來啓用指定的接口,使用 ifdown ethX命令來禁用指定的接口

臨時配置相關

  • ifconfig命令可以臨時地設置網絡接口的IP參數
  • route命令可以臨時地設置內核路由表
  • 使用hostname命令可以臨時地修改主機名
  • 使用sysctl命令可以臨時地開啓內核的包轉發

使用命令來做網絡的臨時配置,要做到永久配置就需要直接修改文件的方式了!

網絡檢測的常用工具:

  • ifconfig 檢測網絡接口配置
  • route 檢測路由配置
  • ping 檢測網絡連通性
  • netstat 查看網絡狀態
  • lsof 查看指定IP 和/或 端口的進程的當前運行情況
  • host/dig/nslookup 檢測DNS解析
  • traceroute 檢測到目的主機所經過的路由器
  • tcpdump 顯示本機網絡流量的狀態

1.1配置Linux網絡練習題

檢查windows的virtualbox虛擬網卡是否禁用,如果禁用,請啓動;以root賬戶登錄,用ifconfig檢查當前網絡配置;然後分別用ifup命令啓動eth0網卡和eth1網卡,觀察結果,並記錄網卡綁定的ip地址,在第五部分記錄。關閉檢查防火牆的狀態,如果防火牆已啓動,請關閉linux系統的防火牆,

啓動putty,在Host Name輸入框中輸入eth1網卡當前的ip地址,connection type 選擇SSH,Port爲22;按“open”按鈕,提示Putty Security Alert對話框,選擇確定;分別以root賬戶,jkXX賬戶登錄

在root賬戶登錄的putty終端上查看(ps au)當前用戶運行的進程,找到jk08賬戶運行的shell程序的pid,並且在第五部分記錄。在root賬戶登錄的putty終端上,用kill命令殺死剛纔記錄的shell程序;

殺死一個進程需要什麼條件?如果是peter賬戶,是否可以殺死jason賬戶運行的進程?

答:殺死一個進程,應獲得這個進程控制的權利,比如獲得進程所屬賬戶的權限;或者獲得超級賬戶的權限。如果是peter賬戶,沒有獲得jason賬戶的權限,因此,殺死jason賬戶下運行的進程是被禁止的。

用路由命令查看當前網絡路由狀況,並用ping命令測試外部網站地址是否可以連通;並截圖

用ifconfig查看eth0的當前ip地址;修改ip地址,地址的最後一段數字比原來的大1,查看是否成功;用ifconfig修改eth0的地址,要求指定掩碼和廣播地址,其中掩碼爲B類地址掩碼;用路由命令觀察路由表的變化;

在eth1網卡上添加一個主機路由,要求其主機ip地址爲192.168.3.3;在eth0網卡上添加一個網絡路由,網絡地址爲10.20.0.0,掩碼是255.255.0.0;觀察路由表中的默認路由,根據步驟(2)觀察到的默認路由,恢復默認網關路由,並測試網絡與外部網站的連通性;

給網卡eth1設置別名eth1:0,ip地址比eth1的ip地址最後一段數字大1;從windows端,用ping命令測試eth1和eth1:0的連通性;停止eth1:0工作,觀察結果,並截圖

修該主機名稱爲serverXX(XX爲學生學號末兩位),退出shell重新登錄;觀察內核參數net.ipv4.ip_forward的值,將其修改爲1;

爲什麼默認路由記錄不見了,可能的原因是?

答:修改了默認路由經過的網卡eth0的ip地址,對原有路由影響較大,因此係統自動將默認路由刪除。

一個網卡有多個IP地址有什麼好處?

答:好處是有利於在一個網卡上綁定多個相同的網絡服務,比如可以綁定多個網站。

編輯eth0和eth1的網絡接口文件,要求修改爲啓動時自動啓動設備;並且要求eth1的地址爲192.168.56.121,網絡前綴爲26;系統重啓,檢驗網卡是否自動啓動,及其IP地址;

編輯本地域名解析配置文件,要求添加10.0.2.2地址,對應的域名爲gateXX(其中XX爲學生學號的末兩位),存盤退出;執行ping命令,參數爲gateXX,檢查通過域名是否可以連通對應的ip地址;

編輯文件,使得系統支持ip包轉發;用sysctl -p命令讓修改結果生效;

用ping命令測試網站www.qq.com,要求只發送10次ICMP測試包;用netstat命令觀察網絡接口信息;用netstat命令觀察路由表信息;用netstat命令觀察正在監聽的tcp端口;用netstat命令觀察正在監聽的udp端口;

sysctl -p看到的是配置文件中的數據,還是內存中的數據?

答:看到的既是配置文件中的數據,也是內存中的數據。因爲-p參數的意思是把配置文件中的數據更新到內存中。

二、安裝軟件

一般我們的Centos下安裝軟件可以直接使用yum命令來安裝,非常方便。在yum之前還有一個RPM,來看看它的區別:

  • rpm是由紅帽公司開發的軟件包管理方式,使用rpm我們可以方便的進行軟件的安裝、查詢、卸載、升級等工作。但是rpm軟件包之間的依賴性問題往往會很繁瑣,尤其是軟件由多個rpm包組成時。
  • Yum(全稱爲 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。基於RPM包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。

2.1yum使用


yum  [全局參數] 命令 [命令參數]

常用的全局參數:

  • -y:對yum命令的提問回答“是(yes)”
  • -C:只利用本地緩存,不從遠程倉庫下載文件
  • --enablerepo=REPO:臨時啓用指定的名爲REPO的倉庫
  • --disablerepo=REPO:臨時禁用指定的名爲REPO的倉庫
  • --installlroot=PATH:指定安裝軟件時的根目錄,主要用於爲chroot環境安裝軟件

2.2幾種常用的網絡工具

2.3練習yum安裝軟件與使用

用yum查找軟件包tree,lsof,traceroute,觀察結果;查找tree軟件包的基本信息;安裝tree,lsof,traceroute三個軟件包

運行命令tree,查看/etc目錄下的子目錄情況;運行lsof查看使用網絡tcp端口22的是哪個應用;用traceroute命令觀察某個網站經過了多少個路由

用瀏覽器打開網站http://www.rpmfind.net,分別查找軟件包system-config-network-tui, tree, ntsysv,找到軟件包,並複製下載鏈接;在linux中用wget下載鏈接,成功下載後,用長格式列出該文件

用rpm工具查看所有已經安裝的軟件包,並將結果輸出到文件installXX.txt,其中(XX爲學生學號末兩位);用rpm查看bash的軟件包信息;用rpm查看安裝包文件的數字簽名信息;

使用rpm分別安裝第2步下載的三個軟件包;它們都能順利安裝嗎?爲什麼會出錯;觀察結果,

哪個軟件包不能順利安裝,爲什麼?應該怎樣安裝該軟件?

答:system-config-network-tui-1.6.0.el6.3-4.el6.noarch.rpm軟件包不能順利安裝,因爲這個軟件包依賴其他軟件包,應把依賴的軟件包先安裝,才能安裝這個軟件包。可以yum工具安裝,它可以自動安裝依賴的軟件包。

四、總結

本文主要是總結了Linux下網絡和安裝軟件的知識~~~ 這兩個知識點在Linux下也是很重要的,是學習Linux的基礎~

NDK基礎開發流程—Linux流程

小編順便準備了關於NDK—Linux的深入講解的視頻,如需要的話可以加羣免費領取。

本人Java開發4年Android開發5年,定期分享Android高級技術及經驗分享,歡迎大家關注~(分享內容包括不限於高級UI、性能優化、架構師課程、NDK、混合式開發(ReactNative+Weex)微信小程序、Flutter等全方面的Android進階實踐技術;希望能幫助到大家,也節省大家在網上搜索資料的時間來學習,也可以分享動態給身邊好友一起學習!)

最後文末放上一個技術交流羣:Android IOC架構設計

羣內有許多技術大牛,有任何問題,歡迎廣大網友一起來交流,羣內還不定期免費分享高階Android學習視頻資料和麪試資料包~

再推薦一篇文章:“寒冬未過”,阿里P9架構分享Android必備技術點,讓你offer拿到手軟!

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