Linux-网络管理
查看网卡信息
查看当前系统所连接的所有网卡(包括已经驱动了和没有驱动)
[root@docker-02 ~]# lspci | grep -i eth 02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
确认网线已经连接好,以ens33 为例
[root@docker-02 ~]# mii-tool ens33 ens33: negotiated 1000baseT-FD flow-control, link ok
link ok 网卡能够被识别,并且接了有效的网线
ping命令
ping +IP地址 ctrl+c结束 测试是否两台主机网络是否通 -c参数:ping几次 cd /proc/sys/net/ipv4 ls icmp_echo_ignore_all 0 代表关闭,1代表开启。这里只是暂时开启忽略回显。别人ping自己不显示。[禁止ping] echo 1 > icmp_echo_ignore_all
NetworkManager服务
NetworkManager作用:是redhat6自带的检测网络、自动连接网络的图形化工具。NetworkManager 服务会干扰网络配置,如:DNS经常会被刷掉。
service NetworkManager stop 临时关闭
chkconfig NetworkManager off 开机不自动启动
网络相关的配置文件
1) /etc/sysconfig/network-scripts/ifcfg-ethX 接口的网络配置文件 2) /etc/sysconfig/network 网络全局配置文件 3)/etc/resolv.conf DNS解析文件 4)/etc/hosts 本地名称解析文件,优先于DNS 配置静态IP地址: 方法1: setup/systen-config-network 方法2:# vim /etc/sysconfig/network-scripts/ifcfg-eth0
device=eth0 type=Ethernet onboot=yes bootproto=none ipadd=10.1.1.1 network=255.255.255.0 gateway=10.1.1.254
DEVICE=eth0 <-- 网卡名字 BOOTPROTO=static <---- dhcp 动态获取IP, none 根据其他选项决定动态还是静态,static肯定是手工指定IP NM_CONTROLLED=no <---如果NetworkManager服务启用,该网卡配置文件也不使用NetworkManager管理 ONBOOT=yes <---- 网络服务启动的时候,yes代表激活状态 , no 代表禁用 TYPE=Ethernet IPADDR=10.1.1.11 <-- IP 地址 NETMASK=255.255.255.0 <-- 子网掩码 GATEWAY=10.1.1.1 <-- 默认网关 DNS1=10.1.1.1 <-- DNS 服务器 HWADDR=14:da:e9:eb:a9:61 <---MAC地址 USERCTL=no <---是否允许普通用户启动或者停止该网卡 IPV6INIT=no <---是否在该网卡上启动IPV6的功能 PEERDNS=yes <---是否允许网卡在启动时向DHCP服务器查询DNS信息,并自动覆盖/etc/resolv.conf配置文件。
路由 route
Linux系统的route命令用于显示和操作IP路由表, 要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现
route [OPTIONS] [CMD]
[OPTIONS]
-c:显示更多信息 -n:以数字显示路由信息 -v:显示详细的处理信息 -F:显示发送信息 -C:显示路由缓存 -f:清除所有网关入口的路由表 -p:与add命令一起使用时使路由具有永久性
[CMD]
add #添加一条新路由; del #删除一条路由; -net #目标地址是一个网络; -host #目标地址是一个主机; netmask #当添加一个网络路由时,需要使用网络掩码; gw #路由数据包通过网关,注意,你指定的网关必须能够达到; metric #设置路由跳数; destination #指定该路由的网络目标; mask netmask #指定与网络目标相关的网络掩码(也被称作子网掩码); gateway #指定网络目标定义的地址集和子网掩码可以到达的前进或下一跃点IP地址; metric metric #为路由指定一个整数成本值标(从1至9999),当在路由表(与转发的数据包目标地址最匹配)的多个路由中进行选择时可以使用 ;
示例
(1)查看本机路由信息
[root@localhost ~]# route -n
(2)添加一条默认路由,临时生效(重启后就会失效)
[root@localhost ~]# route add default gw 192.168.10.1 或 [root@localhost ~]# route add –net 0.0.0.0 gw 192.168.10.1
(3)删除一条默认路由
[root@localhost ~]# route del default gw 192.168.10.1 或 [root@localhost ~]# route del –net 0.0.0.0 gw 192.168.10.1
(4)添加一条静态路由
route add -net 192.168.8.0 netmask 255.255.255.0 gw 192.168.1.1 // 发往192.168.62这个网段的全部要经过网关192.168.1.1
(5)删除一条静态路由
route del -net 192.168.8.0 netmask 255.255.255.0 gw 192.168.1.1 // 删除的时候可以不写网关
(6)添加网关
# 服务器上面有双网卡,em1外网,em2内网,我们都知道,如果在配置文件里面同事都置网关,那么总有一个不会生效,此时我们就要用静态添加的方法来添加网关了,让145端的内网都走em2网卡。 # 添加前 [root@localhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.20.0 0.0.0.0 255.255.255.0 U 0 0 0 em1 145.36.26.0 0.0.0.0 255.255.255.0 U 0 0 0 em2 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 em1 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 em2 0.0.0.0 192.168.20.254 0.0.0.0 UG 0 0 0 em1 # 添加网关 [root@localhost ~]# route add -net 145.0.0.0 netmask 255.0.0.0 gw 145.36.26.254 # 添加后 [root@localhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.20.0 0.0.0.0 255.255.255.0 U 0 0 0 em1 145.36.26.0 0.0.0.0 255.255.255.0 U 0 0 0 em2 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 em1 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 em2 145.0.0.0 145.36.26.254 255.0.0.0 UG 0 0 0 em2 0.0.0.0 192.168.20.254 0.0.0.0 UG 0 0 0 em1
网络故障排错
判断网卡是否能识别,是否接了有效的网线
[root@docker-02 ~]# mii-tool ens33 ens33: negotiated 1000baseT-FD flow-control, link ok 有可能明明连接了有效的网线,但是还是看不到link ok,可以先确定网卡配置文件是正确的,并且ONBOOT=yes ,然后重启network服务(service network restart)
ethtool ens33 查看网卡的工作模式等信息
[root@docker-02 ~]# ethtool ens33 Settings for ens33: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: off (auto) Supports Wake-on: d Wake-on: d Current message level: 0x00000007 (7) drv probe link Link detected: yes
# ethtool -s ens33 speed 10 duplex half autoneg off --改成10M/s的速率,半双工,关闭自动协商 通过scp拷贝大文件,查看网速速率 # ethtool -s ens33 speed 100 duplex full autoneg on --改成100M/s的速率,半双工,开启自动协商
ping的错误类型
network unreachable (网络不可达): 一般没有设定正确的网关
unknow host xxxx : 设定DNS无效
Ping命令返回错误信息说明
1.Request timed out 这是大家经常碰到的提示信息,很多文章中说这是对方机器置了过滤ICMP数据包,从上面工作过程来看,这是不完全正确的,至少有下几种情况。 (1) 对方已关机,或者网络上根本没有这个地址:比如在上图中主机A中PING 192.168.0.7 ,或者主机B关机了,在主机A中PING 192.168.0.5 都会得到超时的信息。 (2)对方与自己不在同一网段内,通过路由也无法找到对方,但有时对方确实是存在的,当然不存在也是返回超时的信息。 (3)对方确实存在,但设置了ICMP数据包过滤(比如防火墙设置)。 怎样知道对方是存在,还是不存在呢,可以用带参数 -a 的Ping命令探测对方,如果能得到对方的NETBIOS名称,则说明对方是存在的,是有防火墙设置,如果得不到,多半是对方不存在或关机,或不在同一网段内。 (4)错误设置IP地址 正常情况下,一台主机应该有一个网卡,一个IP地址,或多个网卡,多个IP地址(这些地址一定要处于不同的IP子网)。但如果一台电脑的“拨号网络适配器”(相当于一块软网卡)的TCP/IP设置中,设置了一个与网卡IP地址处于同一子网的IP地址,这样,在IP层协议看来,这台主机就有两个不同的接口处于同一网段内。当从这台主机Ping其他的机器时,会存在这样的问题: A.主机不知道将数据包发到哪个网络接口,因为有两个网络接口都连接在同一网段。 B.主机不知道用哪个地址作为数据包的源地址。因此,从这台主机去Ping其他机器,IP层协议会无法处理,超时后,Ping 就会给出一个“超时无应答”的错误信息提示。但从其他主机Ping这台主机时,请求包从特定的网卡来,ICMP只须简单地将目的、源地址互换,并更改一些标志即可,ICMP应答包能顺利发出,其他主机也就能成功Ping通这台机器了。 2.Destination host Unreachable (1) 对方与自己不在同一网段内,而自己又未设置默认的路由,比如上例中A机中不设定默认的路由,运行Ping192.168.0.1.4就会出现“Destination host Unreachable”。 (2)网线出了故障 这里要说明一下“destination host unreachable”和 “time out”的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其他原因不可到达,这时候会出现“time out”,如果路由表中连到达目标的路由都没有,那就会出现“destination host unreachable”。 3.Bad IP address 这个信息表示您可能没有连接到DNS服务器,所以无法解析这个IP地址,也可能是IP地址不存在。 4.Source quench received 这个信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。 5.Unknown host——不知名主机 这种出错信息的意思是,该远程主机的名字不能被域名服务器(DNS)转换成IP地址。故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。 6.No answer——无响应 这种故障说明本地系统有一条通向中心主机的路由,但却接收不到它发给该中心主机的任何信息。故障原因可能是下列之一:中心主机没有工作;本地或中心主机网络配置不正确;本地或中心的路由器没有工作;通信线路有故障;中心主机存在路由选择问题。 7.Ping 127.0.0.1 127.0.0.1是本地循环地址.如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作。 8.no rout to host 网卡工作不正常。 9.transmit failed,error code:10043 网卡驱动不正常。 10.unknown host name DNS配置不正确