我正在尝试在我的 Windows 机器上设置 SSH 隧道。由于 bash 是在 1607 年引入的,我不想再使用 cygwin 了。问题是 bash 总是返回错误消息:bind: Address already in use
。我使用的命令(在 cygwin 中有效)是:
ssh [email protected] -L 8022:173.22.0.1:22
我已经尝试使用很多不同的端口,但没有成功。我还尝试使用以下命令终止该端口上的所有内容:
lsof -ti:8022 | xargs kill -9
有人知道为什么我无法设置此隧道吗?我只想使用 cygwin,因为我现在在 Windows 中有一个集成的 bash。
我正在以管理员模式启动 bash。
答案1
如果其他人发现这个问题,有一个解决方法...你只需要用特定的绑定地址重新格式化隧道,如下所示:
ssh -L 127.0.0.1:8022:173.22.0.1:22 [email protected]
通过阅读其他答案中链接的错误列表,看起来问题出在 IPv6 子系统中,所以我猜测这是通过强制 IPv4 来实现的。
无论哪种方式,对我来说都是有效的,使用截至 2017 年 1 月 20 日完全更新的 Win 10 版本 1607 安装。
答案2
这是一个已知错误,可以在此处跟踪https://github.com/Microsoft/BashOnWindows/issues/739
另外,你可以尝试使用类似http://sshwindows.sourceforge.net/