明明白白你的Linux服务器——网络篇(1)

 【51CTO独家特稿】前言:这篇文章是明明白白你的Linux服务器-硬件篇的续篇,《明明白白你的Linux服务器》系列的第二篇。但愿你们看完此文后,能很清楚明白你的服务器的网络状况,能很轻松的配置其网络环境。Linux服务器在装完系统,配置其网络环境是每个system administrator的职能。vim

1、服务器的网络配置服务器

在服务器的网络配置时,喜欢图形的朋友可用setup或system-config-network来配置。网络

网卡配置文件为/etc/sysconfig/network-scripts/ifcfg-eth0,设置完毕后直接用service network restart生效并发

  
  
  
  
  1. [root@linpcl root]#cat /etc/sysconfig/networking/devices/ifcfg-rth0  
  2. DEVICE=eth0 
  3. ONBOOT=yes 
  4. BOOTPROTO=static 
  5. IPADDR=192.168.0.2  
  6. NETMASK=255.255.255.0  
  7. GATEWAY=192.168.0.1 

GATEWAY选项能够设置网关参数,这里注意下ONBOOT选项,它表示网卡是否随系统启动而启动,此项必定要设置成ontcp

这里介绍二个不是太经常使用的参数ide

USERCTL=no,即不容许普通用户修改网卡
PEERDNS=yes,它表示容许从DHCP得到的DNS覆盖本地的DNS

查看本机全部的网卡状况 ifconfig –a,更高级的网卡路由命令用ip addr,特别是你的服务器由keepalived绑定了虚拟VIP后用其查看很方便查看本机路由 netstat –rn或route 
增长一条本机网络路由用命令route add -net 172.16.6.0 netmask 255.255.255.0 gw 172.16.2.25,即增长一条网络172.16.6.0/24 通过172.16.2.254 ,这个地址也能够理解为你的下一跳的地址高并发

删除路由用命令route del –net 172.16.86.0/24

若是要永久的生效可用文件编辑的办法工具

vim /etc/sysconfig/network-scripts/route-eth0
172.16.6.0/24 via 172.16.2.25
查看本机的DNS服务器 cat /etc/resolv.conf
查看主机名hostname
查看主机名对应的IP地址 /etc/hosts

它的执行顺序是优于DNS的,如今多用于集群环境,好比Heartbeat;还有一个妙用,在没用DNS的环境中作测试时,直接改服务器的此文件,达到优先解析的目的查看与本机直连的网络设备用命令arp测试

这里跟你们介绍一个颇有用的工具,mii-tool,判断哪块网卡链接了网线,同事们靠抽插网线来判断哪一个网卡链接了网线的办法比较没有效率优化

  
  
  
  
  1. [root@mail~]#mii-tool  
  2. eth0: negotiated 100baseTx-FD flow-control, link ok  
  3. SIOCGMIIPHY on 'eth1' failed: Resource temporarily unavailable 

你们看这段文字可能没什么感受,但到了机房就很是有用了,特别是那些网卡多的服务器,我见得最多的某台Linux服务器上绑定了六块网卡。

2、查看你的服务器网络链接状态

  
  
  
  
  1. netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'  
  2. LAST_ACK 14  
  3. SYN_RECV 348  
  4. ESTABLISHED 70  
  5. FIN_WAIT1 229  
  6. FIN_WAIT2 30  
  7. CLOSING 33  
  8. TIME_WAIT 18122 

状态:描述

◆CLOSED:无链接是活动的或正在进行 

◆LISTEN:服务器在等待进入呼叫 

◆SYN_RECV:一个链接请求已经到达,等待确认 

◆SYN_SENT:应用已经开始,打开一个链接 

◆ESTABLISHED:正常数据传输状态 

◆FIN_WAIT1:应用说它已经完成 

◆FIN_WAIT2:另外一边已赞成释放 

◆ITMED_WAIT:等待全部分组死掉 

◆CLOSING:两边同时尝试关闭 

◆TIME_WAIT:另外一边已初始化一个释放 

◆LAST_ACK:等待全部分组死掉 

ESTABLISHED的值其实也是当前的并发数,这个可重点关注下;另外,可关注下TIME——WAIT这项的数值。Linux下高并发的Squid服务器,TCP TIME_WAIT套接字数量常常达到两、三万,服务器很容易被拖死。经过修改Linux内核参数,能够减小Squid服务器的TIME_WAIT套接字数量,具体可参见个人另外一篇文章:优化Linux生产服务器的经验之谈