Linux網絡屬性配置——ifcfg命令家族


ifconfig命令

  • 功能:可以手動啟動、查看和修改網絡接口的相關參數。
  • 用法:
    • ifconfig                                     //查看默認顯示激活狀態的網卡信息
    • ifconfig etho                       //顯示指定網卡的信息
    • ifconfig -a                                //顯示所有網卡的信息
    • ifconfig INTERFACE up|down]   //禁用或者啟動某個網卡
    • ifconfig INTERFACE IP               //設定IP    
  • eg:

    # 查看所有網卡信息

     

 

    # 查看指定網卡信息

 

[li@centos7 ~]$ ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.22.12.233  netmask 255.255.0.0  broadcast 172.22.255.255
        inet6 fe80::7bf5:16a7:f734:b7c4  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:0f:5d:ea  txqueuelen 1000  (Ethernet)
        RX packets 287788  bytes 20207460 (19.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 993  bytes 197981 (193.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

  # 給出指定的IP地址並激活

    1、方式一:#ifconfig IFACE  IP/MASK [up]

[root@localhost~]# ifconfig eno16777736 192.168.10.100/24 up
[root@localhost~]# ifconfig     # 發現地址已經激活
eno16777736:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.100  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::20c:29ff:fee5:2d6a  prefixlen 64 scopeid 0x20<link>
        ether 00:0c:29:e5:2d:6a  txqueuelen 1000  (Ethernet)
        RX packets 126  bytes 44856 (43.8 KiB)
        RX errors 0  dropped 0 overruns 0  frame 0
        TX packets 341  bytes 63010 (61.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0 collisions 0

[root@localhost~]# ping 192.168.10.100 # 查看是否能用這個地址

    2、方式二:#ifconfig IFACEIP netmask NETMASK

[root@localhost~]# ifconfig eno16777736 192.168.10.101 netmask 255.255.255.0
[root@localhost~]# ifconfig 
eno16777736:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.101  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::20c:29ff:fee5:2d6a  prefixlen 64 scopeid 0x20<link>
        ether 00:0c:29:e5:2d:6a  txqueuelen 1000  (Ethernet)
        RX packets 126  bytes 44856 (43.8 KiB)
        RX errors 0  dropped 0 overruns 0  frame 0
        TX packets 343  bytes 63150 (61.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0 collisions 0

  注意:ifconfig命令的網絡配置只對當前系統有效

    在遠程ssh時最好不要使用,可能網絡環境不同,一旦不生效,可能要跑到機房重新設置

  • 為同一個網絡接口配置多個網絡IP地址:給接口名起別名的方式
    • 動態方式:

        ifconfig eth0:# IP netmask MASK

          如ifconfig eth0:0 192.168.1.177 netmask 255.255.255.0

    • 靜態方式

         創建/etc/sysconfig/network-scripts/ifcfg-eth0:0文件,並配置即可。注意,文件中的DEVICE=eth0:0,且該接口處的IP地址不能動態的獲取,需要手動設定。

    注意:當一塊網卡上配置多個IP地址時,如eth0、eth0:0,如果禁掉eth0:0,eth0上的網卡依然生效。但直接禁掉物理網卡時(即eth0),其后面的配置(eth0:0)等都將被刪除掉。

  • 網卡的混雜模式

    功能:將來實現網絡監控的的重要一步,每個主機如果不是發送給自己的報文數據就會拒絕接受,啟用混雜模式后不是自己的也可以接受

    • 實現:# ifconfig eth0 promisc
    • 取消:# ifconfig eth0 -promisc   

 

配置網關:route命令

  • 網關/路由:

    為了使主機能夠訪問到另一個子網,需要在設備里增加路由到子網絡。兩部主機之間一定要有路由才能互通TCP/IP的協定,否則就無法連線。

  • route功能:

    用來查看、修改路由的信息

  • 路由條目類型
    • 主機路由 :路由用來連接某台主機
    • 網絡路由 :路由用來連接某個網絡
    • 默認路由:匹配所有的包,但IP地址和子網掩碼全部是零
  • 補充:
    • 主機的路由表:本主機與外部其他主機通信
    • 路由的路由表:網絡報文的轉發
  • 查看

    # route -n  :表示以數字格式顯示路由信息

[li@centos7 ~]$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.22.18.1     0.0.0.0         UG    100    0        0 ens33
172.22.0.0      0.0.0.0         255.255.0.0     U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

      顯示信息:

      • destination,genmask:分別是network和netmask,也就是ip和子網掩碼,組合成一個完整的網域
      • gateway:該網域是通過哪個gateway連接出去?如果顯示0.0.0.0表示該路由是直接由本機傳送,亦即可以透過區域網路的 MAC 直接傳訊;如果有顯示 IP 的話,表示該路由需要經過路由器 (通訊閘的幫忙才能夠傳送出去。
      • Flags:總共有多個旗標,代表的意義如下:                        

          U (route is up):該路由是啟動的                                          

          G (use gateway):需要透過外部的主機 (gateway) 來轉遞封包

        

 

  • 添加

    # route add [-net|-host] target [netmask Nm] [gw GW] [[dev] if] 

  • 刪除

    # route  del  [-net|-host] target  [gw Gw]  [netmask Nm]  [[dev] If]

 

  eg:如何使用route命令添加路由:

    # 主機路由 

      目標:192.168.1.3  經由的網關:172.16.0.1

[root@localhost ~]# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
  # dev:存在多個網卡時,表示經由哪個網

    

    # 網絡路由 

      目標:192.168.0.0  網關:172.16.0.1

[root@localhost ~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.0 dev eth0

    # 默認路由

       網關:172.16.0.1

[root@localhost ~]# route add -net 0.0.0.0 netmask 255.255.255.0 gv 172.16.0.1
或者
[root@localhost ~]# route add default gw 172.16.0.1

 

  eg:刪除

    # 網絡路由

      目標:192.168.0.0  網關:172.16.0.1

[root@localhost ~]# route del -net 192.168.0.0 gw 172.16.0.1

    # 默認路由

[root@localhost ~]# route del default

 

  

netstat命令

  • 用於顯示網絡相關信息,如網絡連接,路由表,接口狀態等
  • 顯示路由信息

    # netstat -rn

      -r :顯示路由表

      -n :數字格式顯示

    eg:   

[root@centos7 ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         172.22.18.1     0.0.0.0         UG        0 0          0 ens33
172.22.0.0      0.0.0.0         255.255.0.0     U         0 0          0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr0

  解釋:ens33這個網絡接口的默認網關(即路由)是172.22.18.1。gateway為0.0.0.0表示本地網絡,不需要任何網關。

  • 顯示網絡連接:

  格式:

  # netstat  [--tcp|-t]  [--udp|-u]  [--udplite|-U]  [--sctp|-S]  [--raw|-w]  [--listening|-l]  [--all|-a]  [--numeric|-n]   [--extend|-e[--extend|-e]]  [--program|-p]

    選項:     

      -t:TCP協議的相關連接,連接均有其狀態;FSM(Finate State Machine);
      -u:UDP相關的連接
      -w:raw socket相關的連接
      -l:處於監聽狀態的連接
      -a:所有狀態
      -n:以數字格式顯示IP和Port;
      -e:擴展格式
      -p:顯示相關的進程及PID;

    常用組合:

      -tan, -uan, -tnl, -unl, -tunlp

    傳輸層協議:
      tcp:面向連接的協議;通信開始之前,要建立一個虛鏈路;通信完成后還要拆除連接;
      udp:無連接的協議;直接發送數據報文;

    eg:

      # 以數字格式顯示所有的tcp連接    

[root@centos7 ~]# netstat -tan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 172.22.12.233:22 172.22.10.22:50118 ESTABLISHED
tcp 0 52 172.22.12.233:22 172.22.10.22:50119 ESTABLISHED
tcp6 0 0 :::111 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
[root@centos7 ~]#

  • 顯示接口的統計數據

    格式:

      # netstat    {--interfaces|-I|-i}    [iface]   [--all|-a]   [--extend|-e]   [--verbose|-v]   [--program|-p]  [--numeric|-n]

    eg:

      # 顯示所有接口    

[root@centos7 ~]# netstat -i
Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33     1500   158566      0      0 0           383      0      0      0 BMRU
lo       65536        0      0      0 0             0      0      0      0 LRU
virbr0    1500        0      0      0 0             0      0      0      0 BMU

      # 顯示指定接口 netstat -I<IFACE>

[root@centos7 ~]# netstat -Iens33
Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33     1500   159509      0      0 0           409      0      0      0 BMRU

 

配置主機名

  給自己的當前主機設置一個名字

  方式:

     1、指定命令

     2、配置文件:/etc/sysconfig/network

      • 指定命令    

          1、hostname

            查看:# hostnam

        •   配置:# hostname HOSTNAME

           注意:只對當前系統有效,重啟后無效

        •     2、在CentOS7上的配置主機名的命令 : hostnamectl命令
        •      查看 : #hostnamectl  status:顯示當前主機信息;
          •  配置:# hostnamectl set-hostname:設定主機名,永久有效

    eg:

      # 在CentOS7上顯示主機信息

[root@centos7 ~]# hostnamectl status
   Static hostname: centos7
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 8e1320e3a6294bc3bc7fac06de8008a0
           Boot ID: f77ed060007342c3a8df8df3564ba596
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-514.el7.x86_64
      Architecture: x86-64
[root@centos7 ~]# 
      • 配置文件:重啟后永久有效

        # 可以手動編輯/etc/sysconfig/network里面的信息

[root@centos7 sysconfig]# cat /etc/sysconfig/network
# Created by anaconda
HOSTNAME=CENTOS7
[root@centos7 sysconfig]# 

 

配置DNS服務器指向

  •  配置文件:
    •   /etc/resolv.conf
      • 因為可以有3個DNS,所以可以編輯3個

          nameserve DNS_SERVER_IP1

          nameserve DNS_SERVER_IP2

          nameserve DNS_SERVER_IP3       

    eg:

      # 可以手動編輯DNS,前提是DNS服務器可用

 

[root@centos7 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search corp.longshine.com
nameserver 172.22.1.10
[root@centos7 ~]# 

 

  如何測試:

    命令:host ,nslookup ,dig

    如果系統沒有安裝,則使用# yum -y install bind-utils即可

      1、# dig -t A FQDN(域名)

        正向解析:將域名解析為IP地址

      2、 # dig -x IP

        反向解析:將ip地址解析為域名 

      eg:

        # 使用dig和nslookup解析百度域名

[root@centos7 ~]# dig -t A www.baidu.com

; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -t A www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42115
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;www.baidu.com.            IN    A

;; ANSWER SECTION:
www.baidu.com.        713    IN    CNAME    www.a.shifen.com.
www.a.shifen.com.    209    IN    A    61.135.169.125
www.a.shifen.com.    209    IN    A    61.135.169.121

;; Query time: 3 msec
;; SERVER: 172.22.1.10#53(172.22.1.10)
;; WHEN: 五 6月 16 20:14:19 AST 2017
;; MSG SIZE  rcvd: 101

[root@centos7 ~]# 
[root@centos7 ~]# nslookup www.baidu.com
Server:        172.22.1.10
Address:    172.22.1.10#53

Non-authoritative answer:
www.baidu.com    canonical name = www.a.shifen.com.
Name:    www.a.shifen.com
Address: 61.135.169.121
Name:    www.a.shifen.com
Address: 61.135.169.125

[root@centos7 ~]# 

  

一些補充:

  eg:

    # 查詢升級`ip命令的程序包在哪里`(注意是反引號)

[root@localhost ~]# rpm -qf `which ip`
iproute-3.10.0-74.el7.x86_64

    # 顯示ip及其有關命令在哪個文件下

[root@localhost ~]# rpm -ql iproute
/etc/iproute2
/etc/iproute2/ematch_map
/etc/iproute2/group
/etc/iproute2/nl_protos
/etc/iproute2/rt_dsfield
/etc/iproute2/rt_protos
/etc/iproute2/rt_realms
/etc/iproute2/rt_scopes
/etc/iproute2/rt_tables
/etc/sysconfig/cbq
/etc/sysconfig/cbq/avpkt
/etc/sysconfig/cbq/cbq-0000.example
/usr/lib64/tc
......

 

    

 

 

 

 

 

 

 

  

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM