使用Telnet检查服务器防火墙连通性
Posted Rolei_zl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Telnet检查服务器防火墙连通性相关的知识,希望对你有一定的参考价值。
- 需求
- 申请开通防火墙(TCP/UDP、客户端IP、服务器IP、服务端口),验证防火墙是否开通(客户端到服务器是否连通) - 分析
- Windows客户端使用
- IP,Port信息保存在txt文件中
- 使用telnet命令验证连通性 -- telnet host_IP host_Port
- 使用python实现 - 实现
1)检查客户端telnet命令
2)python调用telnet命令,检查客户端->服务器连通性## connect fail > telnet 127.0.0.1 8022 正在连接127.0.0.1...无法打开到主机的连接。 在端口 8022: 连接失败 如果window客户端telnet无法调用,参考如下步骤: 控制面板 -> 程序和功能 -> 启用或关闭Windows功能 -> 选中Telnet客户端 -> 确认后安装
- 安装python环境(自行安装,此处略)
- 引用telnet相关方法
- 客户端 -> 服务器连通性检查import telnetlib
> 从文件读入服务器地址信息:Host IP
> 从文件读入服务器访问端口:Host Port
> 执行telnet命令:telnet host_IP host_Portwith open(file_name,'r') as fp: flist = fp.readlines() # 读取所有文件 for f in flist: # 解析每一行数据 fl = f.split(" ") # 分解host_ip 和 host_port ip = fl[0] # host_ip port = fl[1] # host_port ########## 行数据特殊处理 # 当前空行,继续下一行数据 f = f.strip() if f == "": continue # host_ip 和 port之间只保留1个空格 while f.find(" ") != -1: f.replace(" "," ") # tab键(\\t)替换为1个空格 f = f.replace('\\t'," ") # 回车/换行(\\n, \\r)替换为空字符 f = f.replace('\\n','') f = f.replace('\\r','') # 同一IP多个port字符串,以“/”分隔不同的port port = port.split("/") for p in port: # telent命令执行,以p为端口
> 值判断并输出连通结果telnetlib.Telnet(ip, port) # 执行telnet命令 # 成功返回连通数据;失败返回异常信息
> 保存结果到文件try: telnetlib.Telnet(ip, port) # 连通正常,返回success print("Connect Success!") except: print("Connect Fail!") # 连通异常,返回fail
with open(file_name,"a") as fp: # 以增量方式添加结果到文件 fp.write(result_data + "\\n") ########## 文件特殊处理 # 每次执行生成不同文件,文件名区分,将文件名加入时间戳 timestamp import time timestamp = time.strftime("%Y%m%d%H%M%S",time.localtime()) file_name = file_name + "_" + timestamp + ".txt"
- 程序发布
1)安装 pyinstaller 工具
2)生成exe文件pip install pyinstaller
> CMD,进入代码py文件所在目录
> 执行pyinstaller命令生成exe文件
3)执行结果示例CMD > cd [path of file_name] > pyinstaller -F file_name.py # 生成file_name.exe
Blank Wrong Data: 127.0.1.2 Success: 127.0.1.2 80 Success: 127.0.1.2 80 Fail : 127.0.1.2 81 Fail : 127.0.1.2 82 Success: 192.168.1.1 80 Success: 127.0.0.1 80 Fail : 192.168.1.5 8080 Fail : 192.168.1.5 8080 Fail : 192.168.1.5 8080 Fail : 192.168.1.5 8080 Fail : 192.168.1.5 8080 Fail : 192.168.1.5 8080 Fail : 192.168.1.5 8080 Fail : 192.168.1.5 8080 Fail : 192.168.1.5 8080 #################################################### > Total count: 17 > Success IP: 4 > Fail IP: 11 > Wrong Data: 1 > Blank : 1
以上是关于使用Telnet检查服务器防火墙连通性的主要内容,如果未能解决你的问题,请参考以下文章