我只是想在这里了解一个有趣的问题。当我 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 端口,以查看是否可以从你的计算机访问它