ssh小技巧:ssh隧道

作者: 郭子渝 分类: 红帽认证 发布时间: 2020-04-20 11:49 本文共1014个字,阅读需要3分钟。

ssh隧道利用的是ssh中的-L参数,假设我们有一个场景:某台服务器处于公司内网,没有公网ip,不能直接访问,但是同网段中有一台机器有公网Ip,并开启sshd服务。我们可以利用ssh将这台公网服务器作为跳板,访问这台内网服务器。

所需命令:

先解释一下本次博文使用到的命令:

-f   认证后进入后台模式
-N   不执行远程命令,用于端口转发
-D   socket5代理
-L   tcp转发
-C   使用Gzip数据压缩,网速快时会影响速度
-b   更改监听地址

Tcp转发

如果你只是想转发单一端口,你可以使用以下指令

[root@gzy2000 ~]# ssh -L 本地端口:远程ip:远程端口 user@host

比如下图中234.234.234.234是公司对外的网站服务器,为了方便维护,有ssh服务,而你需要远程的MySQL业务是在123.123.123.123这台机器上面,我们可以使用以下指令(假定MySQL的端口为默认的3306)

[root@gzy2000 ~]# ssh -L 25000:123.123.123.123:3306 root@234.234.234.234
ssh小技巧:ssh隧道-郭子渝的博客

此时,你本地访问127.0.0.1:25000就可以连接到123.123.123.123的MySQL服务啦!

上述的25000是你本地自己指定的,理论上,你本地没有被占用的端口你都可以使用,配合ssh免密码登录,你可以更方便的远程你的服务。

如果你想让局域网内其他机器也能通过你连接MySQL服务,只需要加上-b 参数即可。

[root@gzy2000 ~]# ssh -L 25000:123.123.123.123:3306 root@234.234.234.234 -b 0.0.0.0

此时,你所在的局域网192.168.0.0即可通过访问192.168.0.100:25000访问123.123.123.123上的MySQL服务啦

使用exit即可退出隧道

socket5转发

如果你只是想进行socket5代理,你可以使用以下指令

ssh -D 监听地址:监听端口 user@host
Example:
ssh -D 127.0.0.1:1080 root@234.234.234.234 本机使用代理服务
ssh -D 0.0.0.0:1080 root@234.234.234.234 局域网内都可以使用该服务

以上转发都是基于ssh技术,所以就算是ftp,mysql等明文传输的业务,也会被ssh所加密,可以保证数据不再互联网上暴露,保证传输安全性

如果觉得我的文章对您有用,请订阅我的博客。您的支持将鼓励我继续创作!
Scroll Up