前提条件:我们要把需要验证的服务器的防火墙关闭。
检查两个服务器是否连通,可以同ping或者telnet,但是它两是由区别的。
ping是测试网络连通性的,telnet是连接远程主机的一个方式。
它两之间没有必然的联系,可以ping通不代表可以telnet通,可以telnet通不代表可以ping通,一般情况telnet如果可以访问通代表可以访问某个服务器的端口,当然这两个服务器可以通信的。
注意:telnet 是访问网络端口用的,它可以判断出远程服务器端口是否可以被当前服务器访问,前提是远程服务器的端口必须被监听
。
我们可以Netcat 来让某个端口处于监听状态。
Netcat的使用:https://www.fujieace.com/linux/nc-2.html
Linux版本下载地址:https://nmap.org/ncat/
Windows版本下载地址:http://nmap.org/dist/ncat-portable-5.59BETA1.zip
我们以windos为例进行使用。
如果想在dos下直接用就把路劲配置道环境变量的path下,如果不想这么麻烦就直接在文件夹目录上属于 cmd 回车
## 在当前服务器上建立 TCP / UDP端口监听 ncat -l 1576 ## 在其他服务器上连接到TCP / UDP端口(因为这里我们只有一个服务器,所以还是在当前服务器上做的测试) ncat 127.0.0.1 1576 ## 如果另外一台服务器没有安装Netcat 可以通过telnet连接来测试端口的开通情况 telnet 127.0.0.1 1576 ## 查看所有端口情况 netstat -ano ## 第三步:查询1576宽口对应的进程号 注意,只要这一条中包含1576都会被查出来 netstat -ano|findstr 1576
注意:想要建立连接,端口一定要处于 listening状态
建立监听:ncat -l 1576
查看监听状态:netstat -ano|findstr 1576
建立连接:telnet 127.0.0.1 1576
查看状态:netstat -ano|findstr 1576
通过任务管理器或者,dos命令查看进程号对应的程序
两边可以互相通信(telnet连接):
两边可以互相通信(netcat连接):
我们使用netstat查看当前端口已经外网ip对当前端口的访问情况
## 第一步: 打开运行,输入cmd 回车 win+r ## 第二步:通过命令查看所有端口 netstat -ano ## 第三步:查询9000宽口对应的进程号,如果可以查找到数据,说明确实有程序占用了这个端口号 netstat -ano|findstr 9000 ## 第四步:查询出所有的进程 tasklist ## 第五步:查询出 9000 端口对应的进程号所对应的程序 tasklist|findstr 15372 ## 强制杀死进程 taskkill /pid 15372 -t -f
服务器版本:windows server 2012 R2
ncatstart.bat 文件
#1433,3306,7001,7002,7003 #63389,873,28950 #111,2049,39001,39002,39003,39004 ## 执行完毕以后,新开的窗口不会自动关闭 #start cmd /k echo Hello, World! ## 执行完毕以后,新开的窗口会自动关闭 #start cmd /C pause ##---------------------- start cmd /k call ncat -l 1433 start cmd /k call ncat -l 3306 start cmd /k call ncat -l 7001 start cmd /k call ncat -l 7002 start cmd /k call ncat -l 7003 start cmd /k call ncat -l 63389 start cmd /k call ncat -l 873 start cmd /k call ncat -l 28950 start cmd /k call ncat -l 111 start cmd /k call ncat -l 2049 start cmd /k call ncat -l 39001 start cmd /k call ncat -l 39002 start cmd /k call ncat -l 39003 start cmd /k call ncat -l 39004
执行后
在A服务器上开启端口监听
在B服务器上与A服务器建立TCP连接