网络管理命令
网络配置、net-tools(ifconfig, netstat, route)、ip、ss
网络配置
- 静态指定:
ifconfig, route, netstat
ip: object {link, addr, route}, ss, tc
system-config-network-tui,setup
配置文件 - 动态分配:
DHCP: Dynamic Host Configuration Protocol
centos6 网络配置
CentOS 6 网卡名称
- 接口命名方式:CentOS 6
以太网:eth[0,1,2,…]
ppp:ppp[0,1,2,…] - 网络接口识别并命名相关的udev配置文件:
/etc/udev/rules.d/70-persistent-net.rules - 查看网卡:
dmesg |grep –i eth
ethtool -i eth0 - 卸载网卡驱动:
modprobe -r e1000
rmmod e1000 - 装载网卡驱动:
modprobe e1000
网络配置文件
-
IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
-
路由相关的配置文件:
/etc/sysconfig/network-scripts/route-IFACE -
/etc/sysconfig/network-scripts/ifcfg-IFACE:
说明参考/usr/share/doc/initscripts-9.49.30/sysconfig.txt
DEVICE:此配置文件应用到的设备
HWADDR:对应的设备的MAC地址
BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
NM_CONTROLLED:NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“no” -
ONBOOT:在系统引导时是否激活此设备
-
TYPE:接口类型;常见有的Ethernet, Bridge
-
UUID:设备的惟一标识
-
IPADDR:指明IP地址
-
NETMASK:子网掩码
-
GATEWAY: 默认网关
-
DNS1:第一个DNS服务器指向
-
DNS2:第二个DNS服务器指向
-
USERCTL:普通用户是否可控制此设备
-
PEERDNS:如果BOOTPROTO的值为“dhcp”,YES将允许dhcp server分配的dns服务器信息直接覆盖至/etc/resolv.conf文件,NO不允许修改resolv.conf
-
设备配置被保存在文本文件中
• /etc/sysconfig/network-scripts/ifcfg-
• 帮助文档列出完整选项列表:/usr/share/docinitcripts-*/sysconfig.txt
centos6修改主机名时
- hostname HOSTNAME 临时有效
- 编辑配置文件/etc/sysconfig/network,修改主机名为HOSTNAME
- 修改主机后建议修改/etc/hosts文件,将刚修改的主机添加进去,否则不能ping `hostname`
net-tools(ifconfig, netstat, route)
ifconfig命令
- 配置网络接口
- ifconfig [interface]
ifconfig -a
ifconfig IFACE [up|down]
ifconfig interface [aftype] options | address …
ifconfig IFACE IP/netmask [up]
ifconfig IFACE IP netmask NETMASK - 注意:立即生效
- 启用混杂模式:[-]promisc
route命令
-
路由管理命令
-
查看:route -n 添加:route add
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] -
目标:192.168.1.3 网关:172.16.0.1
route add -host 192.168.1.3 gw 172.16.0.1 dev eth0 -
目标:192.168.0.0 网关:172.16.0.1
route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0 -
默认路由,网关:172.16.0.1
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
route add default gw 172.16.0.1 -
删除:route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If] -
目标:192.168.1.3 网关:172.16.0.1
route del -host 192.168.1.3 -
目标:192.168.0.0 网关:172.16.0.1
route del -net 192.168.0.0 netmask 255.255.255.0 -
配置动态路由
-
通过守护进程获取动态路由
• 安装quagga包
• 支持多种路由协议:RIP、OSPF和BGP
• 命令vtysh配置
netstat命令
-
显示网络连接:
netstat [–tcp|-t] [–udp|-u] [–raw|-w] [–listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[–extend|-e]] [–program|-p] -
选项
-t: tcp协议相关
-u: udp协议相关
-w: raw socket相关
-l: 处于监听状态
-a: 所有状态
-n: 以数字显示IP和端口
-e:扩展格式
-p: 显示相关进程及PID -
常用组合:
-tan, -uan, -tnl, -unl -
显示路由表:
netstat {–route|-r} [–numeric|-n]
-r: 显示内核路由表
-n: 数字格式 -
显示接口统计数据:
netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–program|-p] [–numeric|-n]
netstat -i
netstat –I=IFACE
ifconfig -s eth0
配置Linux网络属性:ip命令
ip addr
- ip addr { add | del } IFADDR dev STRING
[label LABEL]:添加地址时指明网卡别名
[scope {global|link|host}]:指明作用域
global: 全局可用
link: 仅链接可用
host: 本机可用
[broadcast ADDRESS]:指明广播地址
ip addr add 172.16.100.100/16 dev eth0 label eth0:0
ip addr del 172.16.100.100/16 dev eth0 label eth0:0 - ip address show - look at protocol addresses
[dev DEVICE]
[label PATTERN]
[primary and secondary] - ip addr flush 使用格式同show
ip addr flush dev eth0
ip - show/ manipulate routing, devices, policy routing and tunnels
ip route
- 添加路由:ip route add
ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主机路由:IP
网络路由:NETWORK/MASK - 添加网关:ip route add default via GW dev IFACE
- 删除路由:ip route del TARGET
- 显示路由:ip route show|list
- 清空路由表:
ip route flush [dev IFACE] [via PREFIX]
ip route flush dev eth0
ss命令
-
FILTER : [ state TCP-STATE ] [ EXPRESSION ]
-
TCP的常见状态:
tcp finite state machine:
LISTEN: 监听
ESTABLISHED:已建立的连接
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED -
EXPRESSION:
dport =
sport =
示例:’( dport = :ssh or sport = :ssh )’ -
常用组合:
-tan, -tanl, -tanlp, -uan -
ss -l 显示本地打开的所有端口
-
ss -pl 显示每个进程具体打开的socket
-
ss -t -a 显示所有tcp socket
-
ss -u -a 显示所有的UDP Socekt
-
ss -o state established ‘( dport = :ssh or sport = :ssh )’ 显示所有已建立的ssh连接
-
ss -o state established ‘( dport = :http or sport = :http )’ 显示所有已建立
的HTTP连接 -
ss -s 列出当前socket详细信息
取网络连接数
~]# ss -tn| sed -nr '/^ESTAB/s#.* (.*):.*#\1#p' |sort |uniq -c | sort -nr
取网络连接数前的连接次数
~]# ss -tn| sed -nr '/^ESTAB/s#.* (.*):.*#\1#p' |sort |uniq -c | sort -nr | xargs -n1 | grep -Eo '^[0-9]+$'
CentOS 7网络属性配置
- CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名称可能会发生变化
- CentOS 7使用基于硬件,设备拓扑和设置类型命名:
- (1) 网卡命名机制
systemd对网络设备的命名方式
(a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1
(b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1
© 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如
enp2s0
(d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56
(e) 上述均不可用时,则使用传统命名机制
网卡名称
- 基于BIOS支持启用biosdevname软件
内置网卡:em1,em2
pci卡:pYpX Y:slot ,X:port - (2) 名称组成格式
en: Ethernet 有线局域网
wl: wlan 无线局域网
ww: wwan无线广域网
名称类型:
o: 集成设备的设备索引号
s: 扩展槽的索引号
x: 基于MAC地址的命名
ps: enp2s1
采用传统命名方式
-
将centos7的网卡名称改成enss# —> eth0
①/etc/default/grub (建议修改之前备份啦~)
/etc/sysconfig/grub --是/etc/default/grub的软链接
修改/etc/sysconfig/grub也行 -
在GRUB_CMDLINE_LINUX后的双引号内添加
net.ifnames=0(顺序不影响)
① 使用sed直接修改:
sed -ri ‘s/(^GRUB_CMDLINE_LINUX=.*)"/\1 net.ifnames=0"/’ /etc/default/grub -
②grub2-mkconfig -o /boot/grub2/grub.cfg
-
③重启
-
综上:修改/etc/default/grub的最终目的是为了修改/boot/grub2/grub.cfg此文件,但是/boot/grub2/grub.cfg此文件不建议直接修改,因此使用grub2-mkconfig -o /boot/grub2/grub.cfg重新生成此文件
CentOS 7网络配置工具
- CentOS 7网络配置工具
- 图形工具:nm-connection-editor
- 字符配置tui工具:nmtui
- 命令行工具:nmcli
cetntos7主机名
- 配置文件:/etc/hostname ,默认没有此文件,通过DNS反向解析获取主机名,主机名默认为:localhost.localdomain
- cetntos7 修改主机名:
hostnamectl set-hostname HOSTNAME - 删除文件/etc/hostname,恢复主机名localhost.localdomain
- 显示主机名信息
hostname
hostnamectl status
nmcli命令
- nmcli - network manager client 属于它的客户端工具
- Usage: nmcli connection modify { ARGUMENTS | help } 此命名用法,查看帮助
- 地址配置工具:nmcli
- nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
nmcli device help
connection - start, stop, and manage network connections
nmcli connection help - 修改IP地址等属性:
nmcli connection modify IFACE [+|-]setting.property value
setting.property:
ipv4.addresses
ipv4.gateway
ipv4.dns1
ipv4.method manual | auto - 修改配置文件执行生效:systemctl restart network
nmcli con reload - nmcli命令生效: nmcli con down eth0 ;nmcli con up eth0
使用nmcli配置网络
-
NeworkManager是管理和监控网络设置的守护进程
-
设备即网络接口,连接是对网络接口的配置,一个网络接口可有多个连接配置,但同时只有一个连接配置生效
-
显示所有包括不活动连接
nmcli con show -
显示所有活动连接
nmcli con show --active -
显示网络连接配置
nmcli con show "System eth0“ -
显示设备状态
nmcli dev status -
显示网络接口属性
nmcli dev show eth0 -
创建新连接default,IP自动通过dhcp获取
nmcli con add con-name default type Ethernet ifname eth0 -
删除连接
nmcli con del default -
创建新连接static ,指定静态IP,不自动连接
nmcti con add con-name static ifname eth0 autoconnect no type
Ethernet ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254 -
启用static连接配置
nmcli con up static -
启用default连接配置
nmcli con up default -
查看帮助
nmcli con add help -
修改连接设置
nmcli con mod “static” connection.autoconnect no
nmcli con mod “static” ipv4.dns 172.25.X.254
nmcli con mod “static” +ipv4.dns 8.8.8.8
nmcli con mod “static” -ipv4.dns 8.8.8.8
nmcli con mod “static” ipv4.addresses “172.16.X.10/24 172.16.X.254”
nmcli con mod “static” +ipv4.addresses 10.10.10.10/16 -
DNS设置,存放在/etc/resolv.conf文件中
PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置,不自动获取等价于下面命令:
nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
-
修改连接配置后,需要重新加载配置
nmcli con reload
nmcli con down “system eth0” 可被自动激活
nmcli con up “system eth0”
nmcli dev dis eth0 禁用网卡,访止被自动激活 -
添加网关、dns等
]# nmcli connection modify eth0 ipv4.gateway 192.168.38.2
-
配置网络
应用场景
- 如果是一个经常需要切换不同网络环境的测试机,一会儿需要切换固定地址,一会儿需要切换静态地址,或者固定地址需要改变时,修改配置文件比较麻烦,可以准备好几套配置文件,放置在配置文件中,根据需要启用相应的配置文件即可。(可以使用nmcli)
- nmcli命令会在/etc/sysconfig/network-scripts生成配置文件
如命令不写ipv4.method manual 即使后面配置地址也没有,直接回默认dhcp分配地址
图中相当于对eth1有两套网卡配置,但是同时只能生效一套网卡配置
生效哪一配置:]# nmcli connection up eth1-test
Ubuntu网络配置
-
网卡名称:
默认ubuntu的网卡名称和CentOS 7类似,如:ens33,ens38等 修改网卡名称为统命名方式: -
修改配置文件为下面形式
vi /etc/default/grub
GRUB_CMDLINE_LINUX=“net.ifnames=0” -
生效新的grub.cfg文件
grub-mkconfig -o /boot/grub/grub.cfg -
reboot
-
官网文档:
https://help.ubuntu.com/lts/serverguide/network-configuration.html.zh-CN -
配置Ubuntu网络参照官网文档,注意格式 :空格和对齐
-
修改网卡配置文件后需执行命令生效:netplan apply
-
查看ip和gateway
ip addr
route -n -
查看DNS
ls -l /etc/resolv.conf
systemd-resolve --status -
修改主机名
hostnamectl set-hostname ubuntu1804
centos7最小化安装
- 最小化安装后,tab键默认是不能自动补全命令的
- bash-completion安装包
- yum install bash-completion 后重启系统