Linux 網路配置

来源:https://www.cnblogs.com/heyongshen/archive/2022/07/09/16460553.html
-Advertisement-
Play Games

基本網路配置 網路配置的幾個相關設置: 主機名 IP/netmask 路由:預設網關 DNS伺服器(主DNS伺服器、次DNS伺服器、第三個DNS伺服器) 實現名字解析的 主機名設置 修改主機名的方法: 持久化配置: 方法一:使用hostnamectl命令 #(只支持centos7以上的版本),修改了 ...


基本網路配置

網路配置的幾個相關設置:

  • 主機名
  • IP/netmask
  • 路由:預設網關
  • DNS伺服器(主DNS伺服器、次DNS伺服器、第三個DNS伺服器) --- 實現名字解析的

主機名設置

修改主機名的方法:

持久化配置:


方法一:使用hostnamectl命令      #(只支持centos7以上的版本),修改了以後把主機名存放在/etc/hostname裡面
格式:hostnamectl set-hostname XXX   #永久設置用戶名,關機後不失效

方法二:修改配置文件 /etc/hostname 保存退出    # reboot重啟生效

#註:centos6存放主機名的文件在:`/etc/sysconfig/network`  所以不能使用hostnamectl來進行修改。

臨時配置

hostname XXX #臨時修改主機名,關機後失效

查看主機名的方法

#方法一:hostnamectl(centos7以上)或者hostname

#方法二:uname(含義是unix名稱)是一個實用命令,它列印系統信息

#方法三:查看配置文件 /etc/hostname 或者/etc/sysconfig/network(CentOS 6)

網卡名相關配置

CentOS 6 之前版本網卡名稱:ethX

範例:修改CentOS8的預設網卡名,修改為ethX --- 修改配置文件的方式

