目? ? ? ? ? ? ? ? ?录
????????现在的软件应用系统非常多,很多软件系统现在基本都支持web,而web是必须有网络的。因此,在软件应用服务器部署好以后,如果Web客户端不能正常工作,我们可以很快解决自己软件的问题,但是碰到网络问题,就有点麻烦了。一般情况下,客户现场网络不是我们熟悉的,我们需要现场的IT工程师配合,而IT工程师对我们的软件又不熟悉。因此,就增加了解决问题的难度。
????????为了更好的解决问题,我们把网络问题分成如下5类:
????????同时我们自己要有一定的网络知识和工具,以便我们一步步的来排查,最后解决问题。
? ?这种问题比较好解决,IT工程师会解决。
? ?这种问题比较明显,容易解决。
? ?这种问题,IT工程师会解决,是他们份内的事情。
????????网络硬件没有问题,连接没有问题(ping的通),一些地址解析和代理也是正确的,剩下的就是网络端口方面的问题了。 网络端口问题一般有以下几种:
????????之所以说网络端口相关问题是比较复杂,是因为我们很难有一些有效的手段来判断、验证这些问题。当问题出现,最难的往往是我们不知道问题出在哪里?网络是通的,带宽是足够的,但是服务就是不起作用。碰到这种情况,很多新手往往会懵圈。
?????? 还有更让人崩溃的,本地可以正常使用,通过远程就不正常了。
?????? 网络我们不能随便动,更不能在上面做改动。我们若说是网络问题,那IT工程师会说:网络可以ping通,防火墙也按照你们要求开放了,网络没有问题,肯定是你们软件出了什么问题。碰到这种情况,现场工程师会感觉到怎么这么复杂?
?????? 因此,我们可以说在网络软件应用系统部署中,网络端口相关的问题,是最难解决的网络问题。
????????在应用层面,网络端口常见的一些问题通常有:
????????解决这些网络端口问题需要根据具体情况采取相应的措施。
????????但是,如何具体实施,需要我们掌握一定的工具和技巧,下一章节我们详细描述。
????????telnet是windows标准服务,可以直接用,若没有配置,只需要在安装配置中选择telnet客户端即可;如果是linux机器,需要安装telnet.
????????用法: telnet ip port
????????(1)先用telnet连接不存在的端口
????????说明端口8099是不通的。
????????(2)连接存在的端口
????????输入命令 telnet 123.23.22.11 22, 出现如下提示:
????????有ssh相关的信息提示,说明端口22是通的。
????????ssh是linux的标准配置并且最常用,也可以用来判断端口。在windows中也可以使用。
????????用法: ssh -v -p port username@ip
????????????????-v 调试模式(会打印日志).
????????????????-p 指定端口
????????????????username可以随意
????????或者
????????????????用法:ssh 地址 -p port
????????(1)连接不存在端口
????????说明端口2608是不通的。
????????(2)连接存在的端口
????????说明端口26088是通的。
????????wget是linux下的下载工具,需要先安装.
????????用法: wget ip:port
????????1)连接不存在的端口
????????说明端口8090是不通的。
????????2)连接存在的端口
????????说明端口22是通的。
????????????????端口扫描工具是一个强大的工具,若系统没有安装,可以手动安装。
????????????????(1)在centos上,采用命令:yum install nmap
????????????????(2)在Ubuntu上,采用命令: apt install nmap
? ? ? ? ????????下面我们具体做一下测试:
????????(1)扫描本机的端口
????????????????若要扫码本机从1到65000范围内使用的端口,采用命令
????????????????nmap -p 1-65000 localhost
????????????????结果如下图:
????????(2)扫描远程的端口
????????????????若要扫码远程主机(192.168.1.100)的,从1到65000范围内使用的端口,采用命令
????????????????nmap -p 1-65000 192.168.1.100
????????????????结果如下图:
????????因为UDP协议是无连接的,不需要通过握手建立连接,数据发送后,server端也不会返回确认信息。
????????因此,一般可以使用netcat检测,netcat功能非常强大,测试udp只是其中的一个功能应用。
????????有的linux机器上没有安装这个软件,需要手动安装。
????????(1)在centos上,采用命令:yum install netcat
????????(2)在Ubuntu上,采用命令: apt install netcat
????????在目标机器监听UDP端口port1, 在客户端机器向目标机器port1端口发送UDP数据报,看能否发送成功。发送成功,则表示可连通。
????????例如:
? ? ? ? (1)A机器上运行:
????????nc -ul 1080? 或:netcat -ul -p 1080
? ? ? ? // 使用udp模式监听1080 端口
????????(2)B机器上运行:
????????nc -u x.x.x.x 1080 或:netcat -u x.x.x.x 1080
? ? ? ? //使用udp模式向该ip的1080端口发送信息。
????????(3)检测出结果
????????在任意一边(比如:192.168.1.191)输入内容,另一边(比如:192.168.1.152)则会收到相应内容,以此就可以测试该端口的udp连接是否通常。
????????192.168.1.191监听1080端口,作为udp的服务端,可以收发数据,如下图:
????????192.168.1.152作为udp的客户端,可以收发数据,如下图: