本文共 11562 字,大约阅读时间需要 38 分钟。
REL=cat /etc/redhat-release | sed -nr "s#.* ([0-9]).*#\1#p"
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0};unselinuxunfirewalld () { if [ $REL =~ 6 ];then chkconfig iptables off
service iptables stop
echo "Close the firewalld 6 "elif [ $REL =~ 7 ];thensystemctl stop firewalld
systemctl disable firewalld
echo "Close the firewalld 7 "fi};unfirewalld日常关闭防火墙和selinux centos 6(7) ip地址都存放在/etc/sysconfig/network-scripts/
里面的ifcfg-eth0/ens33 DNS解析 /etc/resolv,config vim /etc/udev/rules.d/70-persistent-net.rules 里面网卡名 eth|ethtool -i eth0 查看网卡模块状态 eth0网卡来自e1000 modprobe -r e1000|rmmod e1000 卸载网卡驱动模块卸载 modprobe e1000 恢复模块 完成网卡名的启动/etc/sysconfig/network-scripts/ifcfg-eth0 的格式 稍微配置了一下6,7一样
DEVICE=eth0NAME="System eth0"BOOTPROTO=static=none dhcpIPADDR=192.168.60.133NETMASK=255.255.255.0GATEWAY=192.168.60.1DNS1=114.114.114.114DNS2=8.8.8.8ONBOOT=yes 到这都是必须配置的,下面的自己选择咯TYPE=Ethernet
UUID=ad0682f9-4e4c-43fb-87f0-c69eb6418f38NM_CONTROLLED=yes HWADDR=00:0C:29:F8:74:31DEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_FAILURE_FATAL=yesIPV6INIT=noCentOS 7使用基于硬件,设备拓扑和设置类型命名:
(1)systemd对网络设备的命名方式 (a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1 (b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1 (c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0 (d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56 (e) 上述均不可用时,则使用传统命名机制 基于BIOS支持启用biosdevname软件 |内置网卡:em1,em2 pci卡:pYpX Y:slot ,X:port (2) 名称组成格式 en: Ethernet 有线局域网 wl: wlan 无线局域网 ww: wwan无线广域网 名称类型: o<index>: 集成设备的设备索引号 s<slot>: 扩展槽的索引号 x<MAC>: 基于MAC地址的命名 p<bus>s<slot>: enp2s1 总线加插槽将7的命名改为传统命名:
sed -i 's@GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet@& net.ifnames=0@' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot 重启生效 并按照上面的ifcfg-eth0内容配置对应的地址 CentOS 6 /etc/sysconfig/network|/etc/hosts
licentos 7 是没有/etc/sysconfig/hostnamectl set-hostname "centos7.localdomain"hostnamectl set-hostname "centos7.localdomain" --statichostnamectl set-hostname "centos7.localdomain" --prettyroute -n
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.60.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0hostname (){
if [ $REL =~ 7 ];thenhostnamectl set-hostname "centos7.localdomain"
hostnamectl set-hostname "centos7.localdomain" --static
hostnamectl set-hostname "centos7.localdomain" --pretty
hostname centos7.localdomain
sed -i 's/^127.*/& centos7.localdomain/' /etc/hosts
elif [ $REL =~ 6 ];thensed -i 's/HOSTNAME=.*/HOSTNAME=centos6.localdomain/' /etc/sysconfig/network
hostname centos6.localdomain
else echo "i don't know"fi};hostname 路由:
路由表:目标网络ID netmask(genmask)|接口(iface)到达目标网络,应该从本设备的Negev接口发出去就可以到达|网关GATEWAY 到达目标网络,将数据包交给下一个路由器的邻近本设备的接口的IP 实验:关闭防火墙、selinux、NetworkManager A eth0 routel eth1 eth0 route2 eth1 B A:192.168.36.123/24 GATEWAY:192.168.36.200 Router1: eth0 192.168.36.200/24 eth1 10.0.0.200/8 route add -net 172.22.0.0/16 gw 10.0.0.201 echo 1 > /proc/sys/net/ipv4/ip_forward(liunx机器收到报文会扔) Router2 eth1:10.0.0.201/8 eth0:172.22.0.201/16 route add -net 192.168.36.0/24 gw 10.0.0.200 echo 1 > /proc/sys/net/ipv4/ip_forward B:172.22.0.123/16 GATEWAY:172.22.0.201 traceroute 172.22.0.123 。。。。。。。。。。 route add -net 172.22.0.0 netmask 255.255.0.0 gw 10.0.0.201 route add -net 192.168.36.0 netmask 255.0.0.0 gw 10.0.0.200 这个实验就很nice了网络接口配置-bonding
将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址 Bonding工作模式 Mode 0 (balance-rr)轮转(Round-robin)策略:从头到尾顺序的在每一个slave 接口上面发送数据包。本模式提供负载均衡和容错的能力 Mode 1 (active-backup)活动-备份(主备)策略:只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其他slave.为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见 Mode 3 (broadcast)广播策略:在所有的slave接口上传送所有的报文,提供容错能力 active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和 EtherChannel 首先地址在同一模块 创建虚拟bonding设备 /etc/sysconfig/network-scripts/ifcfg-bond0--创建bonding设备的配置文件 DEVICE=bond0 NAME=bond BOOTPROTO=none:配地址省略 BONDING_OPTS= “miimon=100 mode=0” /etc/sysconfig/network-scripts/ifcfg-eth0|两个都加入 DEVICE=eth0 MASTER=bond0 。。。 SLAVE=yes 。。。 BOOTPROTO=none:此处地址以无效 USERCTL=no 查看bond0状态:/proc/net/bonding/bond0|动态观察主备 cat /sys/class/net/bonding_mas.. 看bond设备 miimon 是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路 删除bond0 将修改的配置文件恢复 ifconfig bond0 down禁用网卡|lsmod查看模块是否在运用|rmmod bonding卸载模块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网桥:解决冲突域
桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。与网桥相连的主机就能通过交换机的报文转发而互相通信。 两台主机,一个桥接设备,一个v6 v16 桥接设备配置:清地址,工具bridge-utils brctl show查看桥接设备 brctl addbr br0|brctl show|ip a brctl addif br0 eth0 brctl addif br0 eth1 ip link set br0 up brctl showmacs br0 查看mac地址表 ip a a 192.168.60.2 dev br0 加个地址好管理配置实现网桥
nmcli con add con-name mybr0 type bridge con-name br0 ifname br0 nmcli con modify mybr0 ipv4.addresses 192.168.0.100/24 ipv4.method manual nmcli con add con-name br0-port0 type bridge-slave ifname eth0 master br0 查看配置文件 cat /etc/sysconfig/network-scripts/ifcfg-br0 cat /etc/sysconfig/network-scripts/ifcfg-br0-port0 工具包 yum install bridge-utils 查看网桥 brctl show 查看CAM表 brctl showmacs br0 添加和删除网桥 brctl addbr | delbr br0 添加和删除网桥中网卡 brctl addif | delif eth0 注意:NetworkManager只支持以太网接口接口连接到网桥,不支持聚合接口网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
网络组不同于旧版中bonding技术,提供更好的性能和扩展性 网络组由内核驱动和teamd守护进程实现 实验:创建网络组 ip link nmcli con add type team con-name myteam0 ifname team0 config '{"runner": {"name": "activebackup"}}' nmcli con mod team0 ipv4.addresses '192.168.0.100/24' nmcli con mod team0 ipv4.method manual nmcli con add con-name team0-port1 type team-slave ifname eth1 master team0 nmcli con add con-name team0-port2 type team-slave ifname eth2 master team0 teamdctl team0 state ping -I team0 192.168.0.254 nmcli dev dis eno1 teamdctl team0 state nmcli con up team0-port1 nmcli dev dis eno2 teamdctl team0 state nmcli con up team0-port2 teamdctl team0 state /etc/sysconfig/network-scripts/ifcfg-team0 DEVICE=team0 DEVICETYPE=Team TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}" BOOTPROTO=none IPADDR0=172.16.0.100 PREFIX0=24 AME=team0 ONBOOT=yes /etc/sysconfig/network-scripts/ifcfg-team0-eth1 DEVICE=eth1 DEVICETYPE=TeamPort TEAM_MASTER=team0 NAME=team0-eth1 ONBOOT=yes 删除网络组 nmcli connection down team0 teamdctl team0 state nmcli connection show nmcli connectioni delete team0-eth0 nmcli connectioni delete team0-eth1 nmcli connection showcentos6 工具集 net-tools和 iproute(新) man自己查咯--工具包
setup(图形工具)centos6的图形配置工具 功能很强大,建议去找几篇好的博客了解一下 ifconfig [interface] ip link 命令 ifconfig -a ifconfig IFACE [up|down] 启用禁用 ifconfig interface [aftype] options | address ... ifconfig IFACE IP/netmask [up] ifconfig eth0:1/2 172.22.0.16|26/16 网卡别名虚拟网卡 会丢默认路由 重启服务route 命令 route -n
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] route add -host 1.1.1.1 gw 172.20.0.1 默认路由,网关: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]mtr 地址
tcpdump命令 是一款抓包,嗅探器工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析
-i<网络界面>:使用指定的网络截面送出数据包 tcpdump -i eth1 +协议及抓对应协议的包netstat 新命令ss 基本相通
显示网络连接 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|lsof -i :pid 查看进程谁在用 常用组合 -tan, -uan, -tnl, -unl 显示路由表: -r: 显示内核路由表 -n: 数字格式 显示接口统计数据 netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n] netstat -i 显示流量 netstat –I=IFACE (不能netstat -I eth0) ifconfig -s eth0watch(选项)(参数)
-n # 或--interval watch缺省每2秒运行一下程序,可以用-n或-interval来指定间隔的时间。 -d # 或--differences 用-d或--differences 选项watch 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。 -t # 或-no-title 会关闭watch命令在顶部的时间间隔,命令,当前时间的输出。 -h, --help # 查看帮助文档 watch -n1 netstat -iss命令 ss [OPTION]... [FILTER]
netstat通过遍历proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取socket信息 -m:内存用量 -w: 裸套接字相关 -x:unix sock相关 -l: listen状态的连接 -t: tcp协议相关 -u: udp协议相关 -n: 数字格式 -p: 相关的程序及PID -e: 扩展的信息 -a: 所有 -o:计时器信息 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详细信息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 addr = ip a|可以缩写 ip addr { add | del } IFADDR dev STRING [label LABEL]:添加地址时指明网卡别名 ip addr add 1.1.1.1/24 dev eth1 两个地址,ifconfig看不见 ip addr add 1.1.1.1/24 dev eth1 label eth1:test|2 ifconfig看的见别名\ ip a a 1.1.1.1/24 dev wth1 label eth1:3 scope link [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:0 ip route - routing table management 添加路由:ip route add ip 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 link 查看数据链路层 ip link show eth1|eth0 ip link set dev eth1 down;ifconfig eth1 down ip link set dev eth1 up ip route 查看 ip route add 2.2.2.0/24 via 172.20.0.1 dev eth1 ip route del .....centos7
图形工具:nm-connection-editor 字符配置tui工具:nmtui| nmtui-connect| nmtui-edit| nmtui-hostname 命令行工具:nmcli nmcli connection 查看设备名 nmcli connection modify 原网卡名 connect.id eth1 nmcli connection reload 重新加载 centos6 system-config-network字符界面改网卡名或setup第四项网络设置 nmcli命令实验: nmcli connection show nmcli connection modify eth1 ipv4.method manual ipv4.addresses 172.22.0.12 ... nmcli connection up eth1 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 eth0ping
-c<完成次数>:设置完成要求回应的次数;-f:极限检测;-i<间隔秒数>:指定收发信息的间隔时间;-I<网络界面>:使用指定的网络界面送出数据包;-l<前置载入>:设置在送出要求信息之前,先行发出的数据包;-r:忽略普通的Routing Table,直接将数据包送到远端主机上;-R:记录路由过程;-s<数据包大小>:设置数据包的大小;-v:详细显示指令的执行过程转载于:https://blog.51cto.com/14230286/2378184