在平时使用中,当测试服务器端口是否开通时,我们首先想到的是Telnet,如下:
[root@k8s-master01 ~]# telnet 192.168.1.33 6443
Trying 192.168.1.33...
Connected to 192.168.1.33.
Escape character is '^]'.
但是实际生产环境可能不允许我们使用Telnet工具,此时我们只能使用其他工具进行测试端口是否开通。除Telnet工具外,支持测试端口开通的工具有Curl、SSH、nc、wget、nmap。
命令格式:
$ curl ip:port
成功示例说明:
lckd@lckd-PC:~$ curl 192.168.210.27:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
失败示例说明:
lckd@lckd-PC:~$ curl 192.168.210.27:8081
curl: (7) Failed to connect to 192.168.210.27 port 8081: 拒绝连接
命令格式:
$ ssh -v -p port username@ip
上面参数说明:
-v: 是 ssh 命令的一个选项,用于启用详细输出模式(verbose mode)--p port: 是 ssh 命令的另一个选项,用于指定连接远程服务器时要使用的端口号username: 要连接到远程服务器的用户名ip: 是远程服务器的 IP 地址或主机名成功示例说明:
lckd@lckd-PC:~$ ssh -v -p 80 192.168.210.27
OpenSSH_7.9p1 Debian-1+dde, OpenSSL 1.1.1d 10 Sep 2019
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 192.168.210.27 [192.168.210.27] port 80.
debug1: Connection established.
debug1: identity file /home/lckd/.ssh/id_rsa type -1
debug1: identity file /home/lckd/.ssh/id_rsa-cert type -1
debug1: identity file /home/lckd/.ssh/id_dsa type -1
debug1: identity file /home/lckd/.ssh/id_dsa-cert type -1
debug1: identity file /home/lckd/.ssh/id_ecdsa type -1
debug1: identity file /home/lckd/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/lckd/.ssh/id_ed25519 type -1
debug1: identity file /home/lckd/.ssh/id_ed25519-cert type -1
debug1: identity file /home/lckd/.ssh/id_xmss type -1
debug1: identity file /home/lckd/.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.9p1 Debian-1+dde
debug1: ssh_exchange_identification: HTTP/1.1 400 Bad Request
debug1: ssh_exchange_identification: Server: nginx/1.18.0 (Ubuntu)
debug1: ssh_exchange_identification: Date: Wed, 15 Nov 2023 06:10:29 GMT
debug1: ssh_exchange_identification: Content-Type: text/html
debug1: ssh_exchange_identification: Content-Length: 166
debug1: ssh_exchange_identification: Connection: close
debug1: ssh_exchange_identification:
debug1: ssh_exchange_identification: <html>
debug1: ssh_exchange_identification: <head><title>400 Bad Request</title></head>
debug1: ssh_exchange_identification: <body>
debug1: ssh_exchange_identification: <center><h1>400 Bad Request</h1></center>
debug1: ssh_exchange_identification: <hr><center>nginx/1.18.0 (Ubuntu)</center>
debug1: ssh_exchange_identification: </body>
debug1: ssh_exchange_identification: </html>
ssh_exchange_identification: Connection closed by remote host
失败示例说明:
lckd@lckd-PC:~$ ssh -v -p 8081 192.168.210.27
OpenSSH_7.9p1 Debian-1+dde, OpenSSL 1.1.1d 10 Sep 2019
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 192.168.210.27 [192.168.210.27] port 8081.
debug1: connect to address 192.168.210.27 port 8081: Connection refused
ssh: connect to host 192.168.210.27 port 8081: Connection refused
命令格式:
$ nc -zv ip port
上面参数说明:
nc: 是用于在命令行中进行网络连接的工具,也称为 netcat。-v: 是 nc 命令的一个选项,用于启用详细输出模式(verbose mode)-z: 是 nc 命令的另一个选项,用于指示 nc 在连接成功后立即关闭连接,而不发送或接收任何数据。这使得 nc 仅用于测试连接,而不会执行实际数据传输。ip: 是远程服务器的 IP 地址或主机名port: 是远程服务器的端口号成功示例说明:
lckd@lckd-PC:~$ nc -zv 192.168.210.27 80
Connection to 192.168.210.27 80 port [tcp/http] succeeded!
失败示例说明:
lckd@lckd-PC:~$ nc -zv 192.168.210.27 8081
nc: connect to 192.168.210.27 port 8081 (tcp) failed: Connection refused
命令格式:
$ wget ip:port
成功示例说明:
lckd@lckd-PC:~$ wget 192.168.210.27:80
--2023-11-15 14:15:13-- http://192.168.210.27/
正在连接 192.168.210.27:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:612 [text/html]
正在保存至: “index.html.1”
index.html.1 100%[=================================================>] 612 --.-KB/s 用时 0s
2023-11-15 14:15:13 (124 MB/s) - 已保存 “index.html.1” [612/612])
失败示例说明:
lckd@lckd-PC:~$ wget 192.168.210.27:8081
--2023-11-15 14:15:51-- http://192.168.210.27:8081/
正在连接 192.168.210.27:8081... 失败:拒绝连接。
命令格式:
$ nmap -p port ip
如果没有,先下载。
成功示例说明:
lckd@lckd-PC:~$ nmap -p 80 192.168.210.27
Starting Nmap 7.70 ( https://nmap.org ) at 2023-11-15 14:18 CST
Nmap scan report for 192.168.210.27
Host is up (0.00027s latency).
PORT STATE SERVICE
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 6.53 seconds
失败示例说明:
lckd@lckd-PC:~$ nmap -p 8081 192.168.210.27
Starting Nmap 7.70 ( https://nmap.org ) at 2023-11-15 14:19 CST
Nmap scan report for 192.168.210.27
Host is up (0.00033s latency).
PORT STATE SERVICE
8081/tcp closed blackice-icecap
Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds