如何使用 socat 测试远程端口是否可达
How to test a remote port is reachable with socat
如何测试 socat 是否可以访问远程端口?
我们可以使用 netcat
nc -zv 192.168.1.15 22
如何使用 socat 做到这一点?
我认为手册页中的第一个示例会起作用
socat - TCP4:www.domain.org:80
对于您的示例,这将是(并添加 2 秒连接超时):
socat - TCP4:192.168.1.15:22,connect-timeout=2
响应将是 sshd 连接横幅(如果它正在监听)
SSH-2.0-OpenSSH_5.3
或
socat[12650] E connecting to AF=2 192.168.189.6:23: Connection timed out
由于 OP 请求等同于 -z
,因此以下 socat
命令将确保它不会等待输入,而只会检查端口是否正在侦听。
socat /dev/null TCP:remote:port
这可以在 Docker 环境中使用,尤其是在 alpine/socat
图像的健康检查中。这是一个示例,它为 smtp
服务设置转发器到 mailhog
服务并检查连接是否已建立
services:
smtp:
image: alpine/socat
command: tcp-listen:25,fork TCP:mailhog:1025
healthcheck: socat /dev/null TCP:mailhog:1025
如何测试 socat 是否可以访问远程端口?
我们可以使用 netcat
nc -zv 192.168.1.15 22
如何使用 socat 做到这一点?
我认为手册页中的第一个示例会起作用
socat - TCP4:www.domain.org:80
对于您的示例,这将是(并添加 2 秒连接超时):
socat - TCP4:192.168.1.15:22,connect-timeout=2
响应将是 sshd 连接横幅(如果它正在监听)
SSH-2.0-OpenSSH_5.3
或
socat[12650] E connecting to AF=2 192.168.189.6:23: Connection timed out
由于 OP 请求等同于 -z
,因此以下 socat
命令将确保它不会等待输入,而只会检查端口是否正在侦听。
socat /dev/null TCP:remote:port
这可以在 Docker 环境中使用,尤其是在 alpine/socat
图像的健康检查中。这是一个示例,它为 smtp
服务设置转发器到 mailhog
服务并检查连接是否已建立
services:
smtp:
image: alpine/socat
command: tcp-listen:25,fork TCP:mailhog:1025
healthcheck: socat /dev/null TCP:mailhog:1025