windows、Linux 测试服务器、电脑的某些个端口是否打开
测试远程端口是否开放包括两种方法:
一、 命令行的形式
二、代码
先参考我的博客 windows、Linux 开放端口
一、命令行的形式
两个命令:telnet、nc(netcat)
两种网络层协议:TCP、UDP
windows有telnet,只是默认没启动
windows10 配置telnet: http://www.xitongcheng.com/jiaocheng/win10_article_37554.html
windows7/8 server2008 配置telnet: https://jingyan.baidu.com/article/ae97a646b22fb6bbfd461d19.html
windows安装nc: https://blog.csdn.net/qq_37585545/article/details/82250984
下载:https://eternallybored.org/misc/netcat/
下载后,将nc的路径添加到环境变量Path中
centos/redhat 配置 telnet: sudo yum install telnet
ubuntu 配置 telnet: sudo apt install telnet
通常的Linux发行版中都带有NetCat(简称nc)
NetCat 官方地址:http://netcat.sourceforge.net/
centos/redhat 配置 nc: sudo yum install nc
ubuntu 配置 nc: sudo apt install nc
查看端口占用情况
Windows查看端口占用情况:https://jingyan.baidu.com/article/3c48dd34491d47e10be358b8.html
列出所有端口的情况: netstat -ano 查看被占用端口对应的PID,输入命令: netstat -aon|findstr "49157" 回车,记下最后一位数字,即PID,这里假设是2720。 继续输入 tasklist|findstr "2720" 回车,查看是哪个进程或者程序占用了2720端口
linux 查看端口占用情况:https://www.cnblogs.com/wangtao1993/p/6144183.html
lsof -i:端口号 用于查看某一端口的占用情况 netstat -tunlp |grep 端口号 用于查看指定的端口号的进程情况 如查看8000端口的情况: netstat -tunlp |grep 8000
远程端口是否打开测试
telnet的用法:
telnet只能测试TCP telnet SERVER_IP port example: telnet localhost 80
nc的用法:
nc测试TCP: nc -z SERVER_IP port example: nc -z 192.192.193.211 22 nc测试UDP nc -uz SERVER_IP port example: nc -uz 192.192.193.211 22
二、代码
python代码:
import socket ''' 这是多行注释,用三个单引号 该程序的功能是测试远程端口是否开放 python判断远程端口是否打开的方法 ssh默认端口 22 Windows远程登陆默认端口 3389 Oracle默认端口 1521 MySQL默认端口 3306 sqlserver默认端口 1433 ''' sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sk.settimeout(1) try: sk.connect(('192.192.193.211',8080)) print('Server port 8080 OK!') except Exception: print('Server port 8080 not connect!') sk.close()
windows10配置telnet
Win+R键调出 运行--》输入control,快速打开控制面板:
点击卸载程序,
点击启用或关闭Windows功能
在Telnet客户端打对勾,确定
测试是否启用Telnet, Win+R打开运行,输入cmd
在cmd中输入telnet测试。