這篇博客的主旨就想文章題目說的那樣,當咱們拿到一臺新的系統時,咱們怎麼實現讓你的主機鏈接到網絡中。配置網絡就是給你的系統配置IP地址,子網掩碼,網關以及DNS。也就是說配置好這幾項計算機上網的主要條件,就能實現你的系統聯網了。此外,配置網絡總結來說有兩種方法;一是經過命令直接配置。經過命令配置的網絡知識暫時實現系統聯網,想要游泳聯網就要經過把配置內容寫入配置文件來實現了。配置網絡雖然步驟並不複雜可是其背後的知識量仍是至關龐大的,咱們只有瞭解其中的配置原理才能正確高效的去配置網絡從而實現計算機聯網。這篇博客主要介紹了配置網絡的經常使用命令,以及配置文件。經過示例的形式讓你更直觀的去理解配置方法。CentOS7版本通過改版之後這部份內容與以前的CentOS版本相差較大,我會把CentOS7版本的相關知識分開單獨介紹。linux
IP/mask
路由:默認網關
DNS:服務器指向,域名解析
主DNS服務器
次DNS服務器
第三DNS服務器ios
動態分配
DHCP: Dynamic Host Configuration Protocolshell
接口命名方式:
CentOS 6:不穩定
以太網:eth [0,1,2,3,...]
CentOS7:
網絡接口的命名方式有所變化:網絡接口的命名與物理環境有關。數據庫
ifconfig,route,netstatcentos
用來配置網絡接口的命令,當即生效,但不是永久生效。
ifconfig [interface] #不加接口顯示本機全部活動狀態的網絡接口,加接口只顯示指定接口的信息
ifconfig -a # 顯示本機全部網絡接口
ifconfig IFACE [up|down] #啓用禁用網絡接口
ifconfig interface [aftype] options | address ...
ifconfig IFACE IP/netmask [up] #修改網絡地址
示例:[root@CentOS6 ~]#ifconfig eth1 172.18.45.61/16
第二種寫法相對複雜因此不用
ifconfig IFACE IP netmask NETMASK
注意:當即生效 啓
啓用混雜模式:[-]promisc #加-號禁用混雜模式服務器
路由管理命令 ,配置路由信息
route -n #查看路由信息
route add #添加路由
寫法:
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
-net :指定添加網絡路由
-host:指定添加主句路由
若是目標網絡是0.0.0.0那麼表示添加的是一個默認路由
target:目標網絡,若是目標是一個主機,那麼表示目標主機的IP地址,若是目標是一個網,那麼表示網絡
gw:網關
dev:指定本地網卡
示例:
增長主機路由:
目標:192.168.1.3 網關:172.18.0.1
route add -host 192.168.1.3 gw 172.18.0.1 dev eth0 #添加主機路由默認mask值是32位精確匹配,因此不用寫
增長網絡路由:
目標:192.168.0.0 網關:172.18.0.1
route add -net 192.168.0.0/24 gw 172.18.0.1 dev eth0
增長默認路由:
route add default gw 172.18.0.1
刪除主機路由:
目標:192.168.1.3 網關172.18.0.1
route dal -host 192.168.1.3
刪除網絡路由:
目標:192.168.0.0 網關:172.18.0.1
route del -net 192.168.0.0/24網絡
網絡狀態查看命令app
netstat [--tcp|-t] [--udp|-u] [--raw|-w] [-listening|-l] [--all|-a] [--numeric|-n] [--extend|-e-extend|-e]][--program|-p]
-t: 顯示TCP協議的相關連接
-u:顯示UDP協議的相關連接
-w:顯示裸套接字的相關連接,不通過傳輸層,由應用層直接調用ARP進行數據傳輸。
-l:只顯示監聽狀態的鏈接
-a:顯示全部鏈接
-n:不反解IP地址
-e:拓展格式
-p:顯示與哪一個程序創建鏈接
經常使用組合:
-tan:全部TCP相關的鏈接
-uan:全部UDP相關的鏈接
-tnl:TCP協議下,處於監聽狀態的鏈接
-unl:UDP協議下處於監聽狀態的鏈接(雖然UDP協議下沒有網絡狀態的概念,可是仍然能夠這樣使用)ssh
netstat {--route|-r} [--numeric|-n]
-r: 顯示內核路由表
-n: 數字格式socket
netstat {--interfaces|-I|-i} [iface] [--all|-a] [-extend|-e] [--program|-p] [--numeric|-n]
netstat -i #顯示全部網絡接口數據
netstat –IIFACE #顯示指定接口網絡數據I與接口名之間不能有空格
[root@CentOS6 ~]#netstat -Ieth0
ifconfig -s eth0
ifcfg家族命令:ifconfig,route,netstat
配置Linux網絡屬性:ip命令和ss命令
ip工具主要做用:顯示或配置路由和設備
用法:ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
鏈接設備管理工具
子命令:
show :顯示
set dev IFACE
可設置屬性:
up and down:激活或禁用指定接口
ifup/ifdown
show [dev IFACE]:指定接口
[up]:僅顯示處於激活狀態的接口
change:修改指定接口的IP地址
路由管理工具
添加路由:ip route add
ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主機路由:IP
網絡路由:NETWORK/MASK
示例:
添加網絡路由:ip route add 193.168.0.0/24 via 172.18.0.1
添加主機路由:ip route add 192.168.1.13 via 172.18.0.1
添加網關:ip route add default via GW dev IFACE
ip route add default via 172.18.0.1
刪除路由:
ip route del TARGET
刪除默認路由:
ip route del default
顯示和清空路由表:
ip route show
ip route flush
網絡狀態查看命令,與nestat命令用法類似,用來代替nestat命令
使用格式:ss [OPTION]... [FILTER]
選項:
-t: tcp協議相關
-u: udp協議相關
-w: 裸套接字相關
-x:unix sock相關
-l: listen狀態的鏈接
-a: 全部
-n: 數字格式
-p: 相關的程序及PID
-e: 擴展的信息
-m:內存用量
-o:計時器信息
條件過濾FILTER : [ state TCP-STATE ] [ EXPRESSION ]
TCP的常見狀態:
tcp finite state machine:
LISTEN: 監聽
ESTABLISHED:已創建的鏈接
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED
EXPRESSION:
dport =
sport =
示例:’( dport = :ssh or sport = :ssh )’
經常使用組合: -tan, -tanl, -tanlp, -uan
常見用法:
ss -l 顯示本地打開的全部端口
ss -pl 顯示每一個進程具體打開的socket
ss -t -a 顯示全部tcp socket
ss -u -a 顯示全部的UDP Socekt
ss -o state established '( dport = :ssh or sport = :ssh )' 顯示全部已創建的ssh鏈接
ss -o state established '( dport = :http or sport = :http )' 顯示全部已創建的HTTP鏈接
ss -s 列出當前socket詳細信息
IP、MASK、GW、DNS相關配置文件
配置屬性:
路由配置文件,須要手動建立
注意:需service network restart生效
兩種配置風格:
(1) TARGET via GW
如:10.0.0.0/8 via 172.16.0.1
(2) 每三行定義一條路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
注意:兩種風格不混合使用
將多個IP地址綁定到一個NIC上 eth0:1 、eth0:二、 eth0:3
ifconfig命令:
ifconfig eth0:0 192.168.1.100/24 up
ifconfig eth0:0 down
ip命令: ip addr add 172.16.1.2/16 dev eth0
ip addr add 172.16.1.1/16 dev eth0 label eth0:0
ip addr add 172.16.1.2/16 dev eth0 label eth0:0
ip addr del 172.16.1.1/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0
編輯配置文件:
爲每一個設備別名生成獨立的接口配置文件
• 關閉NetworkManager服務
ifcfg-ethX:xxx
• 必須使用靜態聯網
DEVICE=eth0:0
IPADDR=10.10.10.10
NETMASK=255.0.0.0
ONPARENT=yes
注意:service network restart 生效
參考/usr/share/doc/initscripts-*/sysconfig.txt
配置當前主機的主機名
hostname [HOSTNAME]
HOSTNAME=
NETWORKING=yes #網絡總開關
不會當即生效,重啓機器後生效與hostname [HOSTNAME] 命令配合使用
本地主機名數據庫和IP地址的映像
• 對小型獨立網絡有用
• 一般,在使用DNS前檢查
• getent hosts 查看/etc/hosts 內容
網絡接口並命名相關的udev配置文件
編輯修改後並不會當即生效
生效方法:
卸載網卡驅動:modprobe -r e1000
裝載 網卡驅動:modprobe e1000
CentOS 6以前,網絡接口使用連續號碼命名:eth0、eth1等,當 增長或刪除網卡時,名稱可能會發生變化
CentOS 7使用基於硬件,設備拓撲和設置類型命名:
(1) 網卡命名機制 systemd對網絡設備的命名方式
(a) 若是Firmware或BIOS爲主板上集成的設備提供的索引信 息可用,且可預測則根據此索引進行命名,例如eno1
(b) 若是Firmware或BIOS爲PCI-E擴展槽所提供的索引信息 可用,且可預測,則根據此索引進行命名,例如ens1
(c) 若是硬件接口的物理位置信息可用,則根據此信息進行命 名,例如enp2s0
(d) 若是用戶顯式啓動,也可根據MAC地址進行命名, enx2387a1dc56
(e) 上述均不可用時,則使用傳統命名機制
基於BIOS支持啓用biosdevname軟件
內置網卡:em1,em2
pci卡:pYpX Y:slot ,X:port
(2) 名稱組成格式
en: Ethernet 有線局域網
wl: wlan 無線局域網
ww: wwan無線廣域網
名稱類型:
o
s
x
p
第一步:
udev, 輔助工具程序/lib/udev/rename_device /usr/lib/udev/rules.d/60-net.rules
第二步: biosdevname 會根據/usr/lib/udev/rules.d/71biosdevname.rules
第三步: 經過檢測網絡接口設備,根據
/usr/lib/udev/rules.d/75-net-description ID_NET_NAME_ONBOARD
ID_NET_NAME_SLOT
ID_NET_NAME_PATH
重啓系統
建議直接修改配置文件,將/boot/grub2/grub.cfg文件中內核區域以linux16開頭的行,看到fhgb quiet字樣後邊加net.ifnames=0 以後修改/etc/sysconfig/network-scripts文件中的DEVICE項目和NAME項目。另外文件名手動修改,定義別名生效。
[root@CentOS7 ~]#nmcli agent device help networking connection general monitor radio [root@CentOS7 ~]#nmcli connection add delete edit help load monitor show clone down export import modify reload up [root@CentOS7 ~]#nmcli device connect disconnect lldp monitor set status delete help modify reapply show wifi
經常使用的兩個OBJECT:
至關於addr用於配置IP地址
子命令: start, stop, and manage network connections
修改IP地址示例:
nmcli connection modify IFACE [+|-] setting.property value
[+|-] #表示添加或者刪除ip地址
setting.property:
ipv4.addresses
ipv4.gateway
ipv4.dns1
ipv4.method #ipv4的地址獲取方式
manual | auto #手動或者自動(手動配置的ip地址當即生效)
建立新鏈接static,指定靜態IP,不自動鏈接
nmcti con add con-name static ifname eth0 autoconnect no type Ethernet ip4 172.25.X.10/24 gw4 172.25.X.254
至關於link管理鏈接設備
子命令:show and manage network interfaces
設備即網絡接口,鏈接是對網絡接口的配置。一個網絡接口 可有多個鏈接配置,但同時只有一個鏈接配置生效
systemctl restart network nmcli con reload 這篇博客是否對你配置網絡有幫助呢?有問題以及指教的地方請留言交流吧。