您能帮我了解如何列出“可用”ssh 隧道吗?我将描述我的意思:
我有两台主机“客户端”和“服务器”。现在客户端使用命令创建 SSH 连接:
ssh -v -L4000:127.0.0.1:4001 server
SSH客户端收到确认:
debug1: Local connections to LOCALHOST:4000 forwarded to remote address 127.0.0.1:4001
因此,尽管客户端尚未使用隧道,但隧道已建立。从服务器端,我如何检查这样的“隧道”是否已打开?
答案1
ssh -v -L4000:127.0.0.1:4001 server
当您运行此命令时,ssh
程序将在端口 4000 上侦听 TCP 连接。它不会立即通知远程服务器任何类型的隧道安排已到位。
当 ssh 程序在端口 4000 上收到连接时,它会发送一个“直接 TCPIP“向远程 SSH 服务器发送消息,指定 127.0.0.1 端口 4001 作为隧道的目标。届时,远程 SSH 服务器可以记录该请求或执行某种其他类型的通知。
当收到 direct-tcpip 消息时, OpenSSHsshd
程序看起来会记录一条调试级别的消息。仅当启用了调试输出时,您才会看到该消息。如果sshd
配置为拒绝端口转发请求,它将拒绝隧道请求并记录一条消息表明已这样做。