网络相关命令及流量场景设置(八)

一 ping原理

  简单地说,ping就是给目标IP地址发送一个 ICMP 回显请求,并要求对方返回一个 ICMP 回显应答来确定两台网络机器是否连通,时延是多少。
在这里插入图片描述
  在ICMP逐层封装的过程中,需要知道源IP、源MAC地址、目的IP、目的MAC地址,前三者是已知的,只需要获取目的MAC地址即可:若在同一网段,只需要发送ARP广播;若不在同一网段,发送ARP广播给交换机,交换机若没有缓存目的IP对应的MAC地址,它会再转发该ARP广播包。
  Ping 能显示TTL(Time To Live存在时间)值,可以通过TTL值推算一下数据包已经通过了多少个路由器:源地点TTL起始值(就是比返回TTL略大的一个2的乘方数)-返回时TTL值。例如,返回TTL值为119,那么可以推算数据报离开源地址的TTL起始值为128,而源地点到目标地点要通过9个路由器网段(128-119);如果返回TTL值为246,TTL起始值就是256,源地点到目标地点要通过9个路由器网段。
  通过Ping检测网络故障的典型次序
  正常情况下,当你使用Ping命令来查找问题所在或检验网络运行情况时,你需要使用许多Ping命令,如果所有都运行正确,你就可以相信基本的连通性和配置参数没有问题;如果某些Ping命令出现运行故障,它也可以指明到何处去查找问题。下面就给出一个典型的检测次序及对应的可能故障:
  ping 127.0.0.1–这个Ping命令被送到本地计算机的IP软件,该命令永不退出该计算机。如果没有做到这一点,就表示TCP/IP的安装或运行存在某些最基本的问题。
  ping 本机IP–这个命令被送到你计算机所配置的IP地址,你的计算机始终都应该对该Ping命令作出应答,如果没有,则表示本地配置或安装存在问题。出现此问题时,局域网用户请断开网络电缆,然后重新发送该命令。如果网线断开后本命令正确,则表示另一台计算机可能配置了相同的IP地址。
  ping 局域网内其他IP–这个命令应该离开你的计算机,经过网卡及网络电缆到达其他计算机,再返回。收到回送应答表明本地网络中的网卡和载体运行正确。但如果收到0个回送应答,那么表示子网掩码(进行子网分割时,将IP地址的网络部分与主机部分分开的代码)不正确或网卡配置错误或电缆系统有问题。
  ping 网关IP–这个命令如果应答正确,表示局域网中的网关路由器正在运行并能够作出应答。
  ping 远程IP–如果收到4个应答,表示成功的使用了缺省网关。对于拨号上网用户则表示能够成功的访问Internet(但不排除ISP的DNS会有问题)。
ping localhost–localhost是个作系统的网络保留名,它是127.0.0.1的别名,每太计算机都应该能够将该名字转换成该地址。如果没有做到这一带内,则表示主机文件(/Windows/host)中存在问题。
  ping www.yahoo.com–对这个域名执行Pin … 地址,通常是通过DNS 服务器如果这里出现故障,则表示DNS服务器的IP地址配置不正确或DNS服务器有故障(对于拨号上网用户,某些ISP已经不需要设置DNS服务器了)。顺便说一句:你也可以利用该命令实现域名对IP地址的转换功能。
如果上面所列出的所有Ping命令都能正常运行,那么你对你的计算机进行本地和远程通信的功能基本上就可以放心了。但是,这些命令的成功并不表示你所有的网络配置都没有问题,例如,某些子网掩码错误就可能无法用这些方法检测到。
  Ping命令的常用参数选项
  ping IP -t–连续对IP地址执行Ping命令,直到被用户以Ctrl+C中断。
  ping IP -l 2000–指定Ping命令中的数据长度为2000字节,而不是缺省的32字节。
  ping IP -n–执行特定次数的Ping命令。

二 netstat

  netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。

1 常用命令参数

