网络基础知识部分:

网络配置文件

常用的网络服务命令简单使用

一、网络配置文件

1. /etc/sysconfig/network 文件

功能:设置主机最基本的网络信息,包括主机名、默认网关等信息

内容:

NETWORKING= yes/no设定启动系统时是否启用网络服务

HOSTNAME= www.mysqlopNaN设定主机名(不是NETBIOS名)

GATEWAY= 192.168.0.1设定默认网关

GATEWAYDEV= eth0设定网关接口

FORWARD_IPV4= yes/no设定LINUX是否支持IP转发

2. /etc/sysconfig/network-scripts/ifcfg-ethX(X取值0,1,2,…….n)

功能:用于配置以太网接口卡的初始信息,。

内容:

ONBOOT= yes在设定启动时,是否激活网卡

DEVICE= eth0设定物理设备名称

BOOTPROTO= none|static|dhcp|bootp设定网卡启动协议

NETMASK= 255.255.255.0设定子网掩码

BROADCAST= 192.168.3.255设定广播码

NETWORK= 192.168.3.0设定网络号

IPADDR= 192.168.3.2设定主机IP

3. /etc/resolv.conf

功能:域名服务客户端的配置文件,用于指定域名服务器的位置

内容:

domainnamelinux.cn设定主机域名

searchlinux.cn设定搜索列表

nameserver192.168.0.254设定DNS服务器的IP(最多三个)

4. /etc/hosts

功能:IP地址和主机名的映射

内容:

127.0.0.1localhost.localdomain syslog

::1localhost6.localdomain6localhost6

192.168.2.100 MySQL-HK-001

192.168.2.110 MySQL-HK-011

5. /etc/& /etc/modprobe.d/

内核模块加载相关的配置文件

6. /etc/nsswitch.conf

