设为首页 收藏本站
查看: 650|回复: 0

[经验分享] Linux网络配置基础篇

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-3-28 09:24:59 | 显示全部楼层 |阅读模式
一、如何实现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) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,则根据此索引进行命名,如eno1, eno2, ...
2) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1, ens2, ...
3) 如果硬件接口的物理位置信息可用,则根据此信息命名,如enp2s0, ...
4) 如果用户显式定义,也可根据MAC地址命名,例如enx122161ab2e10, ...
上述均不可用,则仍使用传统方式命名;

命名格式的组成:
    en:ethernet
    wl:wlan
    ww:wwan

名称类型:
     o<index>:集成设备的设备索引号;
     s<slot>:扩展槽的索引号;
     x<MAC>:基于MAC地址的命名;
     p<bus>s<slot>:基于总线及槽的拓扑结构进行命名;

传输层协议:
     tcp:面向连接的协议;通信开始之前,要建立一个虚链路;通信完成后还要拆除连接;
     udp:无连接的协议;直接发送数据报文;

三、常用网络配置命令

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

1)ifconfig命令:接口及地址查看和管理
wKioL1b2CpuycVrPAAAxtAmq2kQ999.jpg
ifconfig -a:显示所有接口,包括inactive状态的接口;
wKiom1b2CgDz3pEHAABRxudDTAM845.jpg
ifconfig  IFACE  IP/MASK  [up|down]:为指定接口配置ip,开启或关闭接口;
wKiom1b2CnyzYq_7AABmHoJL7vY976.jpg
fconfig  IFACE  IP  netmask  NETMASK :为指定的接口配置ip,子网掩码。
wKiom1b2CvLzk-iIAABmPgsRAa8388.jpg
options:开启或关闭混杂模式[-]promisc;
wKioL1b2DCTxiEWrAAA3aOqfHgs822.jpg
wKioL1b2C_qTlly7AAA2Vncd8M0117.jpg
注意:立即送往内核中的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.jpg
加:
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.jpg
route add  default  gw 192.168.0.1 到达任意网络需经由192.168.0.1
wKioL1b2DuizaPwPAAAptqIDEsQ125.jpg
删除:
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.jpg

3)netstat命令:
         显示路由表:netstat  -rn
                            -r:显示内核路由表
                            -n:数字格式
wKiom1b2DyHBjMEaAAAfxVRDG28115.jpg
    显示网络连接:
   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;

      常用组合:
        netstat-tan:查看tcp协议相关链接
wKioL1b2ECPQrsxJAAAlNTXdj2c305.jpg
netstat-uan:查看udp协议相关连接
wKiom1b2D76gDGD0AAAu-PRM0-U619.jpg
   netstat -tnl:查看处于监听状态的tcp协议相关连接

wKiom1b2EDCgoztUAAAds-doszk584.jpg
netstat-unl:查看处于监听状态的udp协议相关连接
wKioL1b2EP6j57hhAAAmVPlNxz8547.jpg
netstat-tunlp:显示处于监听状态的tcp及udp协议相关连接的进程及PID
wKioL1b2EROiUvOoAABShDB1BMo595.jpg

显示接口的统计数据:
  所有接口:netstat  -i
wKiom1b2EM2xQekMAAAh42n2GxM231.jpg
指定接口:netstat  -I<IFace>

wKiom1b2EOqwRtIBAAAS1s9GMbw451.jpg

  ifup/ifdown命令:启用或禁用网卡(需要有网卡配置文件)
  注意:通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置;

配置主机名:
    hostname命令:
   查看:hostname
   配置:hostname  HOSTNAME
  当前系统有效,重启后无效;

   hostnamectl命令(CentOS 7):
   hostnamectl  status:显示当前主机名信息;
   hostnamectl  set-hostname:设定主机名,永久有效;
   配置文件:/etc/sysconfig/network(CentOS6)

   HOSTNAME=<HOSTNAME>
   注意:此方法的设置不会立即生效; 但以后会一直有效;

配置DNS服务器指向:
   配置文件:/etc/resolv.conf

   nameserver   DNS_SERVER_IP
wKioL1b2Ex6AE-YaAAALy2oGbzQ340.jpg
    如何测试(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 link: network device configuration
      ip  link  set - change device attributes,dev NAME (default):指明要管理的设备,dev关键字可省略;

  up和down:开启或关闭接口
wKiom1b2EmLx31hWAAAxjc_83PI477.jpg
wKioL1b2Ev7TQeAfAAAxiNHIhXc395.jpg
multicast on或multicast off:启用或禁用多播功能;
name NAME:重命名接口
wKiom1b2EvWhVuN-AAAvWSd_zFQ175.jpg
mtu NUMBER:设置MTU的大小,默认为1500;
wKioL1b2E6Xjvje6AAAnvlwRuhs320.jpg
  ip link  show  - display device attributes
   ip  link  help -  显示简要使用帮助;
      netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;

wKiom1b2FF7SI4y3AAAHPSPSIJA534.jpg
2)ip netns: -manage network namespaces.

  ip  netns  list:列出所有的netns
wKiom1b2FLjQ9mHGAAAFxYh09f8784.jpg
ip netns add NAME:创建指定的netns
wKiom1b2FRLzGbAzAAAIjZO8oXo736.jpg
ip netns del NAME:删除指定的netns
wKioL1b2FbuDH_UiAAAIHH-saME522.jpg
ip netns  exe  NAME COMMAND:在指定的netns中运行命令
wKioL1b2FcWS3duQAAAdy-pQAKo351.jpg
3)ip address - protocol address management.
ip  addr  add  IFADDR  dev  IFACE
wKiom1b2Fhby5P_uAAAvTOsxk44039.jpg
[label NAME]:为额外添加的地址指明接口别名;

         [broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算得到;
         [scope SCOPE_VALUE]:
                       global:全局可用;
                         link:接口可用;
                         host:仅本机可用;
ip addr  delete  IFADDR  dev  IFACE
wKioL1b2Fv_wip5fAAAoEKW5z6Y918.jpg

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

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

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.jpg
# ip  route  add default  via  
wKioL1b2GAezZP8-AAAmCWp2G8A706.jpg
#ip  route  del  TYPE PRIFIX
wKiom1b2F5LSRdyUAABElLLI8Go033.jpg
#ip  route  get  TYPE PRIFIX
wKioL1b2GEDwfxIsAAANvN93uj8434.jpg
3.ss命令:
   ss  [options]  [ FILTER ]
       选项:
          -t:TCP协议的相关连接
          -u:UDP相关的连接
          -w:raw 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.jpg            ss  -tan  state  ESTABLISHED
wKioL1b2GYmy6LfmAAAOkHfjJRI334.jpg

四、配置文件:
   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 6:system-config-network (setup),CentOS 7: nmtui)
wKioL1b2Gj_RLgbCAAAcVlu4GqQ682.jpg
ifcfg-IFACE配置文件,如下图
wKioL1b2Gh7htE_EAABvaMlGOrM450.jpg

网络服务:
       network
       NetworkManager
管理网络服务:
              CentOS 6:   service  SERVICE  {start|stop|restart|status}
              CentOS 7: systemctl  {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_LABEL: eth0: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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-196513-1-1.html 上篇帖子: Linux上find命令详解 下篇帖子: linux 自动挂载访问 Windows NTFS 分区文件系统 Linux 网络
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表