配置文件:/etc/default/grub
在GRUB_CMDLINE_LINUX這一行的最後添加 net.ifnames=0 (GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0")
使用grub2-makeconfig -o /boot/grub2/grub.cfg
然後重啟:reboot

image

通過命令的方式修改網卡名:nmcli命令

#使用nmcli修改IP地址,會自動生成配置文件 -- 綠色就表示正在生效的配置
nmcli connection --- 查看當前的網路連接(一張網卡可以對應多個配置文件,通過NAME來進行切換)

#生成配置文件的方法; 
nmcli connection add con-name 名字 ifname 網卡名  #con-name:生成的NAME ifname:針對那個網卡配置的
#自動獲取ip: ipv4.nethod auto 
# type ethernet -- type:指定網路的類型

#刪除配置
nmcli connection delete  NAme(名字)

#生效配置文件
nmcli connection up 連接名(NAME) --- 同一張網卡的多個配置。同一時間只能生效一個

網路配置命令

網路配置的方法;

  • 臨時配置:用命令臨時生效,寫入記憶體

  • 持久化配置:寫入配置文件中

網路配置的方式

  • 靜態指定:

  • 動態分配:(需要配置dhcp服務)

ifconfig命令(比較老了) --- 臨時配置地址

來自於 net-tools這個包

作用:

  • 地址查看
  • 臨時配置地址

範例:使用ifconfig臨時配置ip地址和刪除

#使用ifconfig臨時配置ip地址
ifconfig 網卡名 IP/netmask #netmask是子網掩碼

#刪除臨時配置的地址方法
ifconfig 網卡名 0

#禁用網卡的方法(預設只顯示啟用的網卡)
ifconfig 網卡名 down

#啟用網卡
ifconfig 網卡名 up

#查看網卡的通信情況
ifconfig -s [網卡名]

範例:使用ifconfig給一個網卡配置多個ip

ifconfig 網卡名:num IP/netmask  #(給這個網卡起了一個別名叫做xxx:1)

netstat命令(被ss替代了)

同樣來自於net-tools這個包。可以查看當前網路的連接情況。

選項:

-t: tcp協議相關
-u: udp協議相關
-w: raw socket相關
-l: 處於監聽狀態
-a: 所有狀態
-n: 以數字顯示IP和埠
-e:擴展格式
-p: 顯示相關進程及PID

ss 命令

顯示的信息和netstat顯示的信息是一樣的。也是用來查看網路的連接情況

選項:

-t: tcp協議相關
-u: udp協議相關
-w: 裸套接字相關
-x:unix sock相關
-l: listen狀態的連接
-a: 所有
-n: 數字格式
-p: 相關的程式及PID
-e: 擴展的信息
-m:記憶體用量
-o:計時器信息

ip命令(替代了ifconfig、route命令等)

用法:ip 子命令

#ip link解決的是鏈路層的管理和查看
#顯示網路數據鏈路層狀態
ip link

#禁用網路(邏輯上禁用)
ip link set  網卡名 down

#啟用網路
ip link set 網卡名 up

#ip addr/a --- 網路層的控制
#顯示ip地址:
ip a

#添加ip地址 dev:表示給那個網卡加地址 label:相當於給這個網卡起一個別名
ip a add IP/netmask dev 網卡名 label 網卡:X

#刪除添加的地址
ip a del IP/netmask dev 網卡名 label 網卡:X


網路的持久化配置

使用命令配置的地址都是臨時性的,可以更改配置文件的方式來持久化配置網路

CentOS網卡的配置文件:

#這個網卡名子無所謂,但是為了方便管理,最好把這個名字設置和網卡的名字一樣。
/etc/sysconfig/network-scripts/ifcfg-IFACE(ifcfg-網卡名)

配置文件選項(基本選項)

IP 、子網掩碼、網關、DNS是上網必須要配置的

#因為這些都是變數,通過識別這些變數來對網卡進行設置的
- TYPE --- 介面類型;常見有的Ethernet, Bridge

- NAME --- 描述信息,一般和網卡名同名

- DEVICE --- 和當前需要配置的網卡名相匹配(針對那塊網卡進行配置)

- BOOTPROTO --- 靜態地址或動態地址,常用的dhcp(動態), static(靜態), none(也表示靜態地址), bootp

- IPADDR --- 指明IP地址 

- NETMASK --- 子網掩碼點分十進位的寫法,如:255.255.255.0

- PREFIX --- 子網掩碼CIDR表示法的寫法

- GATEWAY --- 預設網關(決定了跨路由訪問,路由器的介面地址)

- ONBOOT --- 啟用網卡還是禁用網卡 yes:啟用網卡, no:禁用網卡

- DNSx --- 指向DNS伺服器,實現名稱解析為IP地址
#如果配置了dhcp自動獲取,只需要一下信息:
DEVICE:
NAME:
BOOTPROTO:
ONBOOT:

網卡配置完成後激活配置:

CentOS 6或7:

service network restart

CentOS8:

因為沒有了network這個工具,所以需要使用 nmcli connection reload 來載入我們寫的配置文件
載入完成後就能使用nmcli connection來看到我們對應的網卡設備,然後使用 nmcli connection up Name(這個名字是我們配置文件裡面的NAME=xxx)來進行啟動。

網關的管理

route -n --- 查看網關的信息
image

DNS和host文件

DNS作用:實現名稱解析為IP地址

DNS查看配置的DNS是否生效:

#這個文件中的nameserver後面的是DNS伺服器地址
#search後面的是功能變數名稱,比如沒有寫完整的名字,它會自動給我們補全域尾碼。
cat /etc/resolv.conf

image

host文件:

/etc/host:本地主機名資料庫和ip地址的映射,可以實現名字的解析(host文件的優先順序高於DNS,可以代替DNS做解析)

路由器

作用:把不同網段的主機連起來(類似於送快遞的快遞員)
每個路由器負責把收到的數據報文傳給下一個路由器,直到傳送到最終的主機。

路由表:

並非路由器上才有,所有的主機上都有。是用來選擇路徑的。(和網路通訊的主機都有路由表)。

linux通過 route -n 查看路由表

image

route命令查看路由表。

![image](https://img2022.cnblogs.com/blog/1519088/202207/1519088-20220709212930962-388959085.png)
  • 網關:同網段網關不用設,不同網關需要設網關。不同網段時,網關就是下一個路由器臨近當前設備的介面。(網關的作用就是為了跨網路通信的)。網關一定是和自己設備處於同一網段的。
  • Metric:花費,多條路徑可達時,則根據Metric的大小來進行選擇,越小越優先。
  • Genmask 網路掩碼
  • Iface 該路由表項對應的輸出介面
  • default: 預設路由,路由表所有路徑都不匹配的時候,就使用預設路由來匹配,預設路由的網關地址就是我們電腦網卡的網關。(網卡配置的時候加gatway的原因就是為了加預設路由)。
#### 路由表的組成(四部分) - 目標網路:目標主機所在的網路id。(目標主機的網路id必須出現在路由表裡面,沒有的話就無法送達目標主機)
  • 子網掩碼:確定主機所在的網路(和IP配套使用)

  • 介面:數據從當前主機的那個介面發出去

  • 網關:最近那個路由器相鄰的介面
    直連網段的路由是自動生成的。

使用route來管理路由

route命令選項:

#選項:
-net:到一個網路的路由表;

-host:到一個主機的路由表。


#參數
Add:增加指定的路由記錄;

Del:刪除指定的路由記錄;

Target:目的網路或目的主機;

gw:設置預設網關(下一跳);

dev:路由記錄所表示的網路介面。
#添加路由 -net:指定目標網路 gw:指定網關(下一跳IP) dev:指定介面名 
route add(添加路由表) -net 目標網路 gw 網關(相鄰路由器的臨近介面) dev 介面名(出口)
#例如: route add -net 172.18.0.0/24 gw 1292.168.2.1 dev eth1  #增加一條到達172.18.0.0的路由。
#route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0    #增加一條到達244.0.0.0的路由。

#刪除路由
route del -net 目標網路/netmask

使用ip route來管理路由

#顯示路由:
ip route

#刪除路由:
ip route  delete 目標地址/netmask via 網關 dev 設備名

#添加路由: via:指定嚇一跳路由器的地址(網關)
ip route add 目標地址/netmask via 網關 dev 設備名

查看到達指定地址經過的路由器

方法1:mtr Ip

方法2:traceroute或tracepath IP

路由很關鍵,如果路由錯誤,即使處於同一網段的設備也無法通信。

通過命令配置的路由都是臨時生效的。永久保存需要寫入配置文件。

路由相關的配置文件

/etc/sysconfig/network-scripts/route-IFACE(在這個目錄下創建一個route-介面名的文件)

格式:

目標網路的網路id/netmask via 網關 (via類似於gw的意思,後面跟網關)

範例:使用centos作為路由器進行配置

路由轉發功能:從一個網卡介面收到數據包以後從另外一個網卡發送出去
Linux預設沒有開啟路由轉發功能ip_forward(路由器預設開啟了這個功能)
linux主機的特性:收到數據包會對目標數據包地址的檢查(不屬於自己就直接拋棄)

開啟IP_forward轉發功能:

#1 搜索ip_forward這個內核參數
sysctl -a | grep ip_forward #ip_forward是一個內核的參數

#2 寫入配置文件持久化保存:
vim /etc/sysctl.conf ---> net.ipv4.ip_forward = 1 (1表示開啟轉發功能,0表示關閉轉發功能)

#3 讓配置生效
sysctl -p

image

sysctl 修改內核參數

選項:

-w   臨時改變某個指定參數的值
-a   顯示所有的系統參數
-p   從指定的文件載入系統參數

配置文件

/usr/lib/sysctl.d/

/run/sysctl.d/

/etc/sysctl.d/

配置文件的執行順序:

 使用 sysctl --system | grep -v '^[a-z]'  可以查看配置文件的執行順序
 
 /usr/lib/sysctl.d/xxx ---> /etc/sysctl.d/xx ---->/etc/sysctl.conf    #後面的會覆蓋前面的值

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. mysql的資料庫連接 step1:首先需要在代碼中添加Mysql.Data的代碼依賴。如果添加失敗則需要去搜索下載安裝!如下圖:代碼導入using MySql.Data.MySqlClient; step2:建立連接//設置連接基本參數 string connStr = "server = ...
  • .NET中間件以及VUE攔截器聯合使用 工作中遇見的問題,邊學邊弄,記錄一下 Vue的UI庫使用的是antvue 3.2.9版本的。 業務邏輯 特性 //特性 public class ModelEsignNameAttribute : Attribute { public ModelEsignNa ...
  • 主機名 查看主機名: hostname cat /etc/hostname 。。。 修改主機名: hostnamectl set-hostname xxx (和centos7、8一樣), #主機名最終存放在`/etc/hostname`下麵。 網卡名稱 命名方式和centos7的命名方式類似。 修改 ...
  • 網橋:和交換機工作原理一樣的一個硬體。 網橋內部有一個緩存,裡面放了介面和mac地址的對應關係。 橋接、NAT和僅主機模式: NAT網卡(vmnet8):相當於一個虛擬的集線器(Vmnet8),兩台使用nat模式的虛擬機能夠通信,是因為它都連接到了這個集線器(hub)上面。windows裡面本省就生 ...
  • 最近在linux下使用Chrome瀏覽器,第一次啟動時總是要輸入密碼,根據網上的方法取消輸入密碼,密碼總是回來,甚是惱人。經過思考和嘗試,最終問題得以解決。特將註意事項記錄如下: Chrome瀏覽器保存密碼和自動登錄等會生成和使用密鑰環,預設使用系統登錄用戶密碼生成和解鎖密鑰環,而密鑰環不會自動解鎖 ...
  • 多網卡綁定: 把多塊網卡邏輯上綁在一塊使用,對外就相當於一塊網卡,他們共用一個ip地址。 好處: 防止一塊網卡壞了就無法使用,提升帶寬。 工作模式: mod=0:輪詢模式,兩個網卡輪流處理數據包。 提升帶寬和容錯性 mod=1:主備模式,住在一個網卡上處理,主壞了就使用備用的。 只提升了容錯性 註: ...
  • 目錄 一、前景回顧 二、鎖的實現 三、使用鎖實現console函數 四、運行測試 一、前景回顧 上回我們實現了多線程,並且最後做了一個小小的實驗,不過有一點小瑕疵。 可以看到黃色部分的字元不連續,按道理應該是“argB Main”,這是為什麼呢?其實仔細思考一下還是很好得出結論。我們的字元列印函數是 ...
  • 記錄一次重裝電腦黑屏問題解決辦法與解決思路 2022年7月9日,因本身電腦是win7電腦,而我又想要安裝office2020版,可2020版需要win10系統,於是綜上需求,鄙人決定重裝電腦。可誰能想到,這是噩夢的開始!!! 第一次重裝 如往常一般,熟練的插上PE盤,熟練的清空硬碟數據,熟練的重裝系 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...