在Ubuntu上使用OpenSSL检查端口是否开放,可以通过以下步骤进行:
打开终端:
在Ubuntu系统中,你可以通过快捷键 Ctrl + Alt + T
打开终端。
运行OpenSSL命令: 使用以下命令来检查指定主机的端口是否开放:
openssl s_client -connect hostname:port
其中,hostname
是你要检查的主机名或IP地址,port
是要检查的端口号。
例如,如果你想检查 www.example.com
的80端口是否开放,可以运行:
openssl s_client -connect www.example.com:80
分析输出:
如果连接成功,你会看到类似以下的输出:
CONNECTED(00000003)
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
...
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
...
verify return:1
depth=0 CN = www.example.com
verify return:1
---
Certificate chain
0 s:CN = www.example.com
i:C = US, O = Let's Encrypt, CN = R3
1 s:C = US, O = Let's Encrypt, CN = R3
i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
---
Server certificate
...
Subject:CN = www.example.com
Issuer:C = US, O = Let's Encrypt, CN = R3
...
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
...
SSL handshake has read 3547 bytes and written 430 bytes
Verification error: unable to get local issuer certificate
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 20 (unable to get local issuer certificate)
如果连接失败,你会看到类似以下的输出:
CONNECTED(00000003)
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
...
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
...
verify return:1
depth=0 CN = example.com
verify return:1
---
Certificate chain
0 s:CN = example.com
i:C = US, O = Let's Encrypt, CN = R3
1 s:C = US, O = Let's Encrypt, CN = R3
i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
---
Server certificate
...
Subject:CN = example.com
Issuer:C = US, O = Let's Encrypt, CN = R3
...
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
...
SSL handshake has read 3547 bytes and written 430 bytes
Verification error: unable to get local issuer certificate
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 20 (unable to get local issuer certificate)
注意:verify return:20
表示证书验证失败,但这并不一定意味着端口未开放。
如果你更喜欢使用图形界面或命令行工具,可以使用 nmap
来检查端口:
安装nmap:
sudo apt update
sudo apt install nmap
运行nmap命令:
nmap -p port hostname
其中,port
是要检查的端口号,hostname
是目标主机名或IP地址。
例如,检查 www.example.com
的80端口:
nmap -p 80 www.example.com
分析输出:
nmap
会显示目标主机的端口状态,例如:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-05 12:34 UTC
Nmap scan report for www.example.com (93.184.216.34)
Host is up (0.0010s latency).
PORT STATE SERVICE
80/tcp open http
通过以上方法,你可以轻松地在Ubuntu上使用OpenSSL或nmap检查端口是否开放。