这可能只是对 ssh 隧道工作原理的误解,但这里是:
在我的ngirgd.conf
文件中,我有以下内容:
Ports = 6669
Listen = 127.0.0.1
该 ngircd 服务器正在运行主机A。我已经使用以下方法进入了它:
韦恩@主机B% ssh -N 韦恩@主机A-L 6669:主机A:6669
我输入我的密码。然后在 irssi 里面主机B, 我愿意:
/connect localhost 6669
我得到
Looking up localhost
Connecting to localhost [127.0.0.1] port 6668
Connection to localhost established
Connection lost to localhost
在我启动隧道的终端窗口内,我得到:
channel 2: open failed: connect failed: Connection refused
据我了解,ssh 隧道应该连接HostB:6669
到HostA:6669
,因此就 ngirgd 而言,连接来自 localhost/127.0.0.1。但情况似乎并非如此——当我转发到端口 80 时,它连接到我的服务器就很好了。
我是否误解了什么,或者有什么问题?我该如何解决它?
答案1
这ssh
手册页在“TCP FORWARDING”部分提到了您的用例。
指出不同?尝试这个:
ssh -L 6669:127.0.0.1:6669 hostB
你的 IRC 守护进程监听127.0.0.1:6669
在hostb
host:hostport
的部分-L port:host:hostpart
是相对于您连接到的服务器。所以我想hostb
不会解析到127.0.0.1
(from hostb
),是吗? (因此你的命令尝试连接hostb:6669
到没有守护进程监听.)