Linux网络配置基础篇

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux网络配置基础篇相关的知识,希望对你有一定的参考价值。

Linux网络配置基础篇

 

一、如何实现linux网络通信?

 

1)指定IP/NETMASK可实现本地通信;

2)指定路由(网关)可实现跨网络通信;

3)指定DNS服务器地址可实现基于主机名的通信,

DNS服务器地址(当前服务器不在线时,启用备用DNS服务器地址)

备用DNS服务器地址

第三备份DNS服务器地址


二、配置网络方式及网络接口命名

linux 网络属于内核的功能,

 

配置方式:

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

    动态分配:依赖于本地网络中有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:无连接的协议;直接发送数据报文;

 

三、常用网络配置命令


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


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

技术分享

ifconfig -a:显示所有接口,包括inactive状态的接口;

技术分享

ifconfig  IFACE  IP/MASK  [up|down]:为指定接口配置ip,开启或关闭接口;

技术分享

fconfig  IFACE  IP  netmask  NETMASK :为指定的接口配置ip,子网掩码。

技术分享

options:开启或关闭混杂模式[-]promisc

技术分享

技术分享

注意:立即送往内核中的TCP/IP协议栈,并生效,只对当前内核有效;


管理IPv6地址:

add addr/prefixlen

    del  addr/prefixlen

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


      路由条目类型:

       主机路由:目标地址为单个IP

       网络路由:目标地址为IP网络;

       默认路由:目标为任意网络,0.0.0.0/0.0.0.0

 

查看:# route  -n

技术分享

加:

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(下一跳)

技术分享

route add  default  gw 192.168.0.1 到达任意网络需经由192.168.0.1

技术分享

删除:

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

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

技术分享


3)netstat命令:

         显示路由表:netstat  -rn

                            -r:显示内核路由表

                            -n:数字格式

技术分享

   显示网络连接:

   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协议相关链接

技术分享

 netstat-uan:查看udp协议相关连接

技术分享

   netstat -tnl:查看处于监听状态的tcp协议相关连接

技术分享

netstat-unl:查看处于监听状态的udp协议相关连接

技术分享

netstat-tunlp:显示处于监听状态的tcpudp协议相关连接的进程及PID

技术分享


显示接口的统计数据:

  所有接口:netstat  -i

技术分享

指定接口:netstat  -I<IFace>

技术分享


  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

技术分享

    如何测试(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:开启或关闭接口

技术分享

技术分享

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

name NAME:重命名接口

技术分享

mtu NUMBER:设置MTU的大小,默认为1500

技术分享

  ip link  show  - display device attributes

   ip  link  help -  显示简要使用帮助;

      netns PIDnsnamespace,用于将接口移动到指定的网络名称空间;


技术分享

2)ip netns: -manage network namespaces.


  ip  netns  list:列出所有的netns

技术分享

ip netns add NAME:创建指定的netns

技术分享

ip netns del NAME:删除指定的netns

技术分享

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

技术分享

3)ip address - protocol address management.

ip  addr  add  IFADDR  dev  IFACE

技术分享

[label NAME]:为额外添加的地址指明接口别名;

 

         [broadcast ADDRESS]:广播地址;会根据IPNETMASK自动计算得到;

         [scope SCOPE_VALUE]

                       global:全局可用;

                         link:接口可用;

                         host:仅本机可用;

ip addr  delete  IFADDR  dev  IFACE 

技术分享


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


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

技术分享


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

技术分享

# ip  route  add default  via  

技术分享

#ip  route  del  TYPE PRIFIX 

技术分享

#ip  route  get  TYPE PRIFIX

技术分享

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 )‘

技术分享           ss  -tan  state  ESTABLISHED

技术分享


四、配置文件:

   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

技术分享

ifcfg-IFACE配置文件,如下图

技术分享

网络服务:

       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


以上是关于Linux网络配置基础篇的主要内容,如果未能解决你的问题,请参考以下文章

Linux基础篇——Linux网络配置(配置网卡固定IP,固定hostname,终端远程)详解

Linux基础篇——Linux网络配置(配置网卡固定IP,固定hostname,终端远程)详解

linux操作系统基础篇

Centos7虚拟机创建后的基础配置教程—linux基础篇

大数据之路之Linux篇

大数据之路之Linux篇