Macos SSH-L连接成功,但本地主机端口转发不工作“;通道3:打开失败:连接失败:连接被拒绝;

Macos SSH-L连接成功,但本地主机端口转发不工作“;通道3:打开失败:连接失败:连接被拒绝;,macos,firefox,ssh,router,portforwarding,Macos,Firefox,Ssh,Router,Portforwarding,我的实验室在服务器上运行RStudio。几周前,在我表弟家,我成功地用ssh连接到服务器,并通过本地Firefox浏览器启动服务器端RStudio。现在,当我试图从家里(通过我自己的路由器)访问服务器RStudio时,它不起作用。我需要帮助排除故障,我猜是路由器出了问题。我正在运行MacOSX10.6.8。不知道大学服务器在运行什么,但我不认为这是服务器端问题 这是我第一次在表哥家做这件事时的工作原理:首先,我用VPN接入大学网络;然后通过端口转发调用SSH;然后我打开一个Firefox浏览器,

我的实验室在服务器上运行RStudio。几周前,在我表弟家,我成功地用ssh连接到服务器,并通过本地Firefox浏览器启动服务器端RStudio。现在,当我试图从家里(通过我自己的路由器)访问服务器RStudio时,它不起作用。我需要帮助排除故障,我猜是路由器出了问题。我正在运行MacOSX10.6.8。不知道大学服务器在运行什么,但我不认为这是服务器端问题

这是我第一次在表哥家做这件事时的工作原理:首先,我用VPN接入大学网络;然后通过端口转发调用SSH;然后我打开一个Firefox浏览器,连接到我的本地主机端口,它在服务器端打开RStudio,我可以通过本地浏览器窗口访问它

当我尝试从家庭网络登录时,我现在遇到的问题如下:

我可以成功建立VPN连接。我还可以使用以下命令成功设置SSH:
ssh-v-L 8783:localhost:8783myacct@server.com

下面是成功ssh命令的详细输出的最后几行:

debug1: Authentication succeeded (password).
debug1: Local connections to LOCALHOST:8783 forwarded to remote address localhost:8783
debug1: Local forwarding listening on 127.0.0.1 port 8783.
debug1: channel 0: new [port listener]
debug1: Local forwarding listening on ::1 port 8783.
debug1: channel 1: new [port listener]
debug1: channel 2: new [client-session]
debug1: Entering interactive session.
Last login: Mon Sep  2 04:02:40 2013 from vpnipaddress
因此,我认为我仍然在VPN和SSH阶段取得了成功(尽管我不知道为什么它说我最后一次登录是在9月2日,当时我已经登录了几次)

接下来,我打开Firefox,键入localhost:8783,没有通过浏览器窗口获取RStudio服务器应用程序,而是出现以下错误:

在Firefox浏览器窗口中,会显示:服务器未找到,Firefox在www.localhost.com上找不到服务器,请检查地址是否存在键入错误等

在终端窗口中,它显示:

debug1: Connection to port 8783 forwarding to localhost port 8783 requested.
debug1: channel 3: new [direct-tcpip]
channel 3: open failed: connect failed: Connection refused
debug1: channel 3: free: direct-tcpip: listening port 8783 for localhost port 8783, connect from 127.0.0.1 port 50420, nchannels 4
我不确定我做错了什么。自从上次成功连接后,我的笔记本电脑上没有任何变化。我在自己的路由器上(而不是我表弟的),所以我可能需要搞乱防火墙?我已经允许端口22和8783通过防火墙进入我的笔记本电脑(我甚至不确定我是否需要这样做)。帮忙

当您连接到本地系统上的端口8783时,该连接将通过ssh链接通过隧道传输到server.com上的ssh服务器。从那里,ssh服务器建立到本地主机端口8783的TCP连接,并在隧道连接和到隧道目标的连接之间中继数据


“连接被拒绝”错误来自server.com上的ssh服务器,当它尝试建立到隧道目标的TCP连接时。“连接被拒绝”表示连接尝试被拒绝。对拒绝的最简单解释是,在server.com上,没有任何东西在本地主机端口8783上侦听连接。换句话说,您试图通过隧道连接到的服务器软件没有运行,或者它正在运行,但没有在该端口上侦听。

发布此消息以帮助他人

症状:

channel 2: open failed: connect failed: Connection refused
debug1: channel 2: free: direct-tcpip:
   listening port 8890 for 169.254.76.1 port 8890,
   connect from ::1 port 52337 to ::1 port 8890, nchannels 8
我的情景;我不得不使用远程服务器作为堡垒主机来连接其他地方。最终目的地/目标:169.254.76.1,端口8890。通过具有公共ip的中间服务器:
ec2-54-162-180-7.compute-1.amazonaws.com

SSH本地端口转发命令:

ssh -i ~/keys/dev.tst -vnNT -L :8890:169.254.76.1:8890
glue@ec2-54-162-180-7.compute-1.amazonaws.com
问题是: 目标主机中的端口8890上没有服务绑定。我忘记开始服务了

我是如何排除故障的:

SSH进入bastion主机,然后执行curl


希望这有帮助。

我曾经遇到过类似的问题,因为当服务器重新启动网络服务时,“localhost”在服务器上不可用,例如“ifdown-a”,但后面只有“ifup-eo1”。除了服务器未侦听端口外,您还可以检查“localhost”是否可用


ps:发帖子只是希望有类似问题的人能从中受益。

当我想通过隧道建立vnc连接时,我遇到了这个问题。 但是vncserver没有运行。 我通过使用
vncserver:3

打开远程机器上的通道解决了这个问题。注意:
localhost
是使用本地(环回)网络接口的地址的主机名,
127.0.0.1
是其在中的IP(在IPv6中是
:1
0.0.0.0
是IPv4标准的“当前网络”IP地址

我在Docker设置中遇到了这个错误。我在外部服务器上运行了一个Docker容器,并且(正确地)将其端口映射为
127.0.0.1:9232:9232
。通过端口转发
ssh-remote-L 9232:127.0.0.1:9232
,我希望能够与
remote
服务器的端口
9232
通信,就像它是我自己的本地端口一样


原来Docker容器是在
127.0.0.1:9232
而不是
0.0.0:9232
上内部运行其进程,因此即使我正确指定了容器的端口映射,它们没有在正确的接口上进行映射。

这意味着远程虚拟机没有侦听当前端口。我通过在虚拟机服务器中添加端口解决了这个问题

只需将
本地主机
替换为
127.0.0.1


(答案基于此页面上其他人的答案。)

在我的例子中,它在linux上运行
vncserver
后工作

  • 在linux命令行中输入此命令:
    sudo ssh-L 5901:localhost:5901-i@
  • 在那里键入
    vncserver
  • 转到VncViewer应用程序并使用
    localhost:5901连接

  • 当我试图通过ssh隧道远程查看时,我遇到了相同的错误。正如第一个答案中提到的,出现错误是因为服务器上没有任何内容正在侦听端口。对我来说,这是因为我忘了在我的远程机器上启动mlflow应用程序!因此,一般来说,请确保您试图远程访问的应用程序正在运行。

    奇怪,您是否想过查看您的主机
    ssh -i ~/keys/dev.tst -vnNT -L :8890:169.254.76.1:8890
    glue@ec2-54-162-180-7.compute-1.amazonaws.com