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测试。

原文地址:https://www.cnblogs.com/zhangchao0515/p/10917369.html