ssh 隧道 - 绑定:无法分配请求的地址

Jos*_*phK 34 linux ssh tunnel

尝试创建一个socks (-D) ssh 隧道 - Linux 盒到 Linux 盒(都是 centos):

sshd 在远程端运行正常。

从本地机器我们做/看到这个:

ssh -D 1080 user@8.8.8.8.
user@8.8.8.8's password: 
bind: Cannot assign requested address
Run Code Online (Sandbox Code Playgroud)

(其中 8.8.8.8 实际上是我服务器的 IP,'user' 是我的真实用户名)

我在这个终端窗口中登录到远程端。我可以验证本地端口在此命令之前未被使用,然后在命令之后被 ssh 进程使用,通过:

netstat -lnp | grep 1080
Run Code Online (Sandbox Code Playgroud)

因此,与大多数带有此错误的 googled 响应不同,问题似乎不是环回接口分配。如果我尝试将此隧道与邮件客户端一起使用,本地端会允许尝试(没有“代理失败”错误),但不会返回任何数据/回复。

在远程端,我的 sshd_config 中确实有“PermitTunnel yes”(尽管“yes”应该是默认值,无论如何)。

想法或线索?

这是相关的调试输出

OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *

....

debug1: Authentication succeeded (password).
debug1: Local connections to LOCALHOST:1080 forwarded to remote address socks:0
debug1: Local forwarding listening on 127.0.0.1 port 1080.
debug1: channel 0: new [port listener]
debug1: Local forwarding listening on ::1 port 1080.
bind: Cannot assign requested address
debug1: channel 1: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.utf8
Run Code Online (Sandbox Code Playgroud)

其他线索:如果我在运行 Windows 的客户端上运行 Virtual Box,在那个盒子里打开一个带有腻子的隧道,那个隧道,到同一个远程服务器,工作。

仍然陌生”如果我使用直接在 Linux 客户端上运行的 Putty(用于 linux),它不起作用,即使这些设置是 Putty 设置的完全重复,这些设置在 Windows 上的 Virtual Box 上运行的 Putty 中有效客户端机器?? 有一些可疑的东西......仍在尝试尝试找出它是什么。

Fri*_*sen 61

在这里关闭循环。在这种情况下,答案是强制 ssh 客户端使用 ipv4。例如

ssh -4 -D 8081 user@8.8.8.8
Run Code Online (Sandbox Code Playgroud)

  • 是什么让你想到尝试“-4”的线索? (4认同)
  • 不必每次都指定 -4,假设所有 ssh 连接仅使用 IPv4 建立,将“AddressFamily inet”添加到您的 ssh_config 文件——每个用户在 ${HOME}/.ssh/ssh_config 或系统范围内/etc/ssh/ssh_config 中的所有用户 (3认同)
  • 请参阅 https://www.electricmonk.nl/log/2014/09/24/ssh-port-forwarding-bind-cannot-assign-requested-address/ 。线索是它侦听 ipv6:“debug1:在 ::1 端口 8080 上侦听本地转发。” (2认同)