第二篇:Linux网络属性配置命令
=============================================================================
概述:
=============================================================================
2.设置网卡命名方式:
★CentOS 6网卡命名方式:
☉网络接口识别并命名相关的udev配置文件
/etc/udev/rules.d/70-persistent-net.rules
☉查看网卡:
dmesg |grep –i eth;
ethtool -i eth0
☉卸载网卡驱动:
modprobe -r e1000
rmmod e1000
☉装载网卡驱动:
modprobee1000
★CentOS 7 使用传统命名方式设置过程:
1.编辑 /etc/default/grub 配置文件或修改 /boot/grub2/grub.cfg
2.为grub2生成配置文件
grub2-mkconfig -o /etc/grub2.cfg
3.重启系统
reboot
1.ifcfg命令家族:ifconfig,route,netstat:
★ifconfig命令:查看及配置网卡的相关参数
☉查看接口:
ifconfig [INTERFACE] :默认显示激活状态接口
ifconfig -a:显示所有接口,包括未激活状态的接口
☉启用和禁用网卡:
ifconfig IFNAME up/down
☉设定IP地址:
ifconfig IFACE IP/mask [up]
ifconfig IFACE IP netmask MASK
◆options:
[-]promisc:启用或禁用混杂模式
注意:
设定的地址会立即送往内核中的TCP/IP协议栈,并生效,但不会永久有效;
☉管理IPv6地址
添加:add addr/prefixlen;
删除:del addr/prefixlen
演示:
# 配置IP地址,子网掩码可以使用长度,也可以使用全称,如果网卡没有激活,则后面添加up [root@centos7 ~]# ifconfig eno33554984 192.168.1.120/24 up [root@centos7 ~]# ifconfig eno33554984 eno33554984: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.120 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::20c:29ff:fed6:e46a prefixlen 64 scopeid 0x20<link> ether 00:0c:29:d6:e4:6a txqueuelen 1000 (Ethernet) RX packets 1853 bytes 179342 (175.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 45 bytes 7938 (7.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@CentOS6 ~]# ifconfig eth1 192.168.1.121 netmask 255.255.255.0 up [root@CentOS6 ~]# ifconfig eth1 eth1 Link encap:Ethernet HWaddr 00:0C:29:CB:50:9A inet addr:192.168.1.121 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fecb:509a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1877 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:181632 (177.3 KiB) TX bytes:1152 (1.1 KiB)
# 启用或禁用混杂模式 [root@CentOS6 ~]# ifconfig eth1 promisc [root@CentOS6 ~]# ifconfig eth1 eth1 Link encap:Ethernet HWaddr 00:0C:29:CB:50:9A inet addr:192.168.1.121 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fecb:509a/64 Scope:Link UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:2538 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:245597 (239.8 KiB) TX bytes:1152 (1.1 KiB) [root@CentOS6 ~]# ifconfig eth1 -promisc [root@CentOS6 ~]# ifconfig eth1 eth1 Link encap:Ethernet HWaddr 00:0C:29:CB:50:9A inet addr:192.168.1.121 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fecb:509a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2652 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:258255 (252.2 KiB) TX bytes:1152 (1.1 KiB)
★route 命令:路由查看及管理
☉路由条目类型
主机路由(host): 目标地址为单个IP;
网络路由(net):目标地址为IP网络;
默认路由:目标为任意主机,0.0.0.0/0.0.0.0
☉查看:
route -n (以数字格式显示路由信息,不要直接使用route 命令会反解地址和端口号)
☉添加路由:
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
注意:
下一跳路由接口的地址必须与本地主机的某个地址在同一网段中;
示例:
1.到达 192.168.1.3/24主机,经由 172.16.0.1 网关:
# route add -host 192.168.1.3 gw 172.16.0.1 [dev eth0]
2.到达 192.168.0.0/24网络,经由 172.16.0.1网关:
# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
3.设定默认网关: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 [-net|-host] target [gwGw] [netmask Nm] [dev IFNAME]
示例:
1.目标:192.168.1.3 主机:172.16.0.1
# route del -host 192.168.1.3
2.目标:192.168.0.0 网关:172.16.0.1
# route del -net 192.168.0.0 netmask 255.255.255.0
3.删除默认网关
# route del default
演示:
# 查看路由,字段分别为 目标网络地址、网关(吓一跳)、目标网络的掩码、标志(U表示启用状态,UG表示为一个网关)、度量值 [root@centos7 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eno16777736 0.0.0.0 192.168.1.1 0.0.0.0 UG 101 0 0 eno33554984 192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736 # 表示本地主机所在的网络即直连路由,所以不需要网关为0.0.0.0 192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 eno33554984 # 添加路由,要到达10.0.0.0网络要经由192.168.1.1网关 [root@centos7 ~]# route add -net 10.0.0.0/8 gw 192.168.1.1 dev eno16777736 [root@centos7 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eno16777736 0.0.0.0 192.168.1.1 0.0.0.0 UG 101 0 0 eno33554984 10.0.0.0 192.168.1.1 255.0.0.0 UG 0 0 0 eno16777736 # 添加成功 192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736 192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 eno33554984 # 删除之前添加的路由 [root@centos7 ~]# route del -net 10.0.0.0/8 [root@centos7 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eno16777736 0.0.0.0 192.168.1.1 0.0.0.0 UG 101 0 0 eno33554984 192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736 192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 eno33554984
netstat 命令:显示接口的统计数据
1.显示路由表:
netstat{--route|-r} [--numeric|-n]
-r: 显示内核路由表
-n: 数字格式
2.显示网络连接:
传输层协议:
tcp:面向连接的协议;通信开始之前,要建立一个虚链路;通信完成后, 拆除链接。
udp:无连接的协议;直接发行数据报文;
netstat[--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
-t: tcp协议相关链接,链接均有其状态;FSM
-u: udp协议相关
-w: raw socket相关
-l: 处于监听状态
-a: 所有状态
-n: 以数字显示IP和端口;
-e:扩展格式
-p: 显示相关进程及PID
常用选项:
-tan,-uan,-tnl,-unl,-tunlp
3.显示接口统计数据:
netstat{--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
# netstat -i 显示所有接口;
# netstat–I<IFACE> 显示指定接口,注意-I和接口名没有空格;
# ifconfig -s eno16777736
ifup/ifdown 命令 启用或禁用
注意:通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE 来识别接口并完成配置;
二、iproute2 家族
ip 命令
功能:ip-show / manipulate routing, devices, policy routing and tunnels
语法:ip[ OPTIONS ] OBJECT { COMMAND | help }
OBJECT = { link | addr| route| netns }
link:连接接口,如eth0;
addr:管理接口上的地址;
route:管理路由
注意:OBJECT 可简写,各object的子命令也可简写
IP OBJECT
1.ip link
ip link help 查看简要帮助,常用命令如下:
○ip link set IFNAME (修改设备属性)
指明要管理的设备,dev关键字可省略;
{up|down} :激活或禁用指定网卡接口
name NAME:重命名接口
注意:重命名的时候要先把设备停掉(ip link set NAME down)
○ip link show
显示接口状态,例如启用的特性,HWADDR等
查看的是二层设备(数据链路层)的相关属性
○ multicast on 或 multicast off:启用或禁用多播功能;
○ mtu MUMBER:设置MTU的大小,默认为1500;
○ netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;
2.ip netnes :manage network namespace 网络名称空间
ip netns add NAME:创建指定netns
ip netns del NAME:删除指定netns
ip netns list:列出所有的netns
ip netns exec NAME COMMAND:在指定的netns中运行命令
3.ip address - protocol address management
○ ip addr add IFADDR dev IFACE
添加一个新的接口地址
[label NAME] 为额外添加的地址指明接口别名;
[broadcast ADDRESS]:指明广播地址,会根据IP和NETMASK自动计算得到;
[scope {global|link|host}]:指明作用域
global: 全局可用;
link: 仅链接可用;
host: 本机可用
○ip addr delete IFADDR dev IFACE
删除接口地址
如:ip addr del 172.16.100.13/16 dev eth0 label eth0:0
○ip addr show/list [IFACE]
查看该网卡所有地址信息;
○ip addr flush IFACE
清空指定接口的所有地址
4.ip route -routing table management
○添加路由:ip route add
语法:ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]
TYPE PREFIX:
主机路由:IP
网络路由:NETWORK/MASK
示例:
ip route add 192.168.0.0/24 via 172.16.0.1
ip route add 192.168.1.13/24 via 172.16.0.1
ip route add default via 172.16.0.1
○ip route del TYPE PRIFIX :删除指定路由
○ip route show|list :显示路由
○ip route flush [dev IFACE] [via PREFIX] :清空路由表
如: # iproute flush dev eth0
○ip route get TYPE PRIFIX :获取指定路由条目,前提是必须存在。
5.ss命令:
格式:ss[OPTION]... [FILTER]
netstat通过遍历proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取socket信息。
1.选项:
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unixsock相关
-l: listen监听状态的连接
-a: 所有状态的连接
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息
2.FILTER := [ state TCP-STATE ] [ EXPRESSION ] 过滤
3.TCP的常见状态:
tcpfinite state machine:
LISTEN: 监听
ESTABLISHED:已建立的连接
FIN_WAIT_1:
FIN_WAIT_2:
SYN_SENT:
SYN_RECV:
CLOSED:
4.EXPRESSION:
dport= 目标端口
sport = 源端口
示例:’( dport= :sshor sport = :ssh)’
5.常见用法:
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详细信息:
三、配置主机名:
1.CentOS 6:hostname 命令:
查看:hostname
配置:hostname HOSTNAME
当前系统有效,重启后无效
2.CentOS 7:hostnamectl 命令
hostnamectl status :显示当前主机名信息;
hostnamectl set-hostname NAME:设定主机名,永久有效;
3.设置配置文件
1)CentOS 6 :
第一步修改配置文件:/etc/sysconfig/network
第二步:HOSTNAME=<NAME>
注意:此方法的设定,不会立即生效,但以后会一直有效;
2)CentOS 7:直接使用 hostnamectl 设置即可,直接生效,并永久有效。
四、配置名字解析器
1.本地解析器
配置文件:/etc/hosts
本地主机名数据库和IP地址的映像
对小型独立网络有用
通常,在使用DNS前检查
getent hosts 查看/etc/hosts 内容
2.配置DNS服务器指向:
1)配置文件:/etc/resolv.conf
nameserver DNS_SERVER_IP(必须是IP地址);
注意:Linux最多只能设置3台主机被当做DNS地址解析;
2).如何做测试(host/nslookup/dig):
正解:# dig -t A FQDN(主机名)
FQDN-->IP
反解:# dig -x IP
IP-->FQDN
五、修改配置文件
1.IP、MASK、GW、DNS相关配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE
2.路由相关的配置文件:
/etc/sysconfig/network-scripts/route-IFACE
3.说明:配置文件 /etc/sysconfig/network-scripts/ifcfg-IFACE通过大量参数来定义接口的属性;其可通过vim编辑器直接修改,也可以使用专用的命令进行修改(CentOS 6:system-config-network(setup),CentOS 7:nmtui)
4.配置文件修改之后,如果要生效,需要重启网络服务
ifcfg-IFACE配置文件参数:
DEVICE:此配置文件的对应的设备名称;
ONBOOT:此设备是否随OS启动而激活;
UUID:此设备的唯一标识;
IPV6INIT:是否初始化IPv6;
BOOTPROTO:启动时此设备使用的配置协议;取值有:static(手动配置)、none(手动配置)、dhcp或bootp(动态配置)
TYPE:接口类型,常见的有Ethernet,Bridge;
DNS1:第一DNS服务器指向;
DNS2:备用DNS服务器指向;
DOMAIN:DNS搜索域;
IPADDR:IP地址;
NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码;
GATEWAY:默认网关;(网关和ip一定要在一个网段)
USERCTL:是否允许普通用户控制此设备;
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向覆盖本地手动配置的DNS服务器指向;默认为允许;
NM_CONTROLLED:NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“no”(使用命令:# chkconfig NetworkManager off 设置为开机不启动)
网络服务:
1.network
NetworkManger:CentOS 6
# chkconfig --list 查看默认状态;
# chkconfig NetworkManager off 设置为开机不启动。
2.管理网络服务:
CentOS 6:
# service SERVICE {start|stop|restart|status}
CentOS 7:
# systemctl {start|stop|restart|status} SERVICE
3.配置文件修改之后,如果要生效,需要重启网络服务:
CentOS 6 系统需执行:
# service network restart
CentOS 7 系统序执行:
# systemctl restart network
示例:
对CentOS 6 中的新增网卡eth1设置配置文件,并激活
1)创建配置文件ifcfg-eth1,并设置如下参数:
2)设置好之后保存退出,然后重启网络
3)重启网络之后,可查看当前状态
设置非默认网关路由:
/etc/sysconfig/network-scripts/route-IFACE
支持两种配置方式,但不可混用;
(1)每行一个路由条目:
格式:
DESTINATION via GATEWAY
192.168.0.0/24 via 172.16.0.2
192.168.1.1/24 via 172.16.0.3
(2)每三行一个路由条目:
格式:
ADDRESS#=TARGET
NETMASK#=MASK
GETEWAY#=NEXTHOP
例如:
ADDRESS1=192.168.0.0
NETMASK1=255.255.255.0
GATEWAY1=172.16.0.2
设置网卡别名(给接口设置多个地址):
◎ 对虚拟主机有用
◎ 将多个IP地址绑定到一个网卡上
eth0:1 、eth0:2、eth0:3
◎ ifconfig命令:
# ifconfigeth0:0 192.168.1.100/24 up
# ifconfig eth0:0 down
◎ ip命令:
# 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
为每个设备别名生成独立的接口配置文件
关闭NetworkManager服务
ifcfg-ethX:xxx
必须使用静态联网
DEVICE=eth0:0
IPADDR=10.10.10.10
NETMASK=255.0.0.0
ONPARENT=yes
注意:service network restart 生效
参考/usr/share/doc/initscripts-*/sysconfig.txt
示例:
在CentOS 6 中以ifconfig 命令为例,,实现将多个IP绑定到一块网卡上
步骤如下:
(1)ifconfig IFACE_LABEL IPADDR/NETWASK
IFACE_LABEL:eth0:0,eth0:1,...
(2)为别名添加配置文件;
DEVICE=IFACE_LABEL
BOOTPROTO:网卡别名不支持动态获取地址;使用 static,nano手动配置
注意:DEVICE一定要同定义的文件名
网络接口配置:bonding
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接口上传送所有的报文。本模式提供容错能力。
配置步骤如下:
创建bonding设备的配置文件
/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
BONDING_OPTS=“miimon=100 mode=1”
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
查看bond0状态:/proc/net/bonding/bond0
◎ miimon是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路
◎ 删除bond0
# ifconfig bond0 down
# rmmod bonding
◎ 详细帮助参看:
/usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt
试验如下:
1)编辑配置文件如下:
2)在另一台主机上ping 10.1.252.162,当前主机查看网卡活动如下:
3)现在我们断开网卡eth0,模拟实际工作中的断网,然后查看能否自动切到网卡eth1上
4)在另一台主机上可以看到,还可以ping通,我们再看现在的工作网卡已经变为eth1,试验成功
网络管理中的几个常用工具:
1.ping
检测目标主机是否可达,以及相关网络的延时性等
2.traceroute IP
探测到达目标主机中间所经过的弯管设备;
3.mtr HOST
合并了ping和traceroute命令的的网络诊断工具;
4.lftp:
访问ftp服务器
# lftp [-p port] [-u user[,password]] SERVER
子命令:
get:下载
mget:下载多个文件支持通配符
5.lftpget URL(统一资源定位符,即网址)
非交互式命令的下载
6. wget
不仅可以下载ftp资源,也可以下载http资源
wget[option]... [URL]...
-q: 静默模式
-c: 断点续传
-O: 保存位置
--limit-rates=: 指定传输速率
本文出自 “逐梦小涛” 博客,请务必保留此出处http://1992tao.blog.51cto.com/11606804/1901600
原文:http://1992tao.blog.51cto.com/11606804/1901600