使用或不使用 ssh 隧道访问远程计算机

使用或不使用 ssh 隧道访问远程计算机

我只是想在这里了解一个有趣的问题。当我 curl 一个 URL 时,我得到了这个错误

curl "http://myserver:8888/payload"
curl: (7) couldn't connect to host

但是,当我设置隧道并通过该隧道进行 curl 时,它就可以正常工作。隧道命令:

ssh -f myserver -L 8888:myserver:8888 -N

Curl 现在可以工作了:

curl "localhost:8888/payload"
Hi thr!

这是由服务器管理员设置的方式还是其他什么原因?

我首先在 SO 上发布了这个问题,但被踢出了那里 :( https://stackoverflow.com/questions/21198847/accessing-a-remote-machine-with-or-without-ssh-tunneling

答案1

很可能是某种防火墙问题。

如果它是服务器的内部防火墙,您应该能够使用以下命令列出防火墙规则

iptables -L

这将显示当前该机器上处于活动状态的 iptables(Linux 防火墙)的各种链。

这可能不是服务器本身的防火墙问题,而可能是您和服务器之间的任何防火墙/路由器拒绝您访问该端口。要测试该问题,请尝试nmap从本地计算机进行操作:

nmap -p 8888 server.hostname

这将测试远程服务器上的 8888 端口,以查看是否可以从你的计算机访问它

相关内容