CentOS 6與CentOS 7網絡管理

 

一、網絡配置命令:

1、ifconfig(配置網絡接口命令)

命令格式:ifconfig [interface]

   ifconfig interface [aftype] options | address …

命令例子:

    #查看所有網卡接口的配置信息:ifconfig [-a]

    ~]# ifconfig

# 查看某網卡接口配置信息 ifconfig IFACE                       

    ~]# ifconfig eth0

# 開啓或關閉某網卡接口:ifconfig IFACE [up|down]

    ~]# ifconfig eth0 down

# 配置網卡接口IP地址:

    ifconfig IFACE IP/mask [up]/ifconfig IFACE IP netmask MASK

   ~]# ifconfig eth0:0 1.1.1.1/32 up

啓用或禁用網卡混雜模式:ifconfig IFACE  [-]promisc

   ~]# ifconfig eth0 -promisc # 禁用

 

2、route(路由管理命令)

命令格式:route [-CFvnee]

  route  add/del  [-net|-host] target [netmask Nm] [gw Gw]                         [metric N]  [[dev] If]

命令用法:

 # 查看

~]# route -n

 # 添加: 

~]# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0     # 主機路由
~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0  # 網段路由
~]# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0     # 網段路由
~]# route add default gw 172.16.0.1   # 默認路由

 # 刪除:

 ~]#  route del dev eth0
 ~]#  route del -host 192.168.1.3
 ~]#  route del -net 192.168.0.0 netmask 255.255.255.0

 

3、DNS服務器指定

   配置文件:/etc/resolv.conf

    添加:

   nameserver DNS_SERVER_IP1

   nameserver DNS_SERVER_IP2

   nameserver DNS_SERVER_IP3

 

4、netstat(網絡連接狀態顯示命令)

命令格式: netstat [OPTION]                                                        

選項:-t: tcp協議相關

      -u: udp協議相關

      -w: raw socket相關

      -l: 處於監聽狀態

      -a: 所有狀態

      -n: 以數字顯示IP和端口;

      -e:擴展格式(顯示User及Inode )

      -p: 顯示相關進程及PID

 

常用組合:

         -tan, -uan, -tnl, -unl

顯示路由表:

     netstat {--route|-r} [--numeric|-n]

     -r: 顯示內核路由表(顯示)

     -n: 數字格式

 -e:擴展格式(顯示Metric)

 

顯示接口統計數據:

     netstat  {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e]

              [--program|-p] [--numeric|-n]

     # 顯示所有接口的統計信息:netstat -I

~]# netstat -i

     # 顯示特定接口的統計信息:netstat -IIFACE 

       ~]#  netstat -Ieth0

 

TCP的常見狀態:

LISTEN: 監聽

ESTABLISHED:已建立的連接

FIN_WAIT_1:主動關閉,已發出關閉請求,等待對方確認

FIN_WAIT_2:主動關閉,已收到對方關閉傳輸連接確認,等待對方發送關閉連接請求

SYN_SENT:發送SYN請求,等待對方確認

SYN_RECV:收到一個傳輸請求,但尚未確認

CLOSED:連接關閉狀態

 

5、ss(網絡連接狀態顯示命令,類似netstat,更靈活速度更快)

格式: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 ]

EXPRESSION:

dport =

sport =

 ~]# ss -o state established '( dport = :ssh or sport = :ssh )'

常用組合:

-tan, -tanl, -tanlp, -uan

 

二、配置Linux網絡屬性:ip命令

命令格式:ip [ OPTIONS ] OBJECT { COMMAND | help }

      OBJECT := { link | addr | route }

link:網絡設備屬性管理

# 顯示接口屬性 ip link show [ DEVICE ] [up|down] 

  ~]#  ip link show eth0
  ~]#  ip link show up     # 顯示激活狀態的接口

# 設置接口屬性 

ip link set DEVICE [{ up|down }|[ mtu MTU ]|[ promisc { on|off }]]  

  ~]# ip link set eth0 up mtu 1500 promisc on

addrIP地址管理

ip addr { add | del } IFADDR dev STRING

IFADDR可用選項 :

