一、网络接口配置
【查看网卡信息】
1. ifconfig
*错误和丢弃数据包数量,与网络质量有关;溢出数据包总数通常与缓冲区大小及收发数据包速率有关。
2. 查看所有网络接口(包括被禁用)
ifconfig -a
3. 查看IP地址:
ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
inet 127.0.0.2/8 brd 127.255.255.255 scope host secondary lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen1000
link/ether 00:0c:29:6b:8d:81 brd ff:ff:ff:ff:ff:ff
inet 192.168.233.129/24 brd 192.168.233.255 scope global eth0
inet6 fe80::20c:29ff:fe6b:8d81/64 scope link
valid_lft forever preferred_lft forever
【配置网卡】
ifconfig <interface_name> <ip_address> netmask <netmask> [up | down]
上述命令也可以写成:
ifconfig <interface_name> <ip_address> </prefix_len> [up | down]
其中prefix_len表示以“长度”表示子网掩码,需要将子网掩码转换为2进制,然后将这穿2进制数中1的个数写到prefix_len的位置。
【举例】
#配置网卡eth1的ip和子网掩码,并使该网卡立即生效
ifconfig eth0 192.168.233.129 netmask 255.255.255.0 up
#或者写成
ifconfig eth0 192.168.233.129/24 up
【网卡配置文件】
位于/etc/sysconfig/network下,以ifcfg-ethX命名,X是网卡的编号。此外,ifcfg-lo是回环接口的配置文件。
ifcfg-ethX文件内容如下:
BOOTPROTO=’static'
STARTMODE='auto'
DEVICE=eth0
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.233.129
【配置项说明】
·BOOTPROTO:网卡开启后应如何获取配置,参数值如下:
dhcp:从dhcp服务器自动获取ip、掩码、默认网关及DNS地址等信息;
static:使用该配置文件中的设置,这时要求该文件中至少包含IP、默认网关、子网掩码这几项信息。
none:有两种含义,一是这个网卡有其他用途(比如网卡处于bonding)、不需要使用IP地址;还可能网卡使用静态IP地址。
·STARTMODE:决定了该网卡以何种方式启动.有以下几个参数:
manual:需要系统启动后手动输入ifup 网卡名(比如eth0)进行启动;
auto:网卡会在系统启动时启动(如果网络连接可用的话),或者在网络连接被激活时、实时激活该网卡;
hotplug:和auto功能类似,区别在于网卡启动失败后、不会再尝试rcnetwork命令;
nfsroot:与auto含义类似,区别在于配置了该参数后、该网卡就无法通过rcnetwork stop. ifdown <interface> -o force命令关闭;该参数用于iBFT中。
*BFT是一种将 iSCSI 引导设备的相关参数传递到操作系统的方法。首次从 iSCSI 引导时,系统上的iSCSI 引导固件将连接到 iSCSI 目标。如果登录成功,则固件会将网络和 iSCSI 引导参数保存到iBFT,并将该表存储在系统内存中。系统可使用此表配置其自己的 iSCSI 连接和网络并启动。
off:表示该网卡无法通过任何方法激活
ifplugd:多网卡环境下,网卡的启动优先级;如果配置了这个参数,则下面的IFPLUGD_PRIORITY参数也需要配置到该文件中;
·IFPLUGD_PRIORITY:当STARTMODE=ifplugd时,该参数标识了该网卡的启动优先级,默认为0.
·DEVICE:该网卡的名字
·NETMASK:子网掩码
·IPADDR:IP地址
·BROADCAST:广播地址(网络号),IP地址与子网掩码通过二进制“与”运算后自动获取,一般不用写(配了反而容易配错)
*配置项的名字一定要用大写,里面的参数使用小写字母。其他的配置项说明可以登录系统通过man ifcfg命令查看。
【改变网络服务状态】
启动网络服务
service network start
停止网络服务
service network stop
重启网络服务
service network restart
停、启某个网卡:
ifdown eth0(或者:ifconfig eth0 down)
ifup eth0(或者:ifconfig eth0 up)
查看网卡状态及网卡型号:
rcnetwork status
二、路由
*路由器:为数据包寻找最佳传输路径的网络设备,是一种专门负责计算数据包传输路径的“计算机”。
【路由表】
使用route命令查看主机路由表(或者使用route -n,或者netstat -rn):
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
loopback * 255.0.0.0 U 0 0 0 lo
link-local * 255.255.0.0 U 0 0 0 eth0
192.168.233.0 * 255.255.255.0 U 0 0 0 eth0
【结果说明】
Destination:目标IP,default表示默认路由(就是指向默认网关的条目)。
Gateway:网关地址,即下一跳的路由器地址,*表示直接与主机连接,不需要网关地址。
Genmask:目标IP的子网掩码
Flags:路由标记,U-活跃状态,H-目标是主机,G-指向默认网关的路由,R:恢复动态路由产生的条目,D-后台路由程序动态安装,M-路由后台程序修改过的条目,C-缓存的路由条目,!-拒绝路由的条目
Metric:该路由到达目标IP的代价值,越低越好
Ref:该条路由被引用的次数
Use:该条路由被路由软件查找的次数
Iface:目标网卡名
【增/删默认路由】
route [add|del] default gw ip_address
该命令并不会保存配置到配置文件中,但可以快速确定网络接口对应的网络
【增/添路由条目】
route[add|del] [net|host] ipadd1 [netmask mask_IP] [gw|dev] gw_ipadd2|dev_name
[add|del]:添加/删除一条路由
[net|host]:目标是一个网络还是主机
ipadd1:目标网络的IP地址
ipadd2:下一跳路由器的IP地址
[netmask mask_IP]:目标主机IP的子网掩码,如果目标是一个网络,此参数省略。
[gw|dev]:下一跳路由器的地址或要使用的网络接口
【举例】
1. 新增路由
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.233.1
或
route add -net 192.168.1.0/24 gw 192.168.233.1
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
loopback * 255.0.0.0 U 0 0 0 lo
link-local * 255.255.0.0 U 0 0 0 eth0
192.168.1.0 192.168.233.1 255.255.255.0 UG 0 0 0 eth0
192.168.233.0 * 255.255.255.0 U 0 0 0 eth0
2. 删除路由
route del -net 192.168.1.0/24 gw 192.168.233.1
【永久配置路由】
SUSE下打开/etc/sysconfig/network/routes,填写如下:
#Destination Dummy/Gateway Netmask Device
第一列为路由目标,可以是网络或主机的IP地址;
第二列包含默认网关或通过其可访问主机或网络的网关;
第三列包含网关后的网络或主机的子网掩码;
第四列表示该条路由从哪个设备出去。
*注:实际试了一下,添加后重启网络,用route或者netstat -rn命令查不出新增的路由,待定。
【路由汇总】
如果路由表条目过多,会导致网络性能下降,这是可以将一组路由条目汇总成单个路由广播,比如,要将192.168.192.0~192.168.233.0的网络汇总成一条路由广播添加到路由表中:
route add -net 192.168.192.0/18 dev eth0
计算路由器的汇总路由,需判断这些地址最左边的多少位相同的。计算汇总路由的步骤如下:
第一步:将地址转换为二进制格式,并将它们对齐
第二步:找到所有地址中都相同的最后一位。在它后面划一条竖线。
第三步:计算竖线前面有多少位是相同的,记为n。汇总路由为第1个IP地址加上斜线,斜线后面写刚才数出来的数字n。
三、主机名
【查看主机名】
hostname
【修改主机名】
1. hostname new_hostname
2. SUSE下修改/etc/ HOSTNAME文件,将.site前面的字符串改成新主机名即可
【/etc/hosts】
修改主机名后,还要修改/etc/hosts文件中的映射关系,将本机IP和主机名加到这个文件中,空格分隔;以保证依赖主机名工作的服务能够正常工作。
四、其他网络命令
【ping】
ping [option] ip_address
【OPTION】
c:指定发送数据包的个数
f:快速发包,用于极限测试
s:指定发送数据包的大小,单位Bytes
l:指定发送数据包的网络端口
R:显示数据包经过的路由
t:指定数据包使用的TTL值
*TTL:Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL是IPv4包头的一个8 bit字段。最大值255,默认值64。
【traceroute】
可以测试出经过的路由中、哪个节点有问题
【netstat】
【OPTION】
t:列出正在使用的tcp连接
u:列出正在使用的UDP连接
a:查看所有正在连接中的套接字
n:以IP地址的形式显示(而非域名)
p:显示套接字对应的进程名即PID
l:只显示正处于监听状态的套接字
*套接字:系统处理相同端口的不同TCP、UDP连接的接口
i:查看网卡使用情况
例:显示正在监听网路的进程、端口、PID
netstat -tunlp
【输出说明】
Iface:网卡名
MTU和Met:最大传输单元及度量值
RX-OK和TX-OK:正常发送、接受的数据包个数
RX-ERR和TX-ERR:发送和接收到的错误数据包个数
RX-DRP和TX-DRP:发送、接收过程中丢弃的数据包个数
RX-OVR和TX-OVR:发送、接收过程中溢出(或者叫丢失)的数据包个数
Flg:标识了当前网卡的工作状态,只有处于RU状态的网卡才能正常工作
B:该网卡设置了广播地址
M:处于混乱模式,可以接收所有数据包
R:网卡正在运行,可以接收数据包
U:网卡处于开启状态
L:该网卡是一个环回接口
State:使用a、n等选项时会被展示
ESTABLISHED:当前套接字已经存在一个连接
SYN_SENT:套接字正在积极尝试建立连接
SYN_RECV:已经收到一个连接请求
CLOSE_WAIT:远程端口已关闭,正在等待套接字关闭
FIN_WAIT1:套接字已经关闭,连接正在关闭
CLOSED:套接字没有被使用
LISTEN:套接字处于监听状态
UNKNOWN:套接字状态位置
【域名解析】
dig和nslookup
五、网络通信过程
主要经历以下三个过程:
【域名转换】
通信之前,会对目标地址进行检查,如果地址是一个域名,则需要对域名进行转换;首先查看hosts文件中是否包含对应记录,如果没有,则会到对应的DNS服务器上查询。
【封装数据包】
经过应用层和传输层的某些协议封装,数据被传递到网络层,开始经IP协议,对数据进行拆分、封装,并加上IP头,将其传递到数据链路层再次封装(加上MAC地址)和校验信息,最后经过物理层传输。
【数据发送】
按照路由表中的路由进行传输。
【网络故障排查思路】
1. ping命令测试网络通讯是否正常,否则需要确认默认网关、DNS地址是否合理正确
2. traceroute判断故障发生在哪个路由器
3. 检查物理连接
