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 找到

原文地址:https://www.cnblogs.com/lijianming180/p/12268220.html