繁体   English   中英

linux中的ssh端口转发(隧道)

[英]ssh port forwarding (tunneling) in linux

我有一个特定的场景,我想解决。 我目前通过端口转发连接到主机:

 laptop -> gateway -> remote_server_1

和另一位主持人:

 laptop -> remote_server_2

使用无密码登录。 这两个远程服务器都不对外界可见。 现在我正在remote_server_2上运行一项服务,我希望能够访问remote_server_1。 我认为我必须设置从remote_server_1到我的笔记本电脑的反向端口转发,然后到remote_server_2,但我不知道如何做到这一点。 以前有人遇到过这种情况吗?

编辑:完整的解决方案,以防其他人需要它:

mylaptop$ ssh -L 3001:localhost:3000 server_2
server_2$ netcat -l 3000

然后通过gateway设置隧道到server_1

ssh -t -t -L 3003:server_1:22 gateway

然后从server_1访问它:

ssh -R 3002:localhost:3001 -p3003 localhost
echo "bar" | nc localhost 3002`

嘿presto server_2显示bar :-)

你必须完全按照你的描述去做。 server_2上设置服务器。

mylaptop$ ssh -L 3001:localhost:3000 server_2
server_2$ netcat -l 3000

然后从server_1访问它。

mylaptop$ ssh -R 3002:localhost:3001 server_1
server_1$ echo "foo" | netcat localhost 3002

server_2将显示foo

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM