Linux網絡配置基礎篇

Linux網絡配置基礎篇linux

 

1、如何實現linux網絡通訊?vim

 

1)指定IP/NETMASK可實現本地通訊;服務器

2)指定路由(網關)可實現跨網絡通訊;網絡

3)指定DNS服務器地址可實現基於主機名的通訊,socket

DNS服務器地址(當前服務器不在線時,啓用備用DNS服務器地址)tcp

備用DNS服務器地址編輯器

第三備份DNS服務器地址ide


2、配置網絡方式及網絡接口命名測試

linux 網絡屬於內核的功能,ui

 

配置方式:

    靜態指定:使用命令直接指定或修改配置文件

    動態分配:依賴於本地網絡中有DHCP服務

 

網絡接口命名方式:

  傳統命名:

     以太網:ethX, [0,oo),例如eth0, eth1, ...

     PPP網絡:pppX, [0,...], 例如,ppp0, ppp1, ...

    本地迴環:lo

 

可預測命名方案(CentOS):

    支持多種不一樣的命名機制:Fireware, 拓撲結構


1) 若是FirmwareBIOS爲主板上集成的設備提供的索引信息可用,則根據此索引進行命名,如eno1, eno2, ...

2) 若是FirmwareBIOSPCI-E擴展槽所提供的索引信息可用,且可預測,則根據此索引進行命名,如ens1, ens2, ...

3) 若是硬件接口的物理位置信息可用,則根據此信息命名,如enp2s0, ...

4) 若是用戶顯式定義,也可根據MAC地址命名,例如enx122161ab2e10, ...

上述均不可用,則仍使用傳統方式命名;


命名格式的組成:

    enethernet

    wlwlan

    wwwwan


名稱類型:

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

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

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

     p<bus>s<slot>:基於總線及槽的拓撲結構進行命名;


傳輸層協議:

     tcp:面向鏈接的協議;通訊開始以前,要創建一個虛鏈路;通訊完成後還要拆除鏈接;

     udp:無鏈接的協議;直接發送數據報文;

 

3、經常使用網絡配置命令


1.ifcfg命令家族: ifconfig, route, netstat


1)ifconfig命令:接口及地址查看和管理

wKioL1b2CpuycVrPAAAxtAmq2kQ999.png

ifconfig -a:顯示全部接口,包括inactive狀態的接口;

wKiom1b2CgDz3pEHAABRxudDTAM845.png

ifconfig  IFACE  IP/MASK  [up|down]:爲指定接口配置ip,開啓或關閉接口;

wKiom1b2CnyzYq_7AABmHoJL7vY976.png

fconfig  IFACE  IP  netmask  NETMASK :爲指定的接口配置ip,子網掩碼。

wKiom1b2CvLzk-iIAABmPgsRAa8388.png

options:開啓或關閉混雜模式[-]promisc

wKioL1b2DCTxiEWrAAA3aOqfHgs822.png

wKioL1b2C_qTlly7AAA2Vncd8M0117.png

注意:當即送往內核中的TCP/IP協議棧,並生效,只對當前內核有效;


管理IPv6地址:

add addr/prefixlen

    del  addr/prefixlen

2)route命令:路由查看及管理


      路由條目類型:

       主機路由:目標地址爲單個IP

       網絡路由:目標地址爲IP網絡;

       默認路由:目標爲任意網絡,0.0.0.0/0.0.0.0

 

查看:# route  -n

wKiom1b2C_HiZKosAAAa1jtOkZ4282.png

加:

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

示例:route add -net  10.0.0.0/8  gw  172.18.0.1 dev  eth1

到達10.0.0.0網絡經由172.18.0.1(下一跳)

wKiom1b2DDihfZcTAAAla6VhHuo366.png

route add  default  gw 192.168.0.1 到達任意網絡需經由192.168.0.1

wKioL1b2DuizaPwPAAAptqIDEsQ125.png

刪除:

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

示例: route  del  -net  10.0.0.0/8  gw 192.168.0.1

wKioL1b2D2ejaB2iAAAkqBVJJvY911.png


3)netstat命令:

         顯示路由表:netstat  -rn

                            -r:顯示內核路由表

                            -n:數字格式

wKiom1b2DyHBjMEaAAAfxVRDG28115.png

   顯示網絡鏈接:

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

         -tTCP協議的相關鏈接,鏈接均有其狀態;FSMFinate State Machine);

         -uUDP相關的鏈接

         -wraw socket相關的鏈接

         -l:處於監聽狀態的鏈接

         -a:全部狀態

         -n:以數字格式顯示IPPort

         -e:擴展格式

         -p:顯示相關的進程及PID


      經常使用組合:

        netstat-tan:查看tcp協議相關連接

wKioL1b2ECPQrsxJAAAlNTXdj2c305.png

 netstat-uan:查看udp協議相關鏈接

wKiom1b2D76gDGD0AAAu-PRM0-U619.png

   netstat -tnl:查看處於監聽狀態的tcp協議相關鏈接

wKiom1b2EDCgoztUAAAds-doszk584.png

netstat-unl:查看處於監聽狀態的udp協議相關鏈接

wKioL1b2EP6j57hhAAAmVPlNxz8547.png

netstat-tunlp:顯示處於監聽狀態的tcpudp協議相關鏈接的進程及PID

wKioL1b2EROiUvOoAABShDB1BMo595.png


顯示接口的統計數據:

  全部接口:netstat  -i

wKiom1b2EM2xQekMAAAh42n2GxM231.png

指定接口:netstat  -I<IFace>

wKiom1b2EOqwRtIBAAAS1s9GMbw451.png


  ifup/ifdown命令:啓用或禁用網卡(須要有網卡配置文件)

  注意:經過配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE來識別接口並完成配置;


配置主機名

    hostname命令:

   查看:hostname

   配置:hostname  HOSTNAME

  當前系統有效,重啓後無效;


   hostnamectl命令(CentOS 7):

   hostnamectl  status:顯示當前主機名信息;

   hostnamectl  set-hostname:設定主機名,永久有效;

   配置文件:/etc/sysconfig/networkCentOS6

   HOSTNAME=<HOSTNAME>

   注意:此方法的設置不會當即生效; 但之後會一直有效;


配置DNS服務器指向

   配置文件:/etc/resolv.conf

   nameserver   DNS_SERVER_IP

wKioL1b2Ex6AE-YaAAALy2oGbzQ340.png

    如何測試(host/nslookup/dig)

   # dig  -t  A  FQDN(不會檢查hosts

         FQDN --> IP

   # dig  -x  IP

        IP --> FQDN


2.iproute家族:

ip命令:

ip [ OPTIONS ] OBJECT { COMMAND | help }

                  OBJECT := { link | addr | route | netns  }

注意: OBJECT可簡寫,各OBJECT的子命令也可簡寫;i


1)ip linknetwork device configuration

      ip  link  set - change device attributesdev NAME (default):指明要管理的設備,dev關鍵字可省略;

  updown:開啓或關閉接口

wKiom1b2EmLx31hWAAAxjc_83PI477.png

wKioL1b2Ev7TQeAfAAAxiNHIhXc395.png

multicast onmulticast off:啓用或禁用多播功能;

name NAME:重命名接口

wKiom1b2EvWhVuN-AAAvWSd_zFQ175.png

mtu NUMBER:設置MTU的大小,默認爲1500

wKioL1b2E6Xjvje6AAAnvlwRuhs320.png

  ip link  show  - display device attributes

   ip  link  help -  顯示簡要使用幫助;

      netns PIDnsnamespace,用於將接口移動到指定的網絡名稱空間;


wKiom1b2FF7SI4y3AAAHPSPSIJA534.png

2)ip netns: -manage network namespaces.


  ip  netns  list:列出全部的netns

wKiom1b2FLjQ9mHGAAAFxYh09f8784.png

ip netns add NAME:建立指定的netns

wKiom1b2FRLzGbAzAAAIjZO8oXo736.png

ip netns del NAME:刪除指定的netns

wKioL1b2FbuDH_UiAAAIHH-saME522.png

ip netns  exe  NAME COMMAND:在指定的netns中運行命令

wKioL1b2FcWS3duQAAAdy-pQAKo351.png

3)ip address - protocol address management.

ip  addr  add  IFADDR  dev  IFACE

wKiom1b2Fhby5P_uAAAvTOsxk44039.png

[label NAME]:爲額外添加的地址指明接口別名;

 

         [broadcast ADDRESS]:廣播地址;會根據IPNETMASK自動計算獲得;

         [scope SCOPE_VALUE]

                       global:全局可用;

                         link:接口可用;

                         host:僅本機可用;