usage: netstat [-veenNcCF] [<Af>] -r         netstat {-V|--version|-h|--help}
       netstat [-vnNcaeol] [<Socket> ...]
       netstat { [-veenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s } [delay]
 
        -r, --route                display routing table
        -I, --interfaces=<Iface>   display interface table for <Iface>
        -i, --interfaces           display interface table
        -g, --groups               display multicast group memberships
        -s, --statistics           display networking statistics (like SNMP)
        -M, --masquerade           display masqueraded connections
 
        -v, --verbose              be verbose
        -n, --numeric              don't resolve names
        --numeric-hosts            don't resolve host names
        --numeric-ports            don't resolve port names
        --numeric-users            don't resolve user names
        -N, --symbolic             resolve hardware names
        -e, --extend               display other/more information
        -p, --programs             display PID/Program name for sockets
        -c, --continuous           continuous listing
 
        -l, --listening            display listening server sockets
        -a, --all, --listening     display all sockets (default: connected)
        -o, --timers               display timers
        -F, --fib                  display Forwarding Information Base (default)
        -C, --cache                display routing cache instead of FIB
        -T, --notrim               stop trimming long addresses
        -Z, --context              display SELinux security context for sockets
<Iface>: Name of interface to monitor/list.
<Socket>={-t|--tcp} {-u|--udp} {-S|--sctp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom
<AF>=Use '-A <af>' or '--<af>'; default: inet
List of possible address families (which support routing):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)

  -a(all):表示列出所有的连接,服务监听,Socket资料;
  -n(port number):, 用端口号来显示;
  -l(listening):列出当前监听服务;
  -p(program):列出服务程序的PID。

2 状态说明

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:没有任何连接状态

3 查看TCP系统缓存

  netstat -natp

4 查看TCP网络连接状态

  查看tcp网络连接状态:netstat -n|awk ‘/^tcp/’

5 查看并发连接数

  使用以下命令即可分组查看各种连接状态:

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(处理完毕,等待超时结束的请求数)

  使用这上面的命令是可以查看服务器的种连接状态,其中ESTABLISHED就是并发连接状态的显示数的了。如果你不想查看到这么多连接状态,而仅仅只是想查看并发连接数,可以简化一下命令,即:

netstat -nat|grep ESTABLISHED|wc -l

  返回:712,这个返回的数字就是当前并发的连接数的了。

三 nslookup(dns域名解析)

  nslookup可以指定查询的类型,可以查到DNS记录的生存时间还可以指定使用哪个DNS服务器进行解释。在已安装TCP/IP协议的电脑上面均可以使用这个命令。主要用来诊断域名系统 (DNS) 基础结构的信息。nslookup(name server lookup)(域名查询):是一个用于查询 Internet域名信息或诊断DNS 服务器问题的工具。
  nslookup是一个程序的名字,这个程序让因特网服务器管理员或任何的计算机用户输入一个主机名(举例来说,“whatis.com.cn”)并发现相应的IP地址。它也会相反的名字查找为一个你指定的 IP 住址找出主机名。
  举例,如果使用者输入了“whatis.com.cn”(TechTarget中国站点之一),将会接受该网站的IP地址作为回应,是: 65.214.43.37或如果你输入了“65.214.43.37”,它会返回“sites.techtarget.com.cn”。
  重启网络服务:sudo /etc/init.d/networking restart

四 ifconfig

  ifconfig,打印出网卡信息,一般电脑上的网卡为有线网卡和无线网卡,以及本路回环地址:lo信息。

[sunjimeng@localhost ~]$ ifconfig                   //连接到有线网时的参数
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500                //mtu表示最大传输单元
        inet 192.168.117.128  netmask 255.255.255.0  broadcast 192.168.117.255
        inet6 fe80::20c:29ff:fe4d:a3cc  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:4d:a3:cc  txqueuelen 1000  (Ethernet)
        RX packets 1969  bytes 181974 (177.7 KiB)
        RX errors 0  dropped 36  overruns 0  frame 0
        TX packets 48  bytes 6324 (6.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 3590  bytes 310452 (303.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3590  bytes 310452 (303.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

  打开或关闭网卡:

$ ifconfig eno16777736 down
$ ifconfig eno16777736 up

  ifconfig -a无论是否激活,显示所有配置的网络接口,不带参数的只显示已激活的网络接口。
  IPConfig实用程序和它的等价图形用户界面——Windows 95/98中的WinIPCfg可用于显示当前的TCP/IP配置的设置值。这些信息一般用来检验人工配置的TCP/IP设置是否正确。但是,如果你的计算机和所在的局域网使用了动态主机配置协议(Dynamic Host Configuration Protocol,DHCP–Windows NT下的一种把较少的IP地址分配给较多主机使用的协议,类似于拨号上网的动态IP分配),这个程序所显示的信息也许更加实用。这时,IPConfig可以让你了解你的计算机是否成功的租用到一个IP地址,如果租用到则可以了解它目前分配到的是什么地址。了解计算机当前的IP地址、子网掩码和缺省网关实际上是进行测试和故障分析的必要项目。
  最常用的选项:
  ipconfig–当使用IPConfig时不带任何参数选项,那么它为每个已经配置了的接口显示IP地址、子网掩码和缺省网关值
  ipconfig /all–当使用all选项时,IPConfig能为DNS和WINS服务器显示它已配置且所要使用的附加信息(如IP地址等),并且显示内置于本地网卡中的物理地址(MAC)。如果IP地址是从DHCP服务器租用的,IPConfig将显示DHCP服务器的IP地址和租用地址预计失效的日期(有关DHCP服务器的相关内容请详见其他有关NT服务器的书籍或询问你的网管),其输出信息见图6的下半部分。
  ipconfig /release和ipconfig /renew–这是两个附加选项,只能在向DHCP服务器租用其IP地址的计算机上起作用。如果你输入ipconfig /release,那么所有接口的租用IP地址便重新交付给DHCP服务器(归还IP地址)。如果你输入ipconfig /renew,那么本地计算机便设法与DHCP服务器取得联系,并租用一个IP地址。请注意,大多数情况下网卡将被重新赋予和以前所赋予的相同的IP地址。
  如果你使用的是Windows 95/98,那么你应该更习惯使用winipcfg而不是ipconfig,因为它是一个图形用户界面,而且所显示的信息与ipconfig相同,并且也提供发布和更新动态IP地址的选项如果你购买了Windows NT Resource Kit(NT资源包),那么Windows NT也包含了一个图形替代界面,该实用程序的名字是wntipcfg,和Windows 95/98的winipcfg类似。

五 连接无线网络

  启动无线网卡:ifconfig wlan0 up
  扫描附近的无线路由器:iwlist wlan0 scanning
  连接路由器:wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa.conf
  动态获取 ip:udhcpc -i wlan0

六 查看端口占用

  Linux
  lsof -i:portnetstat -tunlp|grep port
  Windows

netstat -ano|findstr "80"  #找出80号端口被哪个进程占用,比如是被pid为1688的进程占用
tasklist | findstr "1688"  #查看pid为1688的进程是哪个
#结束该进程:在任务管理器中选中该进程点击”结束进程“按钮,或者是在cmd的命令窗口中输入
taskkill /f /t /im Tencentdl.exe。

七 测试用Linux IP阻隔模拟断网方法

  在服务器上进行如下命令操作进行规则设置即可:#iptables -A INPUT -s ip段/网络位数 -j DROP;例如:禁止172.0.0.1/24网段访问服务器,直接在服务器上用命令就可以实现,#iptables -A INPUT -s 172.0.0.1/24 -j DROP(添加规则,所有来自这个网段的数据都丢弃),然后保存规则:iptables -S
  也可以通过命令禁止某指定IP访问,例如禁止172.0.0.2,输入:iptables -A INPUT -s 172.0.0.2 -j DROP,然后保存规则iptables –S即可。
  测试后若需恢复访问,请输入命令:iptables –A INPUT –s XX.XX.XX.XX/XX -j ACCEPT;或者直接删除所有规则:iptables –F,保存规则:iptables –S
  若只需删除某条规则,可先查看所有规则命令:iptables –L
  输入删除不需要的规则:iptables –D INPUT X(X为规则序号);保存规则即可:iptables –S

八 ARP(地址转换协议)

  ARP 用于确定对应IP地址的网卡物理地址。arp 命令能够查看本地计算机或另一台计算机的ARP高速缓存中的当前内容。此外,可以用人工方式输入静态的网卡物理/IP地址对,使用这种方式为缺省网关和本地服务器等常用主机进行这项作,有助于减少网络上的信息量。
  按照缺省设置,ARP高速缓存中的项目是动态的,每当发送一个指定地点的数据报且高速缓存中不存在当前项目时,ARP便会自动添加该项目。一旦高速缓存的项目被输入,它们就已经开始走向失效状态。例如,在Windows NT网络中,如果输入项目后不进一步使用,物理/IP地址对就会在2至10分钟内失效。因此,如果ARP高速缓存中项目很少或根本没有时,请不要奇怪,通过另一台计算机或路由器的 ping 命令即可添加。所以,需要通过arp命令查看高速缓存中的内容时,请最好先 ping 此台计算机(不能是本机发送ping命令)。
常用命令选项:
  arp -aarp -g 用于查看高速缓存中的所有项目。-a-g 参数的结果是一样的,多年来 -g 一直是UNIX平台上用来显示ARP高速缓存中所有项目的选项,而Windows用的是 arp -a,但它也可以接受比较传统的-g选项。
  arp -a IP 显示与该接口相关的ARP缓存项目。
  arp -s IP mac 向ARP高速缓存中人工输入一个静态项目。该项目在计算机引导过程中将保持有效状态,或者在出现错误时,人工配置的物理地址将自动更新该项目。
  arp -d IP 删除一个静态项目。

九 Tracert

  当数据报从你的计算机经过多个网关传送到目的地时,Tracert命令可以用来跟踪数据报使用的路由(路径)。该实用程序跟踪的路径是源计算机到目的地的一条路径,不能保证或认为数据报总遵循这个路径。如果你的配置使用DNS,那么你常常会从所产生的应答中得到城市、地址和常见通信公司的名字。Tracert是一个运行得比较慢的命令(如果你指定的目标地址比较远),每个路由器你大约需要给它15秒钟
  Tracert的使用很简单,只需要在tracert后面跟一个IP地址或URL,Tracert会进行相应的域名转换的。Tracert一般用来检测故障的位置,你可以用tracert IP在哪个环节上出了问题,虽然还是没有确定是什么问题,但它已经告诉了我们问题所在的地方,你也就可以很有把握的告诉别人——某某出了问题。

十 Route

  多数主机一般都是驻留在只连接一台路由器的网段上。由于只有一台路由器,因此不存在使用哪一台路由器将数据报发表到远程计算机上去的问题,该路由器的IP地址可作为该网段上所有计算机的缺省网关来输入。
  但是,当网络上拥有两个或多个路由器时,你就不一定想只依赖缺省网关了。实际上你可能想让你的某些远程IP地址通过某个特定的路由器来传递,而其他的远程IP则通过另一个路由器来传递。
  在这种情况下,你需要相应的路由信息,这些信息储存在路由表中,每个主机和每个路由器都配有自己独一无二的路由表。大多数路由器使用专门的路由协议来交换和动态更新路由器之间的路由表。但在有些情况下,必须人工将项目添加到路由器和主机上的路由表中。Route就是用来显示、人工添加和修改路由表项目的。
  一般使用选项:
  route print–本命令用于显示路由表中的当前项目,在单路由器网段上的输出结果如图12,由于用IP地址配置了网卡,因此所有的这些项目都是自动添加的。
  route add–使用本命令,可以将信路由项目添加给路由表。例如,如果要设定一个到目的网络209.98.32.33的路由,其间要经过5个路由器网段,首先要经过本地网络上的一个路由器,器IP为202.96.123.5,子网掩码为255.255.255.224,那么你应该输入以下命令:
route add 209.98.32.33 mask 255.255.255.224 202.96.123.5 metric 5
  route change–你可以使用本命令来修改数据的传输路由,不过,你不能使用本命令来改变数据的目的地。下面这个例子可以将数据的路由改到另一个路由器,它采用一条包含3个网段的更直的路径:
  route add 209.98.32.33 mask 255.255.255.224 202.96.123.250 metric 3
route delete–使用本命令可以从路由表中删除路由。例如:route delete 209.98.32.33

十一 NBTStat

  NBTStat(TCP/IP上的NetBIOS统计数据)实用程序用于提供关于关于NetBIOS的统计数据。运用NetBIOS,你可以查看本地计算机或远程计算机上的NetBIOS名字表格。
  常用选项:
  nbtstat -n–显示寄存在本地的名字和服务程序
  nbtstat -c–本命令用于显示NetBIOS名字高速缓存的内容。NetBIOS名字高速缓存用于寸放与本计算机最近进行通信的其他计算机的NetBIOS名字和IP地址对。
  nbtstat -r–本命令用于清除和重新加载NetBIOS名字高速缓存。
  nbtstat -a IP–通过IP显示另一台计算机的物理地址和名字列表,你所显示的内容就像对方计算机自己运行nbtstat -n一样
  nbtstat -s IP–显示实用其IP地址的另一台计算机的NetBIOS连接表。

十二 Net

  Net命令有很多函数用于实用和核查计算机之间的NetBIOS连接。这里我只介绍最常用的两个:net view和net use。
  net view UNC–运用此命令,你可以查看目标服务器上的共享点名字。任何局域网里的人都可以发出此命令,而且不需要提供用户ID或口令。UNC名字总是以\开头,后面跟随目标计算机的名字。例如,net view \lx就是查看主机名为lx的计算机的共享点(见图15)。
  net use 本地盘符目标计算机共享点——本命令用于建立或取消到达特定共享点的映像驱动器的连接(如果需要,你必须提供用户ID或口令)。例如,你输入net use f: \lxmp3就是将映像驱动器F:连接到\lxmp3共享点上,今后你直接访问F:就可以访问\lxmp3共享点,这和你右击“我的电脑”选择映射网络驱动器类似。

十三 如何测试端口通不通(四种方法)

  本节内容来自这里
  用python打开一个http服务器:python -m http.server 9999

1 telnet

2 ssh

  用法:ssh -v -p port username@ip-v:调试模式(会打印日志);-p:指定端口;username:可以随意。

3 使用wget判断

  wget 是linux下的下载工具,需要先安装。用法:wget ip:port

4 使用端口扫描工具

[root@localhost ~]# nmap ... -p 
Starting Nmap . ( http://nmap.org ) at -- : CST
Nmap scan report for ...
Host is up (.s latency).
PORT STATE SERVICE
/tcp closed http
MAC Address: B:A::CF:FD:D (Unknown)
Nmap done: IP address ( host up) scanned in . seconds
[root@localhost ~]# nmap ... -p 
Starting Nmap . ( http://nmap.org ) at -- : CST
Nmap scan report for ...
Host is up (.s latency).
PORT STATE SERVICE
/tcp open http-proxy
MAC Address: B:A::CF:FD:D (Unknown)
Nmap done: IP address ( host up) scanned in . seconds
[root@localhost ~]# nmap ...
Starting Nmap . ( http://nmap.org ) at -- : CST
Nmap scan report for ...
Host is up (.s latency).
Not shown: closed ports
PORT STATE SERVICE
/tcp open ssh
/tcp open rpcbind
/tcp open http-proxy
/tcp open unknown
MAC Address: B:A::CF:FD:D (Unknown)
Nmap done: IP address ( host up) scanned in . seconds
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值