网络基础知识部分:
网络配置文件
常用的网络服务命令简单使用
一、网络配置文件
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等..............有时间再一一总结完善!!!!!!!!!!!!