虽然我使用一些别名来做ssh隧道或反向隧道,但我从来不知道它是如何工作的.有人知道如何以非常简单的方式解释它吗?
我认为3个主要用途是:
首先,我可以使用我的家用电脑进行ssh foo.mycompany.com,而不使用任何密码(foo是工作中的服务器)
1)如何   foo.mycompany.com:8080去我的家用电脑localhost:3000?
2)如果在家,我无法访问http://bar.mycompany.com,但foo可以访问bar,如何使家用电脑能够访问http://bar.mycompany.com?
3)如果在家里,我无法访问MySQL数据库db.mycompany.com,但foo可以,如何db.mycompany.com使用ssh隧道也可以访问它.
可以用非常简单的术语解释一下吗?除了这3个,还有其他一些流行的用途吗?谢谢.
我有大约50个数据库都设置在不同的主机名,要求我通过SSH隧道连接到它们.
例如:
SSH主机在 ssh.example.com 
MySQL主持人在 mysql1.example.com
我已经设法使用autossh(运行Debian的Web服务器)创建隧道,但我似乎无法弄清楚如何连接到SSH隧道之外的特定MySQL主机名.
键入lsof -i -n | egrep '\<ssh\>'确认隧道正在工作(将端口3307发送到ssh.example.com端口3306)
因此,当我尝试时,我mysql -h 127.0.0.1 -P 3307拒绝Connection.不太奇怪,因为它不是MySQL服务器.
我向你们提问:
如何在mysql1.example.com创建SSH隧道后指定主机?我试过到处寻找,但似乎无法弄明白.
我想rsync到我通常通过另一个系统连接的集群节点:
说我先连接到
  ssh user@bridge 
从那里到
  ssh user@clusternode
现在我想从我的工作站rsync到clusternode.我做以下事情:
我打开一个ssh隧道
ssh -L8000:clusternode:8000 user@bridge
我从工作站rsync到clusternode
rsync -e "ssh -p8000" source user@localhost:destination
我知道它不起作用
 ssh_exchange_identification: Connection closed by remote host
为什么不起作用?我需要做什么?
我在这里找到了很多信息:
http://toddharris.net/blog/2005/10/23/rsyncing-through-an-ssh-tunnel/
我想要明白我的问题是桥和目的地之间的第二次认证,所以我改为方法2,这也不是很优雅,但它的工作原理.我想尝试方法3,但我不知道如何配置rsync守护进程
我编写了一个小的bash脚本,它需要一个ssh隧道来从远程服务器中绘制数据,因此它会提示用户:
echo "Please open an ssh tunnel using 'ssh -L 6000:localhost:5432 example.com'"
我想检查用户是否已打开此隧道,如果没有隧道,则退出并显示错误消息.有没有办法查询ssh隧道,即检查本地端口6000是否真的通过隧道连接到该服务器?
使用ubuntu tusty,有一个服务在远程机器上运行,我可以通过ssh隧道从端口转发访问localhost:9999.
我有一个docker容器正在运行.我需要通过主机的隧道从容器内访问该远程服务.
我尝试从容器隧道到主机-L 9000:host-ip:9999,然后127.0.0.1:9000从容器内访问服务无法连接.为了检查端口映射是否打开,我试过了
nc -luv -p 9999 # at host
nc -luv -p 9000 # at container
在此之后,parag.2但即使
nc -luv host-ip -p 9000
  在集装箱内进行操作也没有感知到的沟通 
我也试过通过映射端口docker run -p 9999:9000,但是这报告绑定失败,因为主机端口已经在使用中(可能是从主机隧道到远程机器).
所以我的问题是
1 - 如何实现连接?我是否需要设置到主机的ssh隧道,或者这可以通过单独的docker端口映射来实现?
2 - 测试连接是什么的快速方法是什么?通过bash,最好是.
谢谢.
我需要在Windows中使用PuTTY创建SSH隧道,这与Linux中的此命令相同:
ssh -fN -L 2000:SomeIp:2000 myusername@myLinuxBox
我在PuTTY中尝试了很多选项,包括将GUI中的源端口设置为"2000",将目标设置为"SomeIp:2000".目标设置为本地(如-L交换机所示).
我成功登录到我的SSH盒子但未进行端口转发.
这在Windows中是否可行,因此使用此端口(2000)的程序所做的所有连接都将通过此隧道?
在使用jpda启动tomcat之后,在我的公司,我可以在eclipse中远程调试一堆Web应用程序.出于多种原因,我现在需要从公司防火墙外部开发和远程调试这些相同的Web应用程序,我只能通过端口22上的ssh访问该服务器.
我将最需要的端口(svn,nexus,tomcat本身,从服务器或通过服务器)隧道传输到localhost,这些服务工作正常,但我无法以任何方式启动eclipse调试器; 我从第二次尝试开始时"等待数据包XXX"或"拒绝连接"时"连接超时".在服务器上检查nmap,它会在第一次连接尝试之前报告端口打开,然后在此之后关闭.我在catalina.out中没有有趣的输出日志
我用来启动隧道的命令是:
ssh -L 8000:localhost:8000 user@mycompany.com
iptables暂时停止在服务器和本地机器上进行测试.
我错过了什么吗?我是否需要将其他端口转发给localhost?或者它在某种程度上涉及名称解析?
编辑
在从eclipse连接尝试之前打开端口:
root@lnxulisse:/opt/apache-tomcat-6.0.32/bin# lsof -p 2147  -n |grep TCP
java    2147 root    4u  IPv4 640850      0t0     TCP *:8000 (LISTEN)
java    2147 root   38u  IPv6 640859      0t0     TCP *:http-alt (LISTEN)
java    2147 root   40u  IPv6 640865      0t0     TCP *:https (LISTEN)
java    2147 root   46u  IPv6 640908      0t0     TCP 127.0.0.1:18005 (LISTEN)
java    2147 root   48r  IPv6 642625      0t0     TCP 172.24.0.82:48347->172.24.0.82:mysql (ESTABLISHED)
java    2147 root  181u  IPv6 640891      0t0     TCP 172.24.0.82:60353->172.24.0.82:mysql (ESTABLISHED)
之后: …
我正在提供一个托管在Heroku上的服务,它允许用户使用他们的数据库报告他们自己的数据.我的客户必须将我的Heroku应用程序连接到他们的数据库.他们中的一些人显然害怕通过互联网清除数据.
是否可以使用Heroku从我的应用程序(Play Framework/Java)打开SSH隧道到他们的机器?
注意:我知道从Heroku到远程数据库的SSH隧道?但在这个问题上,使用内置的Heroku数据库是可能的.
谢谢,阿德里安
我有SSH访问'公共'服务器,这也是公司网络的门户.网络中有另一台服务器,其中运行本地 Oracle数据库服务器(此服务器外部无法访问,只接受本地主机数据库连接).当然,我有另一个SSH访问此服务器.
有没有办法从网络外部加入这个Oracle Database 11g服务器?我问是否有类似ssh隧道链,以及我如何配置它.例如,这对于TOAD for Oracle(ORACLE客户端)非常有用.
编辑:这是图像
 谢谢
谢谢