基本網路配置 網路配置的幾個相關設置: 主機名 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
通過命令的方式修改網卡名: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
#禁用網路(邏輯上禁用)
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 --- 查看網關的信息
DNS和host文件
DNS作用:實現名稱解析為IP地址
DNS查看配置的DNS是否生效:
#這個文件中的nameserver後面的是DNS伺服器地址
#search後面的是功能變數名稱,比如沒有寫完整的名字,它會自動給我們補全域尾碼。
cat /etc/resolv.conf
host文件:
/etc/host
:本地主機名資料庫和ip地址的映射,可以實現名字的解析(host文件的優先順序高於DNS,可以代替DNS做解析)
路由器
作用:把不同網段的主機連起來(類似於送快遞的快遞員)
每個路由器負責把收到的數據報文傳給下一個路由器,直到傳送到最終的主機。
路由表:
並非路由器上才有,所有的主機上都有。是用來選擇路徑的。(和網路通訊的主機都有路由表)。
linux通過 route -n 查看路由表
route命令查看路由表。
- 網關:同網段網關不用設,不同網關需要設網關。不同網段時,網關就是下一個路由器臨近當前設備的介面。(網關的作用就是為了跨網路通信的)。網關一定是和自己設備處於同一網段的。
- Metric:花費,多條路徑可達時,則根據Metric的大小來進行選擇,越小越優先。
- Genmask 網路掩碼
- Iface 該路由表項對應的輸出介面
- default: 預設路由,路由表所有路徑都不匹配的時候,就使用預設路由來匹配,預設路由的網關地址就是我們電腦網卡的網關。(網卡配置的時候加gatway的原因就是為了加預設路由)。
-
子網掩碼:確定主機所在的網路(和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
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 #後面的會覆蓋前面的值