[label LABEL]:添加地址時指明網卡別名

[scope {global|link|host}]:指明作用域(global: 全局可用,link: 僅鏈接可用;host: 本機可用)

[broadcast ADDRESS]:指明廣播地址

# 添加IP

   ~]# ip addr add label eth0:0  2.2.2.2/24 dev eth0

# 刪除IP

~]# ip addr del label eth0:0 2.2.2.2/24 dev eth0

 

ip addr { show | flush }[dev DEVICE]  [label PATTERN][primary and secondary]

# 顯示指定設備IP信息

    ~]# ip addr show label eth0:0 dev eth0  #顯示網卡設備別名的IP信息

# 清空指定設備的IP信息

   ~]# ip addr show label eth0:0 dev eth0

 

route:路由管理

ip route { add | del | change} TARGET via GW dev IFACE src SOURCE_IP

   TARGET: 主機路由:IP;網絡路由:NETWORK/MASK

    # 添加主機路由

    ~]# ip route 1.1.1.1 via 192.168.52.2 dev eth0

# 添加網段路由

~]# ip route add 2.2.2.0/24  via 192.168.52.2 dev eth0 src 192.168.52.20     # src指定源IP

# 添加網關

~]# ip route add default via GW dev IFACE

# 刪除路由:

~]# ip route del 1.1.1.1 via 192.168.52.2 dev eth0

# 顯示路由信息:ip route show

# 清空指定設備的路由列表:ip route flush dev IFACE

 

三、Linux網絡屬性配置: 修改配置文件

IP、MASK、GW、DNS相關配置文件:

    /etc/sysconfig/network-scripts/ifcfg-IFACE

路由相關的配置文件:

    /etc/sysconfig/network-scripts/route-IFACE

1、設定網卡接口參數

    /etc/sysconfig/network-scripts/ifcfg-IFACE:

DEVICE:此配置文件應用到的設備;

HWADDR:對應的設備的MAC地址;

BOOTPROTO:激活此設備時使用的地址配置協議,常用的dhcp, static, none, bootp;

NM_CONTROLLED:NM是NetworkManager的簡寫;此網卡是否接受NM控制;CentOS6建議爲“no”;

ONBOOT:在系統引導時是否激活此設備;

TYPE:接口類型;常見有的Ethernet, Bridge;

UUID:設備的惟一標識;

 

IPADDR:指明IP地址;

NETMASK:子網掩碼;

GATEWAY: 默認網關;

DNS1:第一個DNS服務器指向;

DNS2:第二個DNS服務器指向;

 

USERCTL:普通用戶是否可控制此設備;

PEERDNS:如果BOOTPROTO的值爲“dhcp”,是否允許dhcp server分配的dns服務器指向信息直接覆蓋

   至/etc/resolv.conf文件中;

 

2、在配置文件中定義路由

    配置文件:/etc/sysconfig/network-scripts/route-IFACE

兩種風格:

(1) TARGET via GW

 

(2) 每三行定義一條路由

ADDRESS#=TARGET

NETMASK#=mask

GATEWAY#=GW

 

3、給網卡配置多地址:

(1) ifconfig:  ifconfig IFACE_ALIAS

(2) ip:ip addr add

(3) 配置文件:ifcfg-IFACE_ALIAS

      DEVICE=IFACE_ALIAS

 

注意:網關別名不能使用dhcp協議引導;

 

4、Linux網絡屬性配置的tui(text user interface)

   命令:system-config-network-tui或setup

   注意:記得重啓網絡服務方能生效;

 

5、配置當前主機的主機名

臨時生效:hostname [HOSTNAME]

永久生效:/etc/sysconfig/network

添加:HOSTNAME= your hostname

 

6、網絡接口識別並命名相關的udev配置文件:

    /etc/udev/rules.d/70-persistent-net.rules

卸載網卡驅動:modprobe -r e1000

裝載網卡驅動:modprobe e1000

 

 

四、CentOS 7網絡屬性配置

(1) 網卡命名機制

systemd對網絡設備的命名方式:

(a) 如果Firmware或BIOS爲主板上集成的設備提供的索引信息可用,且可預測則根據此索引進行命名,例如eno1;

