Linux 系統網絡配置及 IP 地址相關知識匯總
一、IP地址基礎
IP地址:在計算機網絡中用來唯一標識一臺設備的一組數字。
二、IPv4相關知識
1. IPv4的表示方法
- 采用點分十進制表示,即由4個0-255的十進制數通過點分隔組成(如192.168.1.1)。
2. IPv4地址結構
- 網絡位:表示設備所在的網絡。
- 主機位:表示該網絡中具體的某臺設備。
3. IPv4分類及范圍
類別 | 地址范圍 | 網絡位長度(前綴) |
---|---|---|
A類 | 0.0.0.0~127.255.255.255 | /8 |
B類 | 128.0.0.0~191.255.255.255 | /16 |
C類 | 192.0.0.0~223.255.255.255 | /24 |
D類 | 224.0.0.0~239.255.255.255 | -(組播地址) |
E類 | 240.0.0.0~255.255.255.255 | -(保留地址) |
4. IPv4私有地址
- A類私有地址:10.0.0.0-10.255.255.255
- B類私有地址:172.16.0.0-172.31.255.255
- C類私有地址:192.168.0.0-192.168.255.255
三、網卡配置(Linux系統)
1. 網卡配置文件路徑
- 位置:
/etc/sysconfig/network-scripts/ifcfg-ens33
(ens33為網卡設備名,可能因系統不同而變化)
2. 圖形化配置工具
nmtui
:通過終端圖形界面配置網絡
四、修改IPv4地址的方法
1. 通過修改網卡配置文件
- 打開配置文件:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
- 配置文件主要參數及說明:
TYPE=Ethernet
:網卡類型(以太網)BOOTPROTO=none
:網絡配置方式(none/static為手動配置,dhcp為自動獲取)NAME=ens33
:網絡連接名稱UUID=ed07dcae-82b4-4507-a877-071708e771f9
:網卡的唯一標識DEVICE=ens33
:網卡設備名稱ONBOOT=yes
:網卡下次啟動狀態(yes啟動,no不啟動)IPADDR=192.168.100.10
:IPv4地址PREFIX=24
:網絡位(子網掩碼,等同于NETMASK=255.255.255.0
)GATEWAY=192.168.100.254
:網關DNS1=114.114.114.114
:DNS服務器
- 重啟網絡使配置生效:
systemctl restart network
- 或
nmcli connection up ens33
2. 命令行修改(nmcli工具)
- 列出當前所有網絡連接:
nmcli connection show
- 修改網絡參數示例(將ens33的IP改為172.16.30.200/24,網關172.16.30.2,DNS為172.16.30.254):
nmcli connection modify ens33 ipv4.addresses 172.16.30.200/24 ipv4.gateway 172.16.30.2 ipv4.dns 172.16.30.254 ipv4.method manual connection.autoconnect yes
- 激活網絡連接:
nmcli connection up ens33
五、移除網卡及相關信息
- 刪除網卡配置文件:
cd /etc/sysconfig/network-scripts/ rm -rf ifcfg-ens33
- 刪除網卡網絡連接:
nmcli connection delete ens33
- 移除虛擬機網卡:虛擬機→設置→選中網絡適配器→移除→確定
六、添加網卡及配置
- 添加虛擬機網卡:虛擬機→設置→添加→網絡適配器→添加→選擇僅主機→確定
- 添加網絡連接:
nmcli connection add con-name ens33 ifname ens33 type ethernet
- 配置IPv4地址:
nmcli connection modify ens33 ipv4.addresses 172.16.30.30/24 ipv4.gateway 172.16.30.1 ipv4.dns 172.16.30.254 ipv4.method manual connection.autoconnect yes
- 激活網絡連接:
nmcli connection up ens33
七、IPv6相關知識
1. IPv6地址示例及結構
- 示例:
2001:db8:0:1::c000:207/64
(網關:2001:db8:0:1::1
) - 結構:共128個比特位,由8組組成,每組4個十六進制數,組之間用冒號分隔。
2. IPv6地址簡化規則
- 可省略每組中的前導零,如
FC00:0000:130F:0000:0000:09C0:876A:130B
可簡化為FC00:0:130F::09C0:876A:130B
- 連續的零組可用雙冒號
::
代替(僅能使用一次)
3. 配置IPv6地址(nmcli工具)
nmcli connection modify ens33 ipv6.addresses 2001:db8:0:1::c000:207/64 ipv6.gateway 2001:db8:0:1::1 ipv6.method manual connection.autoconnect yes
nmcli connection up ens33
八、IP轉發配置
1. 查看IP轉發是否開啟
cat /proc/sys/net/ipv4/ip_forward
(1為開啟,0為未開啟)
2. 開啟IP轉發
- 編輯配置文件:
vim /etc/sysctl.conf
- 添加或修改參數:
net.ipv4.ip_forward = 1
- 使配置生效:
sysctl -p /etc/sysctl.conf
九、靜態路由配置
1. 添加靜態路由
- 目標為主機:
route add -host 目標主機IP gw 網關地址 dev 接口
- 示例:
route add -host 172.16.40.10 gw 172.16.30.254 dev ens33
- 示例:
- 目標為網絡:
- 帶網關:
route add -net 目標網絡 netmask 子網掩碼 gw 網關地址 dev 接口
- 示例:
route add -net 172.16.30.0 netmask 255.255.255.0 gw 172.16.20.1 dev ens33
- 示例:
- 不帶網關:
route add -net 目標網絡 netmask 子網掩碼 dev 接口
- 示例:
route add -net 172.16.30.0 netmask 255.255.255.0 dev ens33
- 示例:
- 帶網關:
2. 刪除靜態路由
- 目標為主機:
route del -host 目標主機IP gw 網關地址 dev 接口
- 目標為網絡:
- 帶網關:
route del -net 目標網絡 netmask 子網掩碼 gw 網關地址 dev 接口
- 不帶網關:
route del -net 目標網絡 netmask 子網掩碼 dev 接口
- 帶網關:
3. 注意事項
- 目標為主機時,必須指定網關
- 目標為網段時,可指定網關,也可不指定
十、實驗報告示例(主機網絡配置)
-
主機1(chenyu1):
- 網絡模式:僅主機模式
- IP地址:172.16.30.10
- 子網掩碼:255.255.255.0
- 網關:172.16.30.254
-
主機2(chenyu2):
- 網絡模式:僅主機模式
- IP地址:172.16.40.10
- 子網掩碼:255.255.255.0
- 網關:172.16.40.254
小實驗
1、使用命令配置兩臺主機的ip信息
2、添加路由,使兩臺主機能夠通信
一,配置主機的IP信息
方法一:
[root@huangruizhe1 network-scripts]# nmcli connection show
# 查看當前主機所有可用的網絡連接(包括連接名稱、UUID、類型等信息)
NAME UUID TYPE DEVICE
ens33 ed07dcae-82b4-4507-a877-071708e771f9 ethernet ens33
ens36 70d146eb-03c6-4298-8298-6ed98d87f39b ethernet ens36
virbr0 d97d5c35-008e-4912-9b58-3c8a00a254f5 bridge virbr0 [root@huangruizhe1 ~]# cd /etc/sysconfig/network-scripts/
# 切換到Linux系統中網卡配置文件所在的目錄(該目錄存放所有網絡接口的配置文件)
[root@huangruizhe1 network-scripts]# ls
# 列出該目錄下的文件(查看已存在的網卡配置文件,如ifcfg-ens33等)
ifcfg-ens33 ifdown-ipv6 ifdown-tunnel ifup-isdn ifup-TeamPort
ifcfg-ens36 ifdown-isdn ifup ifup-plip ifup-tunnel
ifcfg-lo ifdown-post ifup-aliases ifup-plusb ifup-wireless
ifdown ifdown-ppp ifup-bnep ifup-post init.ipv6-global
ifdown-bnep ifdown-routes ifup-eth ifup-ppp network-functions
ifdown-eth ifdown-sit ifup-ib ifup-routes network-functions-ipv6
ifdown-ib ifdown-Team ifup-ippp ifup-sit
ifdown-ippp ifdown-TeamPort ifup-ipv6 ifup-Team[root@huangruizhe1 network-scripts]# vim ifcfg-ens36
# 使用vim編輯器創建或編輯名為ifcfg-ens36的網卡配置文件(ens36為網卡設備名,用于配置該網卡的IP、網關等網絡參數)
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36
UUID=70d146eb-03c6-4298-8298-6ed98d87f39b
DEVICE=ens36
ONBOOT=yes
IPADDR=192.168.100.11
PREFIX=24
GATEWAY=192.168.100.254
DNS1=114.114.114.114
用i鍵進入編輯模式直接改IPADDR=192.168.100.11那一行后用Esc進入命令模式用:wq保存退出
[root@huangruizhe1 network-scripts]systemctl restart network
# 重啟系統的網絡服務,使所有網絡配置(如網卡配置文件的修改)生效
# 該命令會重啟整個網絡服務,影響所有網絡接口[root@huangruizhe1 network-scripts]nmcli connection up ens36
# 激活名為ens36的網絡連接(使該連接的配置生效,如IP地址、網關等)
方法二
[root@huangruizhe1]nmcli connection modify ens 33 ipv4.addresses 192.168.100.11/24 ipv4.gateway 192.168.100.254 ipv4.dns 114.114.114.114 ipv4.method manual connection.autoconnect yes
# 使用nmcli命令名為ens36的網絡連接的相關配置
nmcli connection modify ens36
ipv4.addresses 192.168.100.11/24 # 設置IPv4地址為192.168.100.11,子網掩碼為255.255.255.0(/24表示網絡位長度為24位)ipv4.gateway 192.168.100.254 # 設置IPv4網關地址為192.168.100.254(用于跨網段通信的出口設備IP)
ipv4.dns 114.114.114.114 # 設置DNS服務器地址為114.114.114.114(用于將域名解析為IP地址)
ipv4.method manual # 設置IPv4的配置方式為手動(靜態配置,需手動指定IP、網關等,而非通過DHCP自動獲取)
connection.autoconnect yes # 設置該網絡連接在系統啟動時自動激活(開機后無需手動開啟該連接)[root@huangruizhe1]nmcli connection up ens 36
激活網卡
二、添加路由,使兩臺主機能夠通信
主機一
route add -host 192.168.200.21 gw 192.168.100.254 dev ens 36
主機二
route add -host 192.168.100.11 gw 192.168.200.254 dev ens 36