測試遠程端口是否開放包括兩種方法:
一、 命令行的形式
二、代碼
先參考我的博客 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測試。