(b) 如果Firmware或BIOS爲PCI-E擴展槽所提供的索引信息可用,且可預測,則根據此索引進行命名,例如ens1;

(c) 如果硬件接口的物理位置信息可用,則根據此信息進行命名,例如enp2s0;

(d) 如果用戶顯式啓動,也可根據MAC地址進行命名,enx2387a1dc56;

(e) 上述均不可用時,則使用傳統命名機制;

上述命名機制中,有的需要biosdevname程序的參與。

 

(2) 名稱組成格式

en: ethernet

wl: wlan

ww: wwan

 

名稱類型:

o<index>: 集成設備的設備索引號;

s<slot>: 擴展槽的索引號;

x<MAC>: 基於MAC地址的命名;

p<bus>s<slot>: enp2s1

 

3)網卡設備的命名過程:

第一步:

udev, 輔助工具程序/lib/udev/rename_device, /usr/lib/udev/rules.d/60-net.rules

第二步:

biosdevname 會根據/usr/lib/udev/rules.d/71-biosdevname.rules

第三步:

通過檢測網絡接口設備,根據/usr/lib/udev/rules.d/75-net-description

ID_NET_NAME_ONBOARD, ID_NET_NAME_SLOT, ID_NET_NAME_PATH

 

迴歸傳統命名方式:

第一步:

編輯/etc/default/grub配置文件

GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet"

第二步:

爲grub2生成其配置文件

grub2-mkconfig -o /etc/grub2.cfg

第三步:

重啓系統

 

4)地址配置工具:nmcli

nmcli  [ OPTIONS ] OBJECT { COMMAND | help }

如何修改IP地址等屬性:

Usage: nmcli connection modify IFACE [+|-]setting.property value

setting.property:

 ipv4.addresses

 ipv4.gateway

 ipv4.dns1

 ipv4.method

         

#修改IP:           
[root@centos7 ~]# nmcli con modify eth0 ipv4.addresses 192.168.52.7/24            
# 增加IP:
[root@centos7 ~]# nmcli con modify eth0 +ipv4.addresses 1.1.1.1/24
# 刪減IP:
[root@centos7 ~]# nmcli con modify eth0 -ipv4.addresses 1.1.1.1/24
# 修改網關:
[root@centos7 ~]# nmcli con modify eth0  ipv4.gateway 192.168.52.2
# 修改DNS
[root@centos7 ~]# nmcli con modify eth0 ipv4.dns  8.8.8.8

以上編輯操作都需要重啓生效:

[root@centos7 ~]# nmcli con down eth0;nmcli con up eth0     # 重啓生效


    Usage: nmcli device { COMMAND | help }

COMMAND := { status|show|connect|disconnect|delete|wifi}

       status:顯示所有接口的狀態

       show [<ifname>]:顯示指定接口的詳細信息

       connect <ifname>:連接指定接口

       disconnect <ifname>:斷開指定接口連接

       delete <ifname>:刪除指定接口

[root@centos7 ~]# nmcli dev show eth0
GENERAL.DEVICE:                         eth0
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:01:DC:01
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     eth0
GENERAL.CON-PATH:                      
/org/freedesktop/NetworkManager/ActiveConnection/4
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.52.7/24
IP4.GATEWAY:                            192.168.52.2
IP6.ADDRESS[1]:                        
fe80::20c:29ff:fe01:dc01/64
IP6.GATEWAY:

5)網絡接口配置tui工具:nmtui

 [root@centos7 ~]#  nmtui

wKioL1YKATnx4pTdAAD8DUDTU5g011.jpg

 

6)主機名稱配置工具:hostnamectl {status | set-hostname }

 [root@centos7 ~]#  hostnamectl status
   Static hostname: localhost.localdomain
         Icon name: computer
           Chassis: n/a
        Machine ID:
800b1ae9531f4c38964ddd3322f4624b
           Boot ID:
ec6a5610e3444e668bed2c81bc981a5d
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-229.el7.x86_64
      Architecture: x86_64
 [root@centos7 ~]# hostnamectl set-hostname Centos7      # 永久生效


 

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