Linux基础——03 网络配置


目录
  • 03 网络配置
    • 网络管理基础知识
    • NetworkManager
    • 命令终端配置网络(多用于服务器)
      • 命令行配置网络nmcli
      • 修改网卡状态
      • 修改网卡配置
    • 常见网络命令
    • 网络常见故障

03 网络配置

网络管理基础知识

操作系统网络连接方式

  • 按物理连接方式分裂
    • 有线接入、无线接入
  • 主机接入网络需要的主要配置信息
    • IP地址:互联网上的每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异
    • 子网掩码:用于实现本地网络通信
    • 网关:可以进行跨网络通信
    • DNS:域名和IP地址相互映射的一个分布式数据库服务器

NetworkManager

  • NetworkManager介绍

    • 麒麟操作系统的默认网络管理组件
    • 一个动态网络控制和配置守护进程——尝试在其可用时保持网络设备和连接处于活动状态
    • 所有连接的配置文件保存在/etc/NetworkManager/system-connections
  • NetworkManager组成

    应用程序或工具 描述
    NetworkManager 默认联网守护进程
    nm-connection-editor 设置网络连接的一个界面工具
    nmtui NetworkManager 的使用光标的简单文本用户界面(TUI)
    nmcli 允许用户及脚本与NetworkManager互动的命令行工具

    注:在之前的Kylin版本中,麒麟操作系统也支持采用传统的ifcfg类型配置文件来配置和连接网络

命令终端配置网络(多用于服务器)

  1. networking管理的网络接口文件/etc/NetworkManager/system-connections

    不同操作系统,网络配置文件位置不一致

  2. DNS配置文件/etc/resolv.conf

  3. 主机名静态查询配置文件 /etc/hosts

命令行配置网络nmcli

  • nmcli:用户和脚本都可使用命令行工具nmcli管理NetworkManager

  • 命令的基本格式:

    nmcli OPTIONS OBJECT{ COMMAND | HELP}

    两个帮助命令:

    nmcli help
    nmcli con help

nmcli选项 说明
nmcli general status 显示NetworkManager总体状态
nmcli connection show 显示所有连接
nmcli connection show --active 只显示当前活动连接
nmcli device status 显示由NetworkManager 识别到的设备及其状态
nmcli connection modify 修改连接

connection 可以简写成 con

modify 可以简写成mod

修改网卡状态

nmcli 选项 说明
nmcli connection up 启用网络连接
nmcli connection down 停用网络连接
nmcli device disconnect 禁用网卡
nmcli connection delete 删除网络连接的配置文件
nmcli connection reload 重新加载网络配置文件
  • nmcli con down id mylab
  • nmcli con up id myline
  • nmcli dev disconnect iface bond0
  • nmcli dev connect iface ens33

修改网卡配置

nmcli 选项 说明
nmcli connection modify mylink connection.autoconnect yes 设置为自动启动网卡
nmcli connection modify mylink ipv4.method manual 修改IP地址获取方法为手动
nmcli connection modify mylink ipv4.method auto 修改IP地址获取方法为自动
nmcli connection modify mylink ipv4.addresses 修改IP地址
nmcli connection modify mylink ipv4.gateway 修改网关
nmcli connection modify mylink ipv4.dns 修改DNS
nmcli connection add type ethernet ifname mylink con-name mylink 添加网络连接

常见网络命令

