Table of Contents
1 网络接口
网络接口的命名方式
CentOS6
CentOS6是根据网卡的mac地址来顺序命名
- 以太网:
eth[0,1,2...]
- ppp:
ppp[0,1,2...]
CentOS7
- system对网络设备的命名方式
- 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1
- 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1
- 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0
- 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc5632
- 上述均不可用时,则使用传统命名机制
- 设备类型
en
: ethernetwl
: wlanww
: wwan
- 名称类型
o<index>
: 集成设备的设备索引号s<slot>
: 扩展槽的索引号p<bus>s<slot>
: 总线插槽x<MAC>
: 基于MAC地址的命名
- 命名过程
- udev:
/usr/lib/udev/rules.d/60-net.rules
- biosdevname:
/usr/lib/udev/rules.d/71-biosdevname.rules
- 通过检测网络接口设备:
/usr/lib/udev/rules.d/75-net-description.rules
- udev:
- 回归CentOS6命名的方法
编辑
/etc/default/grub
配置文件GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet"
为grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
- 重启系统
网络接口识别与命名相关的配置文件
配置文件: /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
: 表示主机路由
- Flags
- 添加
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
找到