/etc/nsswitch.conf文件用于管理系统中多个配置文件的查找顺序,它比/etc/host.conf文件提供了更多的功能。/etc/nsswitch.conf中的每一行或者是注释(以#号开头),或者是一个关键字后跟冒号和一系列要试用的有顺序的方法。每一个关键字是在/etc/目录可以被/etc/nsswitch.conf控制的/etc文件的名字。

下面是可以被包含的关键字:

aliases 邮件别名;passwd 系统用户;group 用户组;shadow 隐蔽口令;hosts 主机名和IP地址;networks网络名称及号码;protocols 网络协议;services端口号码和服务名称;ethers 以太网号码;rpc 远程进程调用的名称和号码;netgroup 网内组。

7. /etc/services

/etc/services中包含了服务名和端口号之间的映射,不少系统程序要使用这个文件。

二、常用的网络服务命令简单使用

1. ifconfig

功能:

显示网络接口的配置信息

激活/禁用某个网络接口

配置网络接口IP地址

格式:

# ifconfig[<接口名>]

# ifconfig<接口名>(up/down)

# ifconfig<接口名>ip地址netmask子网掩码

实例:

(1) # ifconfig

(2) # ifconfig eth0

(3) # ifconfig-a显示所有接口的配置住处

(4) # ifconfig eth0 down

(5) # ifconfig eth0 192.168.3.3 netmask255.255.255.0配置的地址立即生效,但重启网络服务或主机,都会失效

(6) # ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255

(7) # ifconfig eth0 hw ether00:AA:BB:CC:DD:EE修改MAC地址

(8) # 启用和关闭ARP协议

ifconfig eth0 arp

ifconfig eth0 -arp

(9) # ifconfig eth0 mtu 1500设置最大传输单元

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

网络设备可以别名:

eth0

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

配置方法:

ifconfigethX:X IP/NETMASK

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

DEVICE=ethX:X

2. ifup

功能:激活网络接口。

格式: ifup <设备名>

实例: # ifupeth0

3. ifdown

功能:禁用网络接口。

格式:ifdown <设备名>

实例:# ifdown eth0

4.

功能:向目标主机发送icmp数据包(检测网络)

格式: [-nqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范 本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]

参数:

-d 使用Socket的SO_DEBUG功能

-c<完成次数>   设置完成要求回应的次数
-f   极限检测
-i<间隔秒数>   指定收发信息的间隔时间
-I<网络界面>   使用指定的网络界面送出数据包
-l<前置载入>   设置在送出要求信息之前,先行发出的数据包
-n   只输出数值
-p<范本样式>   设置填满数据包的范本样式
-q   不显示指令执行过程,开头和结尾的相关信息除外
-r   忽略普通的Routing Table,直接将数据包送到远端主机上
-R   记录路由过程
-s<数据包大小>  设置数据包的大小
-t<存活数值>   设置存活数值TTL的大小
-v   详细显示指令的执行过程

实例:

ping 192.168.1.1

ping -c 10 ping指定次数

ping -c 10 -i 0.5 192.168.1.1ping指定次数和时间间隔

ping -b 192.168.1.1ping网关

ping -i 3 -s1024 -t 255 192.168.120.206#-i 3 发送周期为 3秒 -s 设置发送包的大小为1024 -t 设置TTL值为 255

5. netstat

功能:用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况

格式:# netstat[参数]

参数:

-a或–all 显示所有连线中的Socket

-A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址

-c或–continuous 持续列出网络状态

-C或–cache 显示路由器配置的快取信息

-e或–extend 显示网络其他相关信息

-F或–fib 显示FIB

-g或–groups 显示多重广播功能群组组员名单

-h或–help 在线帮助

-i或–interfaces 显示网络界面信息表单

-l或–listening 显示监控中的服务器的Socket

-M或–masquerade 显示伪装的网络连线

-n或–numeric 直接使用IP地址,而不通过域名服务器

-N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称

-o或–timers 显示计时器

-p或–programs 显示正在使用Socket的程序识别码和程序名称

-r或–route 显示Routing Table

-s或–statistice 显示网络工作信息统计表

-t或–tcp 显示TCP传输协议的连线状况

-u或–udp 显示UDP传输协议的连线状况

-v或–verbose 显示指令执行过程

-V或–version 显示版本信息

-w或–raw 显示RAW传输协议的连线状况

-x或–unix 此参数的效果和指定”-A unix”参数相同

–ip或–inet 此参数的效果和指定”-A inet”参数相同

实例:

#netstat

#netstat -i#显示网卡列表

#netstat -r#显示关于路由表的信息

#netstat -s#显示网络统计信息

#netstat -nt#显示当前TDP连接状况

#netstat -ant#显示TDP端口号的使用情况

#netstat -nr

#netstat -lpe

#netstat -an

#netstat -ntlp

#netstat -nat | grep "192.168.120.20:16067" |awk '{print $5}'|awk -F: '{print $4}'|sort|uniq -c|sort -nr|head -10#查看连接某服务端口最多的前10个IP地址

#netstat -a| awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'#统计机器中网络连接各个状态个数

状态说明:

LISTEN:侦听来自远方的TCP端口的连接请求

SYN-SENT:再发送连接请求后等待匹配的连接请求(如果有大量这样的状态包,检查是否中招了)

SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认(如有大量此状态,估计被flood***了)

ESTABLISHED:代表一个打开的连接

FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认

FIN-WAIT-2:从远程TCP等待连接中断请求

CLOSE-WAIT:等待从本地用户发来的连接中断请求

CLOSING:等待远程TCP对连接中断的确认

LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认(不是什么好东西,此项出现,检查是否被***)

TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认

CLOSED:没有任何连接状态

6. traceroute

功能:跟踪路由

实例:

# traceroute

# traceroute -n #显示IP地址,不查主机名

7. hostname

功能:显示主机名

实例:#hostname

8. route

功能:

(1) 显示路由表-n以数字方式显示各主机或端口等相关信息

(2) 添加路由add

(3) 删除路由del

参数:

-c 显示更多信息

-n 不解析名字

-v 显示详细的处理信息

-F 显示发送信息

-C 显示路由缓存

-f 清除所有网关入口的路由表。

-p 与 add命令一起使用时使路由具有永久性

add:添加一条新路由。

del:删除一条路由

-host: 主机路由

-net: 网络路由

实例:

(1)#route(显示当前系统的路由表信息)

(2)#route add –net 192.168.0.0/24deveth0

(3)#route add –host192.168.3.2deveth1

(4)#route add –host192.168.1.3gw 192.168.1.1

(5)#route add –net192.168.3.0netmask 255.255.255.0gw 192.168.3.1

(6)#route adddefaultgw192.168.0.1

(7)#route del –host 192.168.3.2. dev eth1

(8)#route del –net192.168.0.0/24dev eth0

(9)#route del defaultgw 192.168.0.1

(10) #route add -net 224.0.0.0 netmask240.0.0.0 reject#屏蔽一条路由

(11) #route del -net 224.0.0.0 netmask240.0.0.0 reject#删除路由记录

PS:添加永久路由的方法

方法一:

vi /etc/sysconfig/network-scripts/route-eth0

加入如下内容:

172.16.1.0/24 via 192.168.1.1

就算重启网络服务和服务器重启了也会生效!

方法二:

vi /etc/sysconfig/static-route

加入如下内容:

any net 172.16.1.0/24 gw 192.168.1.1

方法三:

vi /etc/rc.local

加入如下内容:

route add -net 172.16.1.0/24 gw 192.168.1.1

PS: 方法一推荐生产环境使用

方法三重启网络后不会生效,但是重启后会生效!

9. ip

功能:设置或查看网卡的各种属性

link: 网络接口属性

addr: 协议地址

route: 路由

add,change,show,flush,replace

实例:

link

ip -slink show

iplink set DEV {up|down}

addr

ipaddr add ADDRESS dev DEV

ipaddr del ADDRESS dev DEV

ipaddr show dev DEV to PREFIX

ipaddr flush dev DEV to PREFIX

ip addr add 192.168.100.1/24 dev eth1 labeleth1:0

ip route add to 10.0.1.0/24dev eth1 via 192.168.100.6

10. arp

功能:维护arp地址表

实例:

(1)#arp (显示arp地址表)

(2)#arp –s192.168.3.100:60:08:27:ce:b2(向arp地址表中添加记录)

(3)#arp –d192.168.3.1(删除arp地址表的记录)

(4)#arp-f (从/etc/ethers文件中读取添加的记录)

11. ss

功能:用来获取socket统计信息,它可以显示和netstat类似的内容

命令参数:

-h, --help帮助信息

-V, --version 程序版本信息

-n, --numeric 不解析服务名称

-r, --resolve解析主机名

-a, --all 显示所有套接字(sockets

-l, --listening 显示监听状态的套接字(sockets

-o, --options显示计时器信息

-e, --extended显示详细的套接字(sockets)信息

-m, --memory显示套接字(socket)的内存使用情况

-p, --processes 显示使用套接字(socket)的进程

-i, --info 显示 TCP内部信息

-s, --summary 显示套接字(socket)使用概况

-4, --ipv4仅显示IPv4的套接字(sockets

-6, --ipv6仅显示IPv6的套接字(sockets

-0, --packet显示 PACKET 套接字(socket

-t, --tcp 仅显示 TCP套接字(sockets

-u, --udp 仅显示 UCP套接字(sockets

-d, --dccp 仅显示 DCCP套接字(sockets

-w, --raw 仅显示 RAW套接字(sockets

-x, --unix 仅显示 Unix套接字(sockets

-f, --family=FAMILY显示 FAMILY类型的套接字(sockets),FAMILY可选,支持unix,inet, inet6, link, netlink

-A, --query=QUERY, --socket=QUERY

QUERY:= {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]

-D, --diag=FILE将原始TCP套接字(sockets)信息转储到文件

-F,--filter=FILE从文件中都去过滤器信息

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

实例:

#ss -t -a#显示TCP连接

#ss -l#列出所有打开的网络连接端口

#ss -lp | grep 80#找出打开套接字/端口应用程序

#ss -u -a#显示所有UDP Sockets

#ss -o stateestablished '( dport = :http or sport = :http )'#显示所有状态为Established的HTTP连接

#ss -4 state STATUE#用TCP 状态过滤Sockets

STATUE可以代表以下任何一个:

established

syn-sent

syn-recv

fin-wait-1

fin-wait-2

time-wait

closed

close-wait

last-ack

listen

closing

all : 所有以上状态

connected : 除了listen and closed的所有状态

synchronized :所有已连接的状态除了syn-sent

bucket : 显示状态为maintained as minisockets,如:time-wait和syn-recv.

big : 和bucket相反.

以上只是大概列出一些常用网络相关命令的简单用法,并没且给出命令的结果,给出命令结果的话估计要写N篇........................请读者朋友自行测试!

其它命令还有很多:如nslookup、dig、curl、wget、scp、nc、tcpdump等..............有时间再一一总结完善!!!!!!!!!!!!