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


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

一、服务器的网络配置

在服务器的网络配置时,喜欢图形的朋友可用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选项,它表示网卡是否随系统启动而启动,此项一定要设置成on

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

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服务器上绑定了六块网卡。

二、查看你的服务器网络连接状态

  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生产服务器的经验之谈。


相关内容