SSH隧道——实现端口转发(临时用挺方便)

来源:互联网 发布:行知高级技工学校 编辑:程序博客网 时间:2024/05/29 12:40

1、ssh端口转发?

有没有这种需求,我在家里需要访问公司的某个服务。或者公司网络管的严,不能随意访问某些网站。

ssh转发就能实现这样的需求。它能建立隧道,把数据包在内网和外网之间进行传递,减少防火墙规则在你身上的作用。

注:这个隧道用的还是不太爽,直接上vpn用着才爽(我前边写过自己看下,看了就会自己访问google了。能自己组建局域网了)


2、实战:

2、1 本地转发:在本地这台机器上(执行这条命令的机器上)监听一个端口,然后所有访问这个端口的数据都会通过ssh隧道,被传送到远端机器上的指定端口(服务)


 



注意:上图中的命令是错的,并且还需要额外的步骤才能实现这种转发功能。

ssh  -g -L 6300:123.57.28.238:80 root@123.57.28.238

6300是执行这条命令的机器上的绑定端口,123.57.28.238:80是远程机器上的80端口(我就通过内网机器的6300端口把数据包从ssh隧道传到123.57.28.238:80服务上去),而隧道是本地和远程root@123.57.28.238建立的连接。

这样你就可以从公司内网通过那个绑定6300端口的机器访问123.57.28.238这台电脑的80端口。

-g  参数是为了能为内网中的其他用户也转发数据包到123.57.28.238:80上。默认是不为其他服务器转发的。

或者修改/etc/ssh/ssh_config  文件打开GatewayPorts=yes  也可以开启为其他用户转发的能力(记得重启sshd服务才会生效:/etc/init.d/sshd restart)。

例如:打开浏览器输入http://192.168.99.200:6300 ###注意换成你的上边那台机器的ip地址。这样你就可以逃过运维设置的防火墙。




 

 2、2远程转发:在公网的某台机器上监听一个端口,这样你就可以通过公网的ip访问你们公司的某个机器上的服务。


 

 

 

记得/etc/ssh/sshd_config文件中GatewayPorts=yes(重启sshd服务,/etc/init.d/sshd restart)

执行命令:ssh -R 6300:192.168.1.200:80 root@123.57.28.238  后就可以实现,

外网通过123.57.28.238那台机器的6300端口访问到公司内网的某台机器。(这里是192.168.1.200:80)端口。

例如:打开浏览器输入:http://123.57.28.238:6300 即可。



附加:这个还是很实用的,尤其是临时需要连接到公司内网的时候,比如连接mysql服务,httpd服务。ftp服务就算了吧。还是自己整个vpn(我前边写过vpn的搭建)


 



0 0
原创粉丝点击