• Linux网络管理


    1 网络接口

    网络接口的命名方式

    CentOS6

    CentOS6是根据网卡的mac地址来顺序命名

    • 以太网: eth[0,1,2...]
    • ppp: ppp[0,1,2...]

    CentOS7

    system对网络设备的命名方式
    1. 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1
    2. 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1
    3. 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0
    4. 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc5632
    5. 上述均不可用时,则使用传统命名机制
    设备类型
    • en: ethernet
    • wl: wlan
    • ww: wwan
    名称类型
    • o<index>: 集成设备的设备索引号
    • s<slot>: 扩展槽的索引号
    • p<bus>s<slot>: 总线插槽
    • x<MAC>: 基于MAC地址的命名
    命名过程
    1. udev: /usr/lib/udev/rules.d/60-net.rules
    2. biosdevname: /usr/lib/udev/rules.d/71-biosdevname.rules
    3. 通过检测网络接口设备: /usr/lib/udev/rules.d/75-net-description.rules
    回归CentOS6命名的方法
    1. 编辑 /etc/default/grub 配置文件

      GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet"
      
    2. 为grub2生成其配置文件

      grub2-mkconfig -o /etc/grub2.cfg
      
    3. 重启系统

    网络接口识别与命名相关的配置文件

    配置文件: /etc/udev/rules.d/70-persistent-net.rules

    • 若要立即生效需要重新载入网卡驱动

      modprobe -r 驱动   # 卸载驱动
      modprobe 驱动   # 装载驱动
      
    • 通过该配置文件可以知道网卡设备的驱动名

    2 主机名Hostname

    命令设置

    hostname [HOSTNAME]
    hostnamectl set-hostname [HOSTNAME]
    hostnamectl status  # 可以显示当前主机的详细信息
    

    配置文件设置

    修改 /etc/sysconfig/network, 需要重启生效

    • NETWORKING=yes: 是否启用网络
    • HOSTNAME=QiuMP: 修改主机名

    3 网络配置命令

    使用命令配置一般只对当前有效,重启会失效,若要永久生效需要修改配置文件

    ifcfg工具包

    ifconfig

    用于查询或配置网络设备

    ifconfig [-a] [IFACE]  # 显示活动的网卡设备信息
      -a: 同时显示非活动的设备
    
    ifconfig IFACE [up|down]  # 启动或关闭设备
    ifup IFACE  # 启动设备
    ifdown IFACE  # 关闭设备
    
    ifconfig IFACE IP/MASK [up]  # 修改设备的ip
    ifconfig IFACE IP netmask MASK  # 修改设备的ip
    ifconfig IFACE:ALIAS IP/MASK up  # 给网卡配置多地址
    
    ifconfig IFACE [-]promisc  # 启用或禁用混杂模式(用于网络监控、路由设置),接收所有报文
    

    route

    用于查询和管理路由信息

    查看
    route -n  # 使用IP代替别称显示
    
    • Flags
      • U: up, 表示启用
      • G: 表示有网关
      • H: 表示主机路由
    添加
    route add [-net|-host] IP/MASK [netmask Nm] [gw Gw] [[dev] If]
      -net IP/MASK: 指定网络路由
      -host IP/32: 指定主机路由(可以不用写子网掩码)
      netmask Nm: 指定子网掩码
      gw Gw: 指定网关
      dev If: 指定设定的设备
    
    route add default gw 172.16.0.1  # 指定默认网关
    route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1  # 指定默认网关
    
    删除
    route del [-net|-host] IP/MASK [gw Gw] [netmask Nm] [[dev] If]
    # 只要指定的信息没有重复则其他信息可以省略
    

    netstat

    用于查询网络连接、路由表、接口信息、伪装连接、组播连接等功能

    显示网络连接
    netstat [OPTIONS]
      -t: tcp协议相关
      -u: udp协议相关
      -w: raw socket相关
      -a: 所有状态
    
      -l|--listening: 只显示监听状态的端口
    
      -n: 以数字显示IP和端口;
      -e|--extend: 扩展格式
      -p: 显示相关进程及PID
    
    显示路由表
    netstat -r [OPTIONS]
      -r: 显示内核路由表
      -n: 数字格式
    
    显示接口统计数据
    netstat -i  # 显示所有接口
    netstat -I[IFACE]  大专栏  Linux网络管理;"># 显示指定接口
    

    ip工具包

    ip

    用于配置网络的各种属性

    获取帮助
    ip COMMAND help  # 获取子命令的帮助
    
    ip link

    配置网络设备

    ip link show [dev IFACE]  # 显示物理设备的各种信息,例如MTU、MAC等
    ip link set dev IFACE [up|down]  # 启用和禁用设备
    
    ip addr

    管理协议地址

    ip addr {add|del} IFADDR dev STRING [OPTIONS] # 如果原来已经有地址则添加辅助地址
      label LABEL: 添加地址时指明网卡别名(即虚拟处另一个网卡设备)
      scope global|link|host: 指明作用域
        global: 全局可用(地址属于内核, 表示任何网卡间可以相互访问)
        link: 仅链接可用(只能设备自己使用)
        host: 本机可用
      broadcast ADDRESS: 指明广播地址
    
    ip addr show  # 显示网卡地址信息
      dev DEVICE: 默认显示所有网卡地址
      label PATTERN: 指定别名
      primary|secondary: 只显示主地址或辅助地址
    
    ip addr flush [dev DEVICE] # 清空网卡地址
    
    ip route

    管理路由表

    ip route add DEST_IP via GW dev IFACE [src SOURCE_IP]  # 添加路由
      src SOURCE_IP: 指定源地址
    ip route add default via GW dev IFACE  # 添加默认网关
    
    ip route del DEST_IP [dev IFACE]  # 删除路由
    
    ip route show|list  # 显示当前路由表
    
    ip route flush [OPTIONS] # 清空路由表
      dev IFACE: 指定设备
      via GW: 指定网关对象
    

    ss

    管理套接字,运行速度比netstat快

    ss [OPTIONS] [FILTER]
      -t: tcp协议相关
      -u: udp协议相关
      -w: raw套接字相关
      -x: unix sock相关
      -a: 所有
    
      -l: 只显示LISTEN状态的连接
    
      -n: 数字格式
      -p: 相关的程序及PID
      -e: 扩展的信息
      -m: 内存用量
      -o: 计时器信息
    
      state TCP-STATE: 显示指定状态的端口
      EXPRESSION: 可以指定更多的过滤条件,如'( dport = :ssh or sport = :ssh)'
    

    NetworkManager

    nmcli

    一个使用NetworkManager的网络配置工具

    nmcli [OPTIONS] OBJECT {COMMAND|help}
      device: 查询和管理网络接口
      connection: 设置网络连接
    
    nmcli device show eth0  # 查询接口的setting.property列表
    nmcli connection modify IFACE [+|-]setting.property value  # 设置接口属性,设置后需要重启接口
      setting.property: ipv4.{addresses|gateway|dns|method}
    nmcli connection {up|down} IFACE  # 禁用和启用接口
    

    nmtui

    一个使用NetworkManager的交互式网络配置工具

    其他

    TODO nmap

    TODO ncat

    TODO tcpdump

    4 网络配置文件

    重载配置文件

    • 修改配置文件可以永久有效
    • 配置要立即生效需要重启网卡

      service network restart
      

    DNS服务器的指定

    修改 /etc/resolv.conf 即可

    nameserver DNS_SERVER_IP1
    nameserver DNS_SERVER_IP2
    nameserver DNS_SERVER_IP3
    
    • DNS正向解析: FQDN (完全限定域名) -> IP

      dig -t A FQDN
      host -t A FQDN
      
    • DNS反向解析: IP -> FQDN (完全限定域名)

      dig -x IP
      host -t PTR IP
      

    IP配置文件

    IP、MASK、GW、DNS相关配置文件: /etc/sysconfig/network-scripts/ifcfg-IFACE

    变量名 作用
    DEVICE 此配置文件应用到的设备,与文件名一致
    HWADDR 对应的设备的MAC地址
    BOOTPROTO 使用的地址配置协议: dhcp, static, none, bootp
    NM_CONTROLLED 此网卡是否接受NM(NetworkManager)控制, CentOS6下建议为"no"
    ONBOOT 在系统引导时是否激活此设备
    TYPE 接口类型: Ethernet, Bridge
    UUID 设备的唯一标识
    IPADDR 指明IP地址
    NETMASK 子网掩码
    GATEWAY 默认网关
    DNS1 第一个DNS服务器指向(优先级比resolv.conf高)
    DNS2 第二个DNS服务器指向
    USERCTL 普通用户是否可控制此设备
    PEERDNS 是否允许dhcp服务器分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中
    PEERROUTES 是否允许使用dhcp服务器的路由表设置

    路由器配置

    修改 /etc/sysconfig/network-scripts/route-IFACE 来设置路由表

    IPADDR/MASK via GW  # 每行的格式
    

    给网卡配置多地址

    添加配置文件 /etc/sysconfig/network-scripts/ifcfg-IFACE:ALIAS

    • 网卡别名不能使用dhcp

    system-config-network-tui

    一个交互式修改网络配置文件的程序, 也可以使用 setup 找到

  • 相关阅读:
    老男孩python学习_day004知识点
    老男孩python学习_day003作业
    老男孩python学习_day003知识点
    老男孩python学习_day002知识点
    老男孩python学习_day001知识点
    老男孩python学习_day002作业
    老男孩python学习_day001作业
    Struts2+Spring4+Hibernate4整合超详细教程
    解决 Ubuntu15.04 登陆界面无限循环 的问题
    jsp之间url传值出现中文乱码
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12268220.html
Copyright © 2020-2023  润新知