我想下面将考虑一个黑客,但在这里:
我有机器A和B,和C.
B可以打开到A的连接,但是A 不能打开到B的连接(由于FW)。
工作:A <— B
不起作用:A —> B
我希望能够打开从A到B的连接。
有没有一种方法(工具,最好是一个操作系统工具),以允许从A到B的无缝连接启动,很可能通过从B到A的现有连接的顶部隧道?
在这一天结束的时候,我希望能够成功地从A到B进行远程login:
telnet B [port number]
或者甚至对机器C来说,B可以访问,但是A不能。 从A:
telnet C [port number]
稍后编辑:
我已经提供了“静态”隧道。 但是,我会有无缝的解决scheme。
例如,configuration连接尝试到一定范围的目标IP将通过B隧道,其中C是dynamic变化的目的地。 因此,telnet 80将连接到通过B的目标
你还没有给出任何这些盒子运行的操作系统的迹象,所以我会假设unix。 如果这是错误的,请重新提出您的问题。 那就是说:
B% ssh A -R 2200:B:22
会将您login到A,同时build立从A到B的隧道,以便在A上连接到端口2200时,ssh会将您的数据包通过隧道传送到B上的端口22。
B% ssh A -R 2200:C:22
也可以工作,只要B具有到C的不间断networkingpath; 当你在A上连接到2200端口时,ssh将你连接到C上的22端口。
如果您运行的是UNIX或类UNIX系统,请查看OpenSSH及其Tunnel , PermitTunnel和PermitTunnelconfiguration指令。 如果您的系统支持tun设备,则应该可以configurationssh和sshd以在主机A和B之间创build点对点(第3层,默认值)或以太网(第2层)隧道。
无论哪种情况,您都必须像在任何其他networking设备(即分配IP地址,添加路由)一样,在A和B上configurationtun设备。
最后,如果要允许通过AB隧道从A到C的连接,则需要确保主机B允许IP数据包转发。