现在处于新旧命令交替的过渡阶段

  • net-tools与iproute2的交替

    • ifconfig、route、arp和netstat等命令行工具(统称为net-tools)

      • 使用时间久,社区已经停止维护
    • iproute2 通过netlink套接字接口与内核通讯

      • 使用时间短,仍在开发中

        用途 net-tool工具 iproute2工具
        地址和链路配置 ifconfig ip addr,ip link
        路由表 route ip route
        邻居 arp ip neigh
        统计 netstat ss
  • **ping **

    • eg: ping 192.168.64.33
  • netstat

    • 命令所在路径: /bin/netstat

    • 功能描述: 查看网络相关信息

    • 基本语法:netstat [-选项]

      netstat选项 说明
      netstat -tlun 查看本机占用端口
      netstat -tlunp 查看本机占用的端口,并显示对应的进程号和进程名称
      netstat -an 查看所有的网络服务占用的端口(包括已经建立的连接信息)和系统程序的相关程序
      netstat -ant 查看使用TCP协议的网络服务占用的端口(包括已经建立的连接信息)
      netstat -rn 查看本机的路由表
  • arp

    • 命令所在路径: /usr/bin/arp

    • 功能描述:arp命令用于操作主机的arp缓冲区,它可以显示arp缓冲区中的所有条目、删除指定的条目或者添加静态的ip地址与MAC地址对应关系

    • 常见用法:

      netstat选项 说明
      arp -a 显示本机的ARP表
      arp -s 修改arp表,添加静态项
      arp -d 删除arp表中IP地址对应的MAC地址表项
  • route

    • 功能描述:用于IP路由器的显示和操作。

    • 命令格式: route [-f] [-p] [Command[Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]

    • 常见用法

      route选项 说明
      -A 设置地址类型
      -C 打印将Linux核心的路由缓存
      -n 不执行DNS反向查找,直接显示数字形式的IP地址
      -e netstat格式 显示路由表
      -net 到一个网络的路由表
      -host 到一个主机的路由表

      设置默认网关的方法:

      ? route add default gw 192.168.64.1
      ? route add default gw 192.168.64.1 dev eth33

      删除默认网关的方法:

      ? route del default
      ? route del default gw 172.16.0.1

      添加静态路由的方法:

      ? route add -net 10.0.0.0/8 gw 192.168.64.100 dev eht33

      删除静态路由的方法:

      ? route del -net 10.0.0.0/8

  • nslookup

    • 命令所在路径:/usr/bin/route。默认没有安装,需要安装dnsutils包才能使用该命令。
    • 功能描述:查询域名对应的IP地址。
    • 命令格式:nslookup -q=type domain [dns-server]
    • 常见用法
      • nslookup www.baidu.com:查询网站www.baidu.com对应的ip地址
      • nslookup -q=mx 126.com 8.8.8.8: 使用域名服务器8.8.8.8查询126.com的邮件服务器地址。
      • nslookup -q=nx 126.com 8.8.8.8 查询域126.com的域名服务器地址
  • 网络配置工具:IP

    • 命令所在路径:/sbin/ip
    • 功能描述:显示或操纵主机的路由、网络设备、策略路由和隧道
    • 语法:ip [OPTIONS] OBJECT [COMMAND[ARGUMENTS]]
    • 用法功能比较多,根据不同场景选择使用
    yinmy@yinmy-vmware:~$ ip --help
    Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
           ip [ -force ] -batch filename
    where  OBJECT := { link | address | addrlabel | route | rule | neigh | ntable |
                       tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |
                       netns | l2tp | fou | macsec | tcp_metrics | token | netconf | ila |
                       vrf | sr | nexthop }
           OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
                        -h[uman-readable] | -iec | -j[son] | -p[retty] |
                        -f[amily] { inet | inet6 | mpls | bridge | link } |
                        -4 | -6 | -I | -D | -M | -B | -0 |
                        -l[oops] { maximum-addr-flush-attempts } | -br[ief] |
                        -o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
                        -rc[vbuf] [size] | -n[etns] name | -N[umeric] | -a[ll] |
                        -c[olor]}
    

网络常见故障

? 由于实现网络服务器的层次结构比较多,当网络出现故障时,解决起来比较复杂。可能出现的网络问题主要有:

  • 网络连接问题

  • 网络配置问题(防火墙策略等)

  • 网卡硬件问题

  • 驱动程序问题

  • 网络层、传输层、应用层问题等

    遇到网络问题时,采取排除法 逐个排查