1. 程式人生 > >Linux學習命令匯總十——linux網絡管理及配置和網絡檢測工具

Linux學習命令匯總十——linux網絡管理及配置和網絡檢測工具

網絡配置 網絡管理 網絡檢測 ifconfig ip

本章Blog相關Linux知識點


CSMA/CD(Carrier Sense Multiple Access with Collision Detection)基帶沖突檢測的載波監聽多路訪問技術(載波監聽多點接入/碰撞檢測),是一種爭用型的介質訪問控制協議,主要應用於總線Ethernet中。它的工作原理是: 發送數據前 ,先偵聽信道是否空閑 ,若空閑,則立即發送數據。若信道忙碌,則等待一段時間至信道中的信息傳輸結束後再發送數據;在上一段信息發送結束後,同時有兩個或兩個以上的節點都提出發送請求,則判定為沖突。若偵聽到沖突,則立即停止發送數據,等待一段隨機時間,再重新嘗試。

沖突域:在同一個沖突域中的每一個節點都能收到所有被發送的幀。如hub的所有接口處於一個沖突域內

廣播域:網絡中能接收任一設備發出的廣播幀的所有設備的集合。如交換機的每一個接口為一個沖突域,所有接口處於同一個廣播域內;路由器的每一個接口為一個廣播域 ,故路由器起隔離廣播域的功能。

ip地址分類 : 私有ip地址

A:0.0.0.0-127.255.255.255 10.0.0.0-10.255.255.255

B:128.0.0.0-191.255.255.255 172.16.0.0-172.31.255.255

C:192.0.0.0-223.255.255.255 192.168.0.0-192.168.255.255

配置主機接入TCP/IP網絡:配置IP/MASK ;配置路由 ;配置DNS;配置主機名

1、動態指定 ,ip ,ifconfig ,route

2、動態分配 ,DHCP服務器

3、靜態指定,配置目錄/etc/sysconfig/network-scripts/中的ifcfg-eth0 文件

網絡設備如何表示:

內核識別設備:驅動

設備:別名

以太網設備: ethx

ppp設備:pppX

本地回環接口:lo


網絡配置命令ip link,ip route ,ip addr ,route ,ifconfig


用戶空間工具: # ip link ,# ip route , # ip addr , # route , # ifconfig ,這些命令配置網絡信息可立即生效,但重啟後配置將失效

# ifconfig (# ip addr , # ip link )顯示所有活動網口的狀態信息

-a 顯示所有網絡端口信息(包含被禁用掉的端口)

Interface :僅顯示指定接口的相關信息

Interface Address/mask 配置接口ip地址

Interface Address netmask MASK

DNS服務器指向 :/etc/resolv.conf

格式:nameserver DNS_server_ip

例:# vi /etc/resolv.conf

nameserver 8.8.8.8

# route 顯示路由信息

-n 使用數字格式顯示,不反解析地址到主機名

add [-host|-net] Address/MASK gw Next_hop dev Device : 添加主機或網絡路由,網關地址為Next_hop,從接口Device發出數據

del [-host|-net] Address/MASK :刪除主機或網絡路由

add -net default gw Next_hop dev Device : 添加默認路由

del -net 0.0.0.0/0 : 刪除默認路由

# ip link 網絡設備屬性配置

set [dev] NAME [up |down] [multicast on | multicast off] :配置網絡設備屬性

show :顯示網絡設備信息

# ip addr 可以在一個接口上配置多個地址而不使用接口別名,顯示這些地址:配置ip地址

add dev Interface Address/Mask label ethx:y :增加接口ethx:y 的ip地址

del dev Interface Address/Mask : 刪除接口ethx:y 的ip地址

show :顯示網絡接口信息

flush dev Device:取消接口的ip地址

# ip route 配置網絡路由信息

add Destnation via Next_top dev Device

del Destnation :刪除路由信息

show :顯示路由信息

啟用/禁用接口,使用下列命令實現:

# ip link set Interface [on |off ]

# ifconfig Interface [on |off ]

# ifup Interface ,# ifdown Interface

如何實現在單個接口配置多個ip地址,通過網絡接口別名來實現: ethx:y ,如eth0:1 ,eth0:2

配置1:# ifconfig ethx:y Interface/mask 例: # ifconfig eth0:1 192.168.4.160/24

