网络服务:

RHEL5:/etc/init.d/network {start|stop|restart|status}

RHEL6: /etc/init.d/NetworkManager {start|stop|restart|status}


网关:

route

add: 添加

-host: 主机路由

-net:网络路由

-net 0.0.0.0

route add -net|-host DEST gw NEXTHOP

route add default gw NEXTHOP



del:删除

-host

-net

route del -net 10.0.0.0/8

route del -net 0.0.0.0

route del default


所做出的改动重启网络服务或主机后失效;


查看:

route -n: 以数字方式显示各主机或端口等相关信息


网络配置文件:

/etc/sysconfig/network


网络接口配置文件:

/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME

DEVICE=: 关联的设备名称,要与文件名的后半部“INTERFACE_NAME”保持一致;

BOOTPROTO={static|none|dhcp|bootp}: 引导协议;要使用静态地址,使用static或none;dhcp表示使用DHCP服务器获取地址;

IPADDR=: IP地址

NETMASK=:子网掩码

GATEWAY=:设定默认网关;

ONBOOT=:开机时是否自动激活此网络接口;

HWADDR=: 硬件地址,要与硬件中的地址保持一致;可省;

USERCTL={yes|no}: 是否允许普通用户控制此接口;

PEERDNS={yes|no}: 是否在BOOTPROTO为dhcp时接受由DHCP服务器指定的DNS地址;


不会立即生效,但重启网络服务或主机都会生效;


路由:

/etc/sysconfig/network-scripts/route-ethX

添加格式一:

DESTvia NEXTHOP


添加格式二:

ADDRESS0=

NETMASK0=

GATEWAY0=



DNS服务器指定方法只有一种:

/etc/resolv.conf

nameserver DNS_IP_1

nameserver DNS_IP_2


指定本地解析:

/etc/hosts

主机IP主机名主机别名

172.16.0.1www.magedu.comwww


DNS-->/etc/hosts-->DNS



配置主机名:

hostname HOSTNAME


立即生效,但不是永久有效;


/etc/sysconfig/network

HOSTNAME=



RHEL5:

setup: system-config-network-tui

system-config-network-gui


ifconfig, 老旧


iproute2

ip

link: 网络接口属性

addr: 协议地址

route: 路由


link

show

ip -s link show

set

ip link set DEV {up|down}

addr

add

ip addr add ADDRESS dev DEV

del

ip addr del ADDRESS dev DEV

show

ip addr show dev DEV to PREFIX

flush

ip addr flush dev DEV to PREFIX

一块网卡可以使用多个地址:

网络设备可以别名:

eth0

ethX:X, eth0:0, eth0:1, ...

配置方法:

ifconfig ethX:X IP/NETMASK

/etc/sysconfig/network-scripts/ifcfg-ethX:X

DEVICE=ethX:X


非主要地址不能使用DHCP动态获取;


ip

eth1, 添加个地址192.168.100.1

ip addr add 192.168.100.1/24 dev eth1 label eth1:0

primary address

secondary adress


192.168.100.6


10.0.1.0/24, 192.168.100.6


路由:

route add -net 10.0.1.0/24 gw 192.168.100.6


ip route add to 10.0.1.0/24 dev eth1 via 192.168.100.6

add, change, show, flush, replace

ifconfig eth0, 172.16.200.33/16


ifconfig eth0:0 172.16.200.33/16


TCP:

URG

SYN

ACK

PSH

RST

FIN


如何定义IP:

/etc/init.d/network

1、修改配置文件

/etc/sysconfig/network-scripts/ifcfg-XXX

eth{0,1,2,...}

ppp{0,1,2,...}


eth0:{0,1,2,...}, 例如,eth0:0


2、ifconfig 接口 IP/netmask


3、ip addr

iproute2:

ip, tc, ss


4、 setup

system-config-network-tui: 直接修改配置文件

system-config-network-gui


静态IP:


BOOTPROTO={none|static|bootp|dhcp}

IPADDR=

NETMASK=

GATEWAY=

PEERDNS=no

默认路由

网络路由

主机路由

route add {-net|-host} TARGET gw nexthop

route add default gw GATEWAY


/etc/sysconfig/network-scripts/route-XXX


/etc/hosts



/etc/resolv.conf

nameserver IP1

