网络配置
网络配置文件
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
配置网卡信息:
DEVICE=eth0
NAME=eth0
BOOTPROTO=static or none
IPADDR=192.168.0.251
PREFIX=24 or NETMASK=255.255.255.0
ONBOOT=yes
DNS1=8.8.8.8
DNS2=114.114.114.114
配置网络接口
ifconfig命令
ifconfig [interface]
ifconfig -a
ifconfig IFACE [up|down]
ifconfig interface [aftype] options | address ...
ifconfig IFACE IP/netmask [up]
ifconfig IFACE IP netmask NETMASK
ifconfig网卡别名命令:
ifconfig eth0:0 192.168.1.100/24 up
ifconfig eth0:0 down
ping -I 172.20.0.16 172.20.0.7 强制使用哪个IP去ping一个ip
监测ping包
tcpdump -i eth1 icmp -nn
注意:linux eth0网卡可以配置多个ip地址,如果希望可以自动获取ip地址和设置静态地址,可以eth0配置dhcp,eth0:1设置静态。
查看谁在用6000这个端口
lsof -i :6000 -n
查看eth0每0.5秒,接受包的实时量
watch -n0.5 netstat -Ieth0
ip命令:
如果ip命令不能自动补全,可安装epel源里的bash-completion
配置Linux网络属性:
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
ip link - network device configuration
-------- set dev IFACE
-------------可设置属性:
-----------------up and down:激活或禁用指定接口
--------------------------ifup/ifdown
-------- show [dev IFACE]:指定接口
-----------------[up]:仅显示处于激活状态的接口
网卡关闭和重命名ip link set eth0 down
ip link set eth0 name eth1ip addr { add | del } IFADDR dev STRING
[label LABEL]:添加地址时指明网卡别名
[scope {global|link|host}]:指明作用域
-----------global: 全局可用
-----------link: 仅链接可用
-----------host: 本机可用
[broadcast ADDRESS]:指明广播地址ip address show - look at protocol addresses
[dev DEVICE]
[label PATTERN]
[primary and secondary]ip addr flush 使用格式同show
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 addr flush dev eth0 label eth0:0ip route - routing table management
添加路由:ip route addip route add TARGET via GW dev IFACE src SOURCE_IP
-----------------TARGET:
-----------------------------主机路由:IP
-----------------------------网络路由:NETWORK/MASK
ip route add 192.168.0.0/24 via 172.16.0.1
ip route add 192.168.1.13 via 172.16.0.1添加网关:
ip route add default via GW dev IFACE
ip route add default via 172.16.0.1删除路由:
ip route del TARGET
显示路由:
ip route show|list
清空路由表:
ip route flush [dev IFACE] [via PREFIX]
ip route flush dev eth0网卡设置别名
ip addr add 172.16.1.2/16 dev eth0
ip addr add 172.16.1.1/16 dev eth0 label eth0:0
ip addr add 172.16.1.2/16 dev eth0 label eth0:0
ip addr del 172.16.1.1/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0
网络接口配置-bonding
Bonding工作模式
Mode 0 (balance-rr)
Mode 1 (active-backup)
Mode 3 (broadcast)
active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和 EtherChannelBonding配置
创建bonding设备的配置文件
/etc/sysconfig/network-scripts/ifcfg-bond0-------------------------------------DEVICE=bond0
-------------------------------------BOOTPROTO=none
-------------------------------------BONDING_OPTS= “miimon=100 mode=0”
如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路/etc/sysconfig/network-scripts/ifcfg-eth0
-------------------------------------DEVICE=eth0
-------------------------------------BOOTPROTO=none
-------------------------------------MASTER=bond0
-------------------------------------SLAVE=yes
-------------------------------------USERCTL=no查看bond0状态:/proc/net/bonding/bond0
删除bond0ifconfig bond0 down
rmmod bonding详细帮助:
/usr/share/doc/kernel-doc- version/Documentation/networking/bonding.txt
https://www.kernel.org/doc/Documentation/networking/bonding.txt
实验:创建bond0实现网卡主从热备
ifcfg-bond0文件内容
DEVICE=bond0
IPADDR=172.16.36.55
PREFIX=24
BONDING_OPTS="miimon=100 mode=1"ifcfg-ens33,ens37文件内容相同,重启网路服务bond0生效。
TYPE=Ethernet
MASTER=bond0
SLAVE=yes查看bond0状态
cat /proc/net/bonding/bond0
查看设备中有几个bond设备
cat /sys/class/net/bonding_masters
采用传统命名方式
编辑/etc/default/grub配置文件
GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0"
或:修改/boot/grub2/grub.cfg为grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
重启系统
CentOS7主机名
配置文件:/etc/hostname ,默认没有此文件,通过DNS反向解析获取主机名,主机名默认为:localhost.localdomain
显示主机名信息
hostname
hostnamectl status设置主机名
hostnamectl set-hostname centos7.magedu.com
删除文件/etc/hostname,恢复主机名localhost.localdomain
CentOS 7网络配置工具
字符配置tui工具:nmtui
命令行工具:nmclinmcli命令
地址配置工具: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 reloadnmcli命令生效:
&&nmcli con down eth0 ;nmcli con up eth0显示所有包括不活动连接
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/16DNS设置,存放在/etc/resolv.conf文件中
PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置,不自动获取等价于下面命令:
nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
nmcli实现bonding
添加bonding接口
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup
添加从属接口
nmcli con add type bond-slave ifname ens7 master bond0
nmcli con add type bond-slave ifname ens3 master bond0
注:如无为从属接口提供连接名,则该名称是接口名称加类型构成要启动绑定,则必须首先启动从属接口
nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1启动绑定
nmcli con up mybond0
实验:使用nmcli创建bond
创建名称为mybond1的设备bond1
nmcli connection add type bond con-name mybond1 ifname bond1 mode balance-rr
将eth1加入到bond1中
nmcli connection add slave-type bond ifname eth1 master bond1
nmcli connection add slave-type bond ifname eth2 master bond1要启动绑定,则必须首先启动从属接口
nmcli connection up bond-slave-eth1
nmcli connection up bond-slave-eth2最后启动bond1
nmcli connection up mybond1
实验:使用nmcli创建网络组team0(可通过IP route改变路由默认metric值,更改网卡使用的先后顺序)
创建名称为myteam0的设备team0
nmcli connection add type team con-name myteam0 ifname team0 config '{"runner": {"name": "loadbalance"}}' ipv4.addresses 172.16.36.33/24 ipv4.method manual
创建两个team配置文件加入到team0中
nmcli connection add con-name team0-eth1 type team-slave ifname eth1 master team0
nmcli connection add con-name team0-eth2 type team-slave ifname eth2 master team0要启动team0,则必须首先启动从属team接口
nmcli connection up team0-eth1
nmcli connection up team0-eth2最后期启动team0
nmcli connection up team0
查看team0状态。
teamdctl team0 stat
实验:nmcli创建网桥
创建网桥名字叫mybridge0 关联设备br0 并配置手工管理
nmcli connection add type bridge con-name mybridge0 ifname br0 ipv4.addresses 11.11.0.254 ipv4.method manual
创建静态以太网,连接名叫ens37,配置文件内名字叫ens37,关联设备接口ens37,IP和网关指定,默认路由不开启,网卡在线。
nmcli connection add con-name ens37 ifname ens37 connection.interface-name ens37 autoconnect yes type ethernet ipv4.never-default yes ipv4.method manual ipv4.addresses 10.0.0.254/30 ipv4.gateway 10.0.0.253
配置网桥的两个端口加入网桥
nmcli connection add type bridge-slave ifname ens33 master br0
nmcli connection add type bridge-slave ifname ens37 master br0启动端口
nmcli connection up bridge-slave-ens33
nmcli connection up bridge-slave-ens37启动网桥
nmcli connection up mybridge0
个人感觉使用brctl,创建网桥更便捷,老工具了?
Centos默认有两个网卡管理服务,NetworkManager和network。可能存在冲突,关闭NetworkManager即可
service NetworkManager stop;service network restart
ping -s 65507 192.168.0.7 -f 强制发大包PING命令使用
arp -n 查看arp地址映射关系
arp -s 172.168.0.1 MCAADDR 绑定ip和物理地址,防止arp欺骗
linux虚拟机复制副本后,开机后选择我已经复制了虚拟机,开机进入系统后,会看到ip地址名称为eth1,因为旧网卡etn0的MAC地址和源主机冲突,可自行更改名称为eth0,具体操作如下
vim /etc/udev/rules.d/70-persistent-net-rules
删除里面eth0的行
更改下面eth1为eth0
ethtool -i eth1 查看eth1网卡驱动 ethool工具默认不存在,需要yum安装httpd-tools
rmmod e1000 卸载网卡驱动
modprobe e1000重新加载网卡驱动
路由表:
目标网络:网络ID
netmask
接口:从本设备哪个接口出去能到底目标网络
网关:到达目标网络,将数据报文发送给下个路由器的接口的IP
route命令
查看网关
route -n
添加默认路由:
route add default gw 172.16.0.1
删除:route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
route del -host 192.168.1.3
route del -net 192.168.0.0 netmask 255.255.255.0添加:route add
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
route add -net 172.22.0.0/16 gw 10.0.0.201
route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0开启路由转发功能
echo 1 > /pro/sys/net/ipv4/ip_forward
ss命令:
常用组合:-tan, -tanl, -tanlp, -uan
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 )’常见用法
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详细信息
netstat命令
常用组合:
-tan, -uan, -tnl, -unl
显示网络连接:
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显示路由表:
netstat {--route|-r} [--numeric|-n] -r: 显示内核路由表|-nr: 数字格式
显示接口统计数据:
netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
netstat -i
netstat –I=IFACE
ifconfig -s eth0
实验。三台Linux充当路由器,两台xp虚拟机充当客户机,如下图
要点分析:虚拟机装两块网卡,由于是克隆的虚拟机,容易混淆端口,导致各种不通,请自行测试。Centos6默认有两个网卡管理服务,NetworkManager和network。可能存在冲突,关闭NetworkManager即可
三个虚拟机的seliux和防火墙全部关闭,全部需要开启路由转发功能Centos 6
service NetworkManager stop
service iptables stop
chkconfig iptables off
Centos 7
systemctl stop firewalld
systemctl diable firewalld
echo 1 > /pro/sys/net/ipv4/ip_forward
只需要在centos7上配置两条静态路由,一条通往192.168.0.0网段 另一条通往172.16.0.0网段,即可route add -net 172.16.0.0/16 gw 11.11.0.1
route add -net 192.168.0.0/24 gw 10.10.0.1
centos7在Centos6和Centos 6克隆上各写一条默认路由即可
route add default gw 10.10.0.2
route add default gw 11.11.0.2
Centos6
Centos 6克隆xp测试效果图
PING测试
TRACERT路由测试
转载于:https://blog.51cto.com/5033330/2372281