一、網絡屬性概念
在計算機網絡中,主機想要連接上互聯網,就必須配置IP地址、子網掩碼、網關、路由、DNS服務器地址和主機名等屬性。
- IP地址主要用於確定自身所處的網絡,以及對方主機是否與本主機是否在同一網絡當中。
- 子網掩碼是與IP地址按位進行“與”運算得到主機所在的網段地址,可快速確定用戶主機所在網絡。配置好IP地址和子網掩碼可以實現本地通信。
- 網關主要用於本機與其他網絡主機通信使用。
- 路由是建立路徑條目,分爲三種:
1.網絡路由:目標是一個網絡
2.主機路由:目標是一個主機
3.默認路由:目標是所在非本地網絡,通常默認路由的下一跳爲主機上某某塊網卡的網關地址。 - DNS服務器地址主要使用戶對域名進行解析,其中包括:
1.主DNS服務器
2.備用DNS服務器
3.第三備用DNS服務器
二、網絡屬性配置
在配置參數信息之前我們可以先通過命令獲取一下網卡的信息,確定要對哪一塊網卡進行配置。
[root@ ~]$dmesg | grep -i eth0
[ 1.206705] e1000 0000:02:01.0 eth0: (PCI:66MHz:32-bit) 00:50:56:26:35:44
[ 1.206715] e1000 0000:02:01.0 eth0: Intel(R) PRO/1000 Network Connection
查看網卡芯片的數據信息:
[root@ ~]$lspci | grep -i eth
02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
獲得了網卡信息之後就可以對網卡進行相關參數的配置了,配置IP以及Netmask有兩種方式:手工指定地址(靜態IP)和動態獲得(DHCP服務器分配)
本文主要是配置靜態IP的配置
1、ifconfig
查看接口:ifconfig[interface]
-a包括未激活狀態的所有接口
[root@ ~]$ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.25.15 netmask 255.255.255.0 broadcast 192.168.25.255
inet6 fe80::9495:167:3cbf:1a97 prefixlen 64 scopeid 0x20<link>
ether 00:50:56:26:35:44 txqueuelen 1000 (Ethernet)
RX packets 1031 bytes 109212 (106.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 548 bytes 92132 (89.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
CentOS7上的網卡默認命名方式是ens,傳統的命名方式是eth
啓用或禁用網卡:
ifconfig IFNAME up|down
ifup IFNAME 也可以啓用
ifdown IFNAME 也可以禁用
設置IP地址:
ifconfig IFNAME IP/Netmask [up]
注意:CIDR格式的掩碼,類似172.16.0.1/24
示例:
[root@ ~]$ifconfig lo 6.6.6.6/24
[root@ ~]$ifconfig lo
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 6.6.6.6 netmask 255.255.255.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 1 bytes 180 (180.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1 bytes 180 (180.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
或者使用
ifconfig IFNAME IP netmask Netmask
注意:完整格式的掩碼,即類似255.255.0.0
示例:
[root@ ~]$ifconfig lo 7.7.7.7 netmask 255.255.255.0
[root@ ~]$ifconfig lo
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 7.7.7.7 netmask 255.255.255.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 1 bytes 180 (180.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1 bytes 180 (180.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
設定的地址會立即送往內核,因此會立即生效,但不會永久生效
2、ip
通過ip命令來配置網卡IP地址參數
ip [ OPTIONS ] OBJECT { COMMAND|help }
OBJECT:{ link | addr | route }
link:鏈接接口,如eth0、ens33
addr:管理接口上的地址
route:管理路由
link:
set:設定接口屬性
ip link set DEVICE
{up|down}:啓動或禁用接口;
promisc{on|off}:是否支持混雜模式;
name NEWNAME:設定接口使用新名字;
show:顯示接口狀態,例如啓動的特性,HWADDR等;
IP link show[DEVICE],如顯示eth0網卡的相關硬件信息;
示例:
Not enough information: "dev" argument is required.
[root@ ~]$ip link set lo down
[root@ ~]$ip link set lo name loopback
[root@ ~]$ip link set loopback up
[root@ ~]$ip link show loopback
1: loopback: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
addr:
add:添加地址
del:刪除地址
ip addr {add|del} IDADDR dev STRING
示例:
[root@ ~]$ip addr add 6.6.6.6/24 dev loopback
[root@ ~]$ip addr show loopback
1: loopback: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host loopback
valid_lft forever preferred_lft forever
inet 6.6.6.6/24 scope global loopback
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
route:
list|show:顯示路由
ip route list
add:添加路由
ip route add DESTINATION via GATEWAY [dev IFNAME]
示例:
[root@ ~]$ip route add default via 172.18.0.1
[root@ ~]$ip route list
default via 172.18.0.1 dev ens37
172.18.0.0/16 dev ens37 proto kernel scope link src 172.18.254.108 metric 100
192.168.25.0/24 dev ens33 proto kernel scope link src 192.168.25.15
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
del:刪除路由
ip route del DESRINATION
示例:
[root@ ~]$ip route del default via 172.18.0.1
[root@ ~]$ip route list
172.18.0.0/16 dev ens37 proto kernel scope link src 172.18.254.108 metric 100
192.168.25.0/24 dev ens33 proto kernel scope link src 192.168.25.15
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
3、TUI
通過文本命令的方式執行程序,而不是通過圖形界面窗口的點擊按鈕的方式,具體操作如下:
CentOS6
在命令行輸入setup命令:
選擇 Network Configuration
選擇 Device configuration
選擇需要配置的網卡
填寫需要配置的參數
參數填好後點擊“OK”按鈕
選擇“Save”按鈕保存
CentOS7
在命令行中輸入nmtui(類似CentOS6的setup工具,但只能編輯鏈接、啓用或禁用連接、更改主機名)
Edit a connection
選擇需要配置的網卡,回車
填寫需要編輯的參數
填寫完後,選賊“OK”按鈕,然後退出即可
需要注意的是,在更改完成之後,需要重啓網絡服務,配置才能生效;
CentOS6系統需要執行:
service network restart
CentOS7系統需要執行:
systemctl restart network
或者
systemctl restart network.service
4、通過修改配置文件
每個網絡接口都有一個配置文件/etc/sysconfig/network-scripts/ifcfg-IFNA ME,我們可以通過編輯這個配置相應的參數信息,配置文件中有以下幾項:
TYPE=Ethernet
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=ens33
UUID=c5f8717e-9402-440d-9092-3cac375d705c
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.25.15
PREFIX=24
GATEWAY=192.168.25.1
DNS1=192.168.25.1
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
USERCTL=no
常用的參數說明
TYPE:設備類型,通常有“Ethernet”,“Bridge”;
BOOTPROTO:啓動此設備時使用的配置協議,取值有static(手動配置)、none(手動配置)、dhcp或bootp(動態配置);
DEFROUTE:默認路由;
IPV6INIT:是初始化ipv6協議地址;
HWADDR:網卡的MAC地址,此地址應該與網卡ROM中的固定地址一致;
NM_CONTROLLED:NM即NetworkManager的簡寫,建議設定爲no;
UUID:網卡設備的唯一識別號;
DEVICE:此配置文件所關聯到的設備,其值通常應該ifcfg-IFNAME中的IFNAME
ONBOOT:此設備是否隨OS啓動而激活;
IPADD:此接口的IP地址;
NETMASK:子網掩碼;
PREFIX:子網掩碼位數;
GATEWAY:網關;
DNS1:DNS服務器指向的主DNS服務器;
DNS2:備用DNS服務器地址;
DNS3:第三備用DNS服務器地址
USERCTL:是否允許普通用戶管理此接口;
PEERDNS:當BOOTPROTO的值爲dhcp時,是否允許dhcp服務器提供的dns服務指向覆蓋本地手動配置的DNS服務器指向;
注意重啓網絡服務後方能生效,操作命令前面已經給出。
6、配置DNS參數
除了上面所說的幾種方法外常用的還有通過修改DNS地址的配置文件 /etc/resolv.conf,該文件當中可以設置多個DNS地址,格式如下:
[root@ ~]$vim /etc/resolv.conf
# Generated by NetworkManager
search ghy
nameserver 172.18.0.1 #主DNS服務器地址
nameserver 8.8.8.8 #備用DNS服務器地址
那麼server 114.114.114.114 #第三備用DNS服務器地址
注意:修改或配置dns地址配置是不需要重啓網絡服務的。
7、路由管理
上面提到過的,主機要想訪問其他網絡就必須有網關和相應的路由信息,網關的配置我們已經講解了,接下來我們瞭解一下通過route命令來管理路由。
(1) 查看本機內核路由表:route :
-n:以數字格式顯示地址
[root@ ~]$route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens37
172.18.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens37
192.168.25.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@ ~]$route -n #注意觀察加-n後的差別
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.18.0.1 0.0.0.0 UG 100 0 0 ens37
172.18.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens37
192.168.25.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
(2)添加路由:新增路由條目,用戶告訴本機至某目標網絡或者主機要經由的下一跳路由
route add [-net|-host] TARGET gw GATEWAY [dev IFNAME]
-net 後面需要跟一個網絡地址,表示網絡路由
-host 後面需要跟一個主機地址, 表示主機路由
示例:
到達192.168.0.0/24網絡,經由172.18.0.1網關;
[root@ ~]$route add -net 192.168.0.0/24 gw 172.18.0.1
[root@ ~]$route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.18.0.1 0.0.0.0 UG 100 0 0 ens37
172.18.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens37
192.168.0.0 172.18.0.1 255.255.255.0 UG 0 0 0 ens37
192.168.25.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
到達主機192.168.1.1 經由172.18.0.1網關;
[root@ ~]$route add -host 192.168.1.1 gw 172.18.0.1
[root@ ~]$route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.18.0.1 0.0.0.0 UG 100 0 0 ens37
172.18.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens37
192.168.0.0 172.18.0.1 255.255.255.0 UG 0 0 0 ens37
192.168.1.1 172.18.0.1 255.255.255.255 UGH 0 0 0 ens37
192.168.25.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
設置默認網關:
route add -net 0.0.0.0 gw 172.18.0.1
route add default gw 172.18.0.1
(3)刪除路由:
route del [-net|host] TARGET gw GATEWAY [dev IFNAME]
示例:
刪除配置的默認路由
[root@ ~]$route del -net 0.0.0.0 gw 172.18.0.1
[root@ ~]$route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.18.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens37
192.168.0.0 172.18.0.1 255.255.255.0 UG 0 0 0 ens37
192.168.1.1 172.18.0.1 255.255.255.255 UGH 0 0 0 ens37
192.168.25.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
注意:所有配置立即發往內核中的協議棧,所以立即生效,不會永久生效;如果想要永久生效,就需要修改配置對應靜態的配置文件,配置文件可以通過兩種方式進行修改。(配置文件的路徑問 /etc/sysconfig/network-scripts/route-IFNAME)
配置方式一:每一剛定義個路由條目
格式:DESTINATION via GATEWAY
192.168.0.0/24 via 172.18.0.2
192.168.1.1 via 172.16.0.3
配置方式二:每三行定義一條路由條目
格式:
ADDERSS#=
NETMASK#=
GATEWAY#=
示例:
ADDRESS1=192.168.0.0
NETMASK1=255.255.255.0
GAATEWAY1=172.18.0.2
注意:兩種方式不能混合使用
8、更改主機名
更改主機名也是既可以通過命令配置,也可以通過修改對應的配置文件來定義。
(1) 首先通過命令方式:hostname命令
hostname NEWNAME 可以更改當前主機名
[root@ ~]$hostname www.test.com
[root@ ~]$hostname
www.test.com
此方式可以立即生效,如果想看到效果,需要退出當前專斷重新登錄即可
(2)還可以通過修改內核參數:/proc/sys/kernel/hostname來定義主機名
[root@ ~]echo "www.test.com" > /proc/sys/kernel/hostname
此方式立即生效,如果想看效果,需要退出當前專斷重新登錄即可
(3)通過修改配置文件:/etc/sysconfig/network 和 /etc/hosts
在/etc/sysconfig/network文件當中修改 HOSTNAME=www.test.com 即可;
在/etc/hosts 文件當中添加(注意這裏是添加,不是修改)本機IP與主機名的對應關係
cat /etc/hosts
127.0.0.1 www.test.com localhost localhost.localdomain localhost4 localhost4.localdomain4
172.18.25.15 www.test.com
單獨修改/etc/sysconfig/network 文件中的內容就跟更改了主機名,但是這樣名字最燃改了,如果沒有外部DNS配合,自己找不到自己的名稱地址,會很怪異,因此當通過配置文件來修改主機名的時候,同時將兩個文件一起修改。
注意:通過修改配置文件來修改該主機名不會立即生效,需要重啓系統火鍋source配置文件,然後重新登錄即可,可以永久生效知道下一次修改主機名。
三、網絡管理中常用工具
1、ping
檢測目標朱姐網絡是否可達,以及相關網絡延時
2、traceroute IP
探測到達目標主機中間所經過網關設備
3、mtr HOST
合併ping與traceroute命令的功能的網絡診斷工具
4、netstat和ss
網絡狀態探測工具
netstat:
-r:顯示路由表
-n:數字顯示,不反解ip地址至主機名;
-t:tcp協議的相關連接
-u:udp協議的相關連接
-l:顯示處於監聽狀態(即等待別點進程連接訪問)
-a:顯示所有連接,對於tcp而言即處於各種狀態
-p:顯示相關連接的關聯到的進程的名字及PID;
常用組合:-rn、-tnl、-unl、-tunl、-tan、-tnlp
ss:
-t:tcp協議的相關連接
-u:udp協議的相關連接
-n:數字格式
-l:顯示處於監聽狀態
-a:顯示所有連接
-m:顯示所有使用信息
-o stat {establishes|fin_wait_1|fin_wait_2|listening}
常用組合:-tnl、-unl、-tan、-tunl、tnlp