[root@study ~]# ifconfig eth0:0 192.168.4.160/24
[root@study ~]# ifconfig eth0:1 192.168.4.170 netmask 255.255.255.0
[root@study ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:27:88:3A  
          inet addr:192.168.4.150  Bcast:192.168.4.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe27:883a/64 Scope:Link
          UP BROADCAST RUNNING  MTU:1500  Metric:1
          RX packets:18688 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8620 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:15850883 (15.1 MiB)  TX bytes:943025 (920.9 KiB)

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:27:88:3A  
          inet addr:192.168.4.160  Bcast:192.168.4.255  Mask:255.255.255.0
          UP BROADCAST RUNNING  MTU:1500  Metric:1

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:27:88:3A  
          inet addr:192.168.4.170  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST RUNNING  MTU:1500  Metric:1

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:76 (76.0 b)  TX bytes:76 (76.0 b)

[root@study ~]# vi /etc/resolv.conf
# Generated by NetworkManager
nameserver 221.130.33.60
nameserver 221.130.33.52

[root@study ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:27:88:3a brd ff:ff:ff:ff:ff:ff
[root@study ~]# ip link set dev eth0 multicast off   關閉端口eth0 multicast功能
[root@study ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:27:88:3a brd ff:ff:ff:ff:ff:ff
[root@study ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:27:88:3a brd ff:ff:ff:ff:ff:ff
[root@study ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.4.0     0.0.0.0           255.255.255.0   U      0          0        0 eth0
169.254.0.0     0.0.0.0           255.255.0.0       U      1002    0        0 eth0
0.0.0.0            192.168.4.1     0.0.0.0              UG    0          0        0 eth0
[root@study ~]# route add -host 192.168.3.150 gw 192.168.4.1 dev eth0
[root@study ~]# route add -net 192.168.2.0/23 gw 192.168.4.1 dev eth0
[root@study ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask             Flags Metric Ref    Use Iface
192.168.3.150   192.168.4.1     255.255.255.255 UGH   0         0        0 eth0
192.168.4.0       0.0.0.0             255.255.255.0     U        0         0        0 eth0
192.168.2.0       192.168.4.1     255.255.254.0     UG      0        0        0 eth0
169.254.0.0       0.0.0.0             255.255.0.0         U        1002   0        0 eth0
0.0.0.0              192.168.4.1      0.0.0.0                 UG      0        0         0 eth0
[root@study ~]# route del -host 192.168.3.150 gw 192.168.4.1 dev eth0
[root@study ~]# route del -net 192.168.2.0/23 gw 192.168.4.1 dev eth0
[root@study ~]# route del -net default  gw 192.168.4.1 dev eth0    刪除默認路由
[root@study ~]# route add -net 0.0.0.0/0 gw 192.168.4.1 dev eth0   增加默認路由,下一條為192.168.4.1 ,出端口eth0
[root@study ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.4.0     0.0.0.0           255.255.255.0   U      0        0        0 eth0
169.254.0.0     0.0.0.0           255.255.0.0       U     1002   0        0 eth0
0.0.0.0            192.168.4.1    0.0.0.0               UG    0       0        0 eth0
[root@study ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:27:88:3a brd ff:ff:ff:ff:ff:ff
    inet 192.168.4.150/24 brd 192.168.4.255 scope global eth0
    inet 192.168.4.170/24 brd 192.168.4.255 scope global secondary eth0:1
    inet 192.168.4.160/24 brd 192.168.4.255 scope global secondary eth0:0
    inet6 fe80::20c:29ff:fe27:883a/64 scope link 
       valid_lft forever preferred_lft forever
[root@study ~]# ip addr add dev eth0 192.168.4.190/24 label eth0:3
[root@study ~]# ip addr del dev eth0 192.168.4.160/24
[root@study ~]# ip addr del dev eth0 192.168.4.170/24
[root@study ~]# ip addr del dev eth0 192.168.4.190/24
[root@study ~]# ip addr 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:27:88:3a brd ff:ff:ff:ff:ff:ff
    inet 192.168.4.150/24 brd 192.168.4.255 scope global eth0
    inet6 fe80::20c:29ff:fe27:883a/64 scope link 
       valid_lft forever preferred_lft forever
[root@study ~]# ip route add 192.168.2.0/24 via 192.168.4.1 dev eth0
[root@study ~]# ip route show
192.168.4.0/24 dev eth0  proto kernel  scope link  src 192.168.4.150 
192.168.2.0/24 via 192.168.4.1 dev eth0 
169.254.0.0/16 dev eth0  scope link  metric 1002 
default via 192.168.4.1 dev eth0 
[root@study ~]# ip route del 192.168.2.0/24



網絡服務配置服務腳本


Centos 6腳本目錄: /etc/rc.d/ini.td/ 或者 /etc/init.d/

服務腳本: SysV ,style ,LSB

控制運行在後臺守護進程,接受參數 {start|stop|restart|status}

腳本位置: /etc/rc.d/init.d/ 或者 /etc/init.d/

配置某服務開機自動啟動:# chkconfig Src_script_name on

禁止開機自動啟動:# chkconfig Src_script_name off

查看開機啟動的進程: # chkconfig --list

調用機制:

1、/etc/init.d/Script_name {start|stop|restart|status}

2、service Script_name {start|stop|restart|status}

與網絡設備相關的服務控制腳本

它們通常能夠讀取為網絡配置的配置文件,以之實現其配置生效或失效等管理功能

配置文件有兩類(/etc/sysconfig/network-scripts/)

配置ip、掩碼、網關: ifcfg-ethx ;ifcfg-pppx

配置路由:route-ethx;route-pppx

配置ip:/etc/sysconfig/network-scripts/ifcfg-ethx

# vi /etc/sysconfig/network-scripts/ifcfg-eth0   配置ip、掩碼、網關:ifcfg-ethx
DEVICE=eth0 # 指定設備,此配置關聯至設備 ,設備名要與文件名ifcfg-後的內容一致
HWADDR=00:0C:29:64:48:F5 # MAC地址,要與真實MAC地址保持一致,可省略
TYPE=Ethernet # 設備類型:Ethernet ,Bridge ,PPP
UUID=126fc358-718b-4364-84dc-50506fc6dd82 #唯一標示,可省略
ONBOOT=yes # 是否開機自動啟用 {yes|no}
NM_CONTROLLED=yes # 是否接受NetworkManager 腳本控制 {yes|no}
BOOTPROTO=static # 配置引導協議 ,{none|static} 手動配置 ,dhcp 動態獲取協議 ,bootp 引導協議,如無盤工作站
IPADDR=192.168.4.150 # ip地址
GATEWAY=192.168.4.1 # 網關
DNS1=221.130.33.60 # dns服務器地址
DNS2=221.130.33.52
NETMASK=255.255.255.0 # 子網掩碼
IPV6INIT=no # 是否自動初始化IPv6協議地址
USERCTL=no # 是否允許普通用戶啟用或禁用此網絡設備
PEERDNS={yes|no} # 是否允許dhcp服務分配地址時直接更新/etc/resolv.conf中的dns服務器地址
# vi /etc/sysconfig/network-scripts/route-eth0

配置路由:/etc/sysconfig/network-scripts/route-ethx

配置文件的格式1,每行一個要配置的路由條目:Dest via Next_hop

配置文件格式2,每一組一個路由條目:

ADDRESS#=Dest

NETMASK#=Netmask

GATEWAY#=Gateway

[root@study ~]# !vi
vi /etc/sysconfig/network-scripts/route-eth0
192.168.2.0/24 via 192.168.4.1
192.168.10.0/24 via 192.168.4.1

"/etc/sysconfig/network-scripts/route-eth0" 8L, 199C written
[root@study ~]# service network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: Determining if ip address 192.168.4.150 is already in use for device eth0...
[ OK ]
[root@study ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.2.0 192.168.4.1 255.255.255.0 UG 0 0 0 eth0
192.168.10.0 192.168.4.1 255.255.255.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.4.1 0.0.0.0 UG 0 0 0 eth0

如何實現在單接口上配置多個ip

配置2:通過配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0:1

DEVICE=ethx:y

BOOTPRO={none|static|dchp}

IPADDR=

ONBOOT=yes|no

GATEWAY=

USERCRL=yes|no

[root@study ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0:2
DEVICE=eth0:2
BOOTPRO=static
ONBOOT=yes
IPADDR=192.168.4.160
NETMASK=255.255.255.0
GATEWAY=192.168.4.1
DNS1=192.168.4.1
USERCRL=no

"/etc/sysconfig/network-scripts/ifcfg-eth0:2" [New] 8L, 131C written
[root@study ~]# service network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: Determining if ip address 192.168.4.150 is already in use for device eth0...
[ OK ]

[root@study ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:27:88:3a brd ff:ff:ff:ff:ff:ff
inet 192.168.4.150/24 brd 192.168.4.255 scope global eth0
inet 192.168.4.160/24 brd 192.168.4.255 scope global secondary eth0:2
inet6 fe80::20c:29ff:fe27:883a/64 scope link
valid_lft forever preferred_lft forever

配置主機名:# hostname

配置文件: /etc/sysconfig/network 或者 /etc/hostname

[root@study ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=study.itwish.cn
GATEWAY=192.168.4.1
[root@study ~]# hostname
study.itwish.cn


網絡管理或檢測等相關的工具:


# yum install net-tools traceroute mtr 安裝網絡工具包

# ping [option] ip :測試網絡連通性,ICMP協議

-c n :次數 ,例# ping -c 3 192.168.4.1

-t n : 測試的執行時長,等待n秒未響應就退出

# traceroute HOST (首先安裝traceroute rpm包)檢測路由路徑

# mtr HOST (首先安裝mtr rpm包) 網絡診斷工具

# netstat 顯示網絡連接

-t :顯示tcp連接

-u:顯示udp連接

-n:數字格式顯示

-l:顯示listening監聽狀態網絡

-a:顯示所有

-p:顯示連接進程

-r:顯示路由表

常用組合:

-tan

-tunl

-rn

ss命令選項與netstat選項類似

-t :顯示tcp連接

-u:顯示udp連接

-n:數字格式顯示

-l:顯示listening監聽狀態網絡

-a:顯示所有

-p:顯示連接進程

-e:顯示擴展信息

-o state {established}

# ethtool 查詢或控制網絡硬件

Interface :顯示設備接口屬性 例: # ethtool eth0

-S Interface : 顯示設備接口的統計數據 例; # ethtool -S eth0


本章blog知識點匯總


網絡配置命令:

# ifconfig (#ip addr ,#ip link)顯示所有活動網口的狀態信息

# ifconfig interface address netmask 為某些接口配置多個ip地址

# route -n 以數字形式顯示路由條目

# route add [-host|-net] IP/Mask gw Next_hop dev Device 配置主機或網絡路由

# route add [-host|-net] IP/Mask 刪除主機或路由條目

# ip link set [dev] NAME [up |down] [multicast on | multicast off] 設置網絡接口狀態

# ip addr add dev Interface Address label ethx:y 某接口配置多個ip地址

# ip addr del dev Interface Address 刪除某接口ip地址

# ip addr flush Interface 清除接口ip地址信息

# ip route add DESTNATION [via Next_hop] [dev DEVICE] 配置路由

# ip route del DESTNATION 刪除路由條目

# ip [route | addr | link ] show 顯示路由或網絡接口信息

啟用接口命令:# ifconfig eth0 up ;# ip link set eth0 up ; # ifup eth0

禁用接口命令:# ifconfig eth0 down ;# ip link set eth0 down ;# ifdown eth0

DNS配置文件: /etc/resolv.conf

hostname 配置文件: /etc/hostname 或者 /etc/sysconfig/network

服務腳本目錄: /etc/init.d/ 或者 /etc/rc.d/init.d/

控制運行在後臺守護進程,接受參數 {start|stop|restart|status}

腳本位置: /etc/rc.d/init.d/ 或者 /etc/init.d/

配置某服務開機自動啟動:# chkconfig Src_script_name on

禁止開機自動啟動:# chkconfig Src_script_name off

查看開機啟動的進程: # chkconfig --list

網絡配置文件有兩類(目錄:/etc/sysconfig/network-scripts/)

配置網絡地址文件: /etc/sysconfig/network-scripts/ifcfg-ethx ;/etc/sysconfig/network-scripts/ifcfg-pppx

配置路由文件:/etc/sysconfig/network-scripts/route-ethx;/etc/sysconfig/network-scripts/route-pppx

# yum install net-tools traceroute mtr 安裝網絡工具包

# ping [option] ip :測試網絡連通性,ICMP協議

-c n :次數 ,例# ping -c 3 192.168.4.1

-t n : 測試的執行時長,等待n秒未響應就退出

# traceroute HOST (首先安裝traceroute rpm包)檢測路由路徑

# mtr HOST (首先安裝mtr rpm包) 網絡診斷工具

# netstat 顯示網絡連接

常用選項: -tunl ,-tan,-rn

# ethtool 查詢或控制網絡硬件

Interface :顯示設備接口屬性 例: # ethtool eth0

-S Interface : 顯示設備接口的統計數據 例; # ethtool -S eth0


Linux學習命令匯總十——linux網絡管理及配置和網絡檢測工具