nameserver IP2

nameserver IP3


www.magedu.com



NetworkManager: 桥接

chkconfig NetworkManager off

chkconfig network on


init --> upstart --> systemd




网络管理命令:

ping:测试网络连通性;

-c #: 发送探测报文的个数;

-W seconds: 超时时长,单位为秒;



写一个脚本:探测172.16.251.11-172.16.251.110内的主机是否在线。

#!/bin/bash

#

NET=172.16.251

for I in {11..110}; do

if ping -c 1 -W 1 $NET.$I &> /dev/null; then

echo $NET.$I is up.

else

echo $NET.$I is down.

fi

done


ping -c 1 -W 1 $NET.$I &> /dev/null && echo "$NET.$I is up." || echo "$NET.$I is down."

当ping 命令执行成功时执行&&后面的命令;

当ping 命令执行不成功时执行||后面的命令。


traceroute #路由跟踪 类似于windows系统下的tracert



netstat:

OSI: tcp, udp

tcp:


http --> tcp


netstat

-t:tcp 协议

-u:udp

-tu:tcp 和 udp

-tl:tcp listen 处于监听状态的tcp连接

-n:以数字形式显示服务名称如果ssh 就是22

-p: 显示进程名和PID

-r: 显示路由信息;

-c : 批量显示, 此时可以在命令后跟一个数字,表延迟时长;

-e: 显示扩展

-l:listen 查看处于监听状态的连接


例子:

服务器上的一些统计数据:

1)统计80端口连接数
netstat -nat|grep -i "80"|wc -l

220842272.jpg

2)统计httpd协议连接数
ps -ef|grep httpd|wc -l

3)、统计已连接上的,状态为“established
netstat -na|grep ESTABLISHED|wc -l

220627905.jpg


4)、查出哪个IP地址连接最多,将其封了.
netstat -na|grep ESTABLISHED|awk {print $5}|awk -F: {print $1}|sort|uniq -c|sort -r +0n

netstat -na|grep SYN|awk {print $5}|awk -F: {print $1}|sort|uniq -c|sort -r +0n

1、查看apache当前并发访问数:
netstat -an | grep ESTABLISHED | wc -l

对比httpd.conf中MaxClients的数字差距多少。

2、查看有多少个进程数:
ps aux|grep httpd|wc -l

3、可以使用如下参数查看数据
server-status?auto

#ps -ef|grep httpd|wc -l
1388
统计httpd进程数,连个请求会启动一个进程,使用于Apache服务器。
表示Apache能够处理1388个并发请求,这个值Apache可根据负载情况自动调整。

#netstat -nat|grep -i "80"|wc -l
4341
netstat -an会打印系统当前网络链接状态,而grep -i "80"是用来提取与80端口有关的连接的,wc -l进行连接数统计。
最终返回的数字就是当前所有80端口的请求总数。

#netstat -na|grep ESTABLISHED|wc -l
376
netstat -an会打印系统当前网络链接状态,而grep ESTABLISHED 提取出已建立连接的信息。 然后wc -l统计。
最终返回的数字就是当前所有80端口的已建立连接的总数。

netstat -nat||grep ESTABLISHED|wc - 可查看所有建立连接的详细记录

查看Apache的并发请求数及其TCP连接状态:
  Linux命令:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

返回结果示例:
  LAST_ACK 5
  SYN_RECV 30
  ESTABLISHED 1597
  FIN_WAIT1 51
  FIN_WAIT2 504
  TIME_WAIT 1057
  其中的
SYN_RECV表示正在等待处理的请求数;
ESTABLISHED表示正常数据传输状态;
TIME_WAIT表示处理完毕,等待超时结束的请求数。


ss: 另外一种类似netstat命令 同样可以查看连接信息,但是它默认是管理员命令。

-t: tcp

-u: udp

-a: all, 相关协议所有连接;

-l: 监听的套接字;

-e: 显示扩展信息;

FILTER := [ state TCP-STATE ] [ EXPRESSION ]


ss -ta state established '( dport = :22 )'

dport: 目标端口;

sport: 源端口;

src: 源IP;

dst: 目标IP;


# ss -tan state established '( dport = :22 or sport = :22 )'

-m: 显示套接字连接使用的内存信息;

-p: 进程及进程号