Linux系統網絡屬性和基本配置

這裏寫圖片描述

一、網絡屬性概念

在計算機網絡中,主機想要連接上互聯網,就必須配置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:管理路由
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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章