在 Bash for Windows (WSL) 上,我尝试使用以下命令创建 SSH 桥:
ssh -l ubuntu -L 15555:<ip1>:22 <ip2>
bind: Address already in use
但此时我收到错误:
Authenticated to <ip2> ([<ip2>]:22).
debug1: Local connections to LOCALHOST:15555 forwarded to remote address <ip1>:22
debug3: channel_setup_fwd_listener: type 2 wildcard 0 addr NULL
debug3: sock_set_v6only: set socket 4 IPV6_V6ONLY
debug1: Local forwarding listening on ::1 port 15555.
debug2: fd 4 setting O_NONBLOCK
debug3: fd 4 is O_NONBLOCK
debug1: channel 0: new [port listener]
debug1: Local forwarding listening on 127.0.0.1 port 15555.
bind: Address already in use
我在 Ubuntu 和 Cygwin 上尝试过同样的命令,并且成功了,但在 WSL 上就是无法运行。我还尝试过不同的端口,但都没有成功,而且在 netstat 上也没有发现任何可能导致此问题的原因。
知道可能是什么原因吗?
答案1
试试这个:
ssh -l ubuntu -L 127.0.0.1:15555:<ip1>:22 <ip2>
或这个:
ssh -l ubuntu -4 -L 15555:<ip1>:22 <ip2>
问题是它默认绑定到 IPv6 地址。这已被报告为错误这里并在 BashOnWindows build 14942 中解决。