ip addr  delete  IFADDR  dev  IFACE 

wKioL1b2Fv_wip5fAAAoEKW5z6Y918.png


ip  addr   list  [IFACE]:顯示接口的


ip  addr  flush  dev  IFACE:清空指定接口配置

wKiom1b2FrOSsQRCAAAT1rt0ZTw782.png


4)ip route:路由表管理命令

             ip route add - add new route

             ip route change - change route

             ip route replace - change or add new one

             ip route add TYPE PREFIX via GW [dev  IFACE] [src SOURCE_IP]


示例:

# ip route add 192.168.0.0/24  via 10.0.0.1  dev eth1 src  10.0.20.100

wKiom1b2F0ziMFoOAAAlkbO72UA297.png

# ip  route  add default  via  

wKioL1b2GAezZP8-AAAmCWp2G8A706.png

#ip  route  del  TYPE PRIFIX 

wKiom1b2F5LSRdyUAABElLLI8Go033.png

#ip  route  get  TYPE PRIFIX

wKioL1b2GEDwfxIsAAANvN93uj8434.png

3.ss命令:

   ss  [options]  [ FILTER ]

       選項:

          -tTCP協議的相關鏈接

          -uUDP相關的鏈接

          -wraw socket相關的鏈接

          -l:監聽狀態的鏈接

          -a:全部狀態的鏈接

          -n:數字格式

          -p:相關的程序及其PID

          -e:擴展格式信息

          -m:內存用量

          -o:計時器信息

TCP的常見狀態:

        TCP FSM

          LISTEN:監聽

          ESTABLISEHD:已創建的鏈接

          FIN_WAIT_1

          FIN_WAIT_2

          SYN_SENT

          SYN_RECV

            CLOSED


  EXPRESSION

  dport = 目標端口

  sport =  源端口

示例:'( dport = :22 or sport = :22 )'

wKioL1b2Gb6QCQEeAAAVnO99wAQ188.png           ss  -tan  state  ESTABLISHED

wKioL1b2GYmy6LfmAAAOkHfjJRI334.png


4、配置文件:

   IP/NETMASK/GW/DNS等屬性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE

   IFACE:接口名稱;

   路由的相關配置文件:/etc/sysconfig/network-scripts/route-IFACE


配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE經過大量參數來定義接口的屬性;其可經過vim等文本編輯器直接修改,也可使用專用的命令的進行修改(CentOS 6system-config-network (setup)CentOS 7: nmtui

wKioL1b2Gj_RLgbCAAAcVlu4GqQ682.png

ifcfg-IFACE配置文件,以下圖

wKioL1b2Gh7htE_EAABvaMlGOrM450.png

網絡服務:

       network

       NetworkManager

管理網絡服務:

              CentOS 6:   service  SERVICE  {start|stop|restart|status}

              CentOS 7systemctl  {start|stop|restart|status}  SERVICE[.service]


配置文件修改以後,若是要生效,須要重啓網絡服務;

              CentOS 6# service  network  restart

              CentOS 7# systemctl  restart  network.service


用到非默認網關路由:/etc/sysconfig/network-scripts/route-IFACE

支持兩種配置方式,但不可混用;

      (1) 每行一個路由條目:

                  TARGET  via  GW

      (2) 每三行一個路由條目:

                ADDRESS#=TARGET

                NETMASK#=MASK

                GATEWAY#=NEXTHOP

給接口配置多個地址:

               ip addr以外,ifconfig或配置文件均可以;


  (1) ifconfig  IFACE_LABEL  IPADDR/NETMASK

         IFACE_LABELeth0:0, eth0:1, ...

   (2) 爲別名添加配置文件;

           DEVICE=IFACE_LABEL

           BOOTPROTO:網上別名不支持動態獲取地址;static, none


nmcli命令:


    nmcli  [ OPTIONS ] OBJECT { COMMAND | help }


device - show and manage network interfaces

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

            connection - start, stop, and manage network connections

           COMMAND := { show | up | down | add | edit | modify | delete | reload | load }

            modify [ id | uuid | path ] <ID> [+|-]<setting>.<property> <value>


如何修改IP地址等屬性:

   # nmcli  conn  modify  IFACE  [+|-]setting.property  value

                                          ipv4.address

                                          ipv4.gateway

                                          ipv4.dns1

                                          ipv4.method

                                          manual

相關文章
相關標籤/搜索