linux ssh隧道
隧道是一种把一种网络协议封装进另外一种网络协议进行传输的技术。这里我们研究ssh隧道,所以所有的网络通讯都是加密的。又被称作端口转发,因为ssh隧道通常会绑定一个本地端口,所有发向这个端口端口的数据包,都会被加密并透明地传输到远端系统。
一、本地转发
使用场景: 本地内网LinuxA(192.168.1.10)访问外网linuxB(175.178.216.106)下MySQL。
直接访问
内网LinuxA下执行
mysql -h 175.178.216.106 -uroot -P 3306 -p
可以访问到外网linuxB下的mysql
开启ssh隧道
内网LinuxA上执行
ssh -f -N -L 127.0.0.1:9906:175.178.216.106:3306 ubuntu@175.178.216.106
参数说明: -f:ssh客户端在后台执行 -N:不执行脚本或命令,仅进行端口转发 -L:做本地映射端口
查看ssh隧道是否成功
内网LinuxA上执行
netstat -an |grep 9906
ssh隧道方式访问mysql
内网LinuxA上执行
mysql -h 127.0.0.1 -uroot -P 9906 -p
查看数据库是否是linuxB的
show databases;
到此本地ssh隧道测试完成
远程转发
使用场景: 外网linuxB(175.178.216.106)访问本地内网LinuxA(192.168.1.10)下MySQL。
直接访问
mysql -h 192.168.1.10 -uroot -P 3306 -p
说明:这个是无法访问到的
开启ssh隧道
在LinuxA下执行
ssh -f -N -R 175.178.216.106:9907:127.0.0.1:3306 ubuntu@175.178.216.106
参数说明: -f:ssh客户端在后台执行 -N:不执行脚本或命令,仅进行端口转发 -R:远程转发
查看ssh隧道是否成功
外网LinuxB下执行
netstat -an |grep 9907
ssh隧道方式访问mysql
外网LinuxB下执行
mysql -h 127.0.0.1 -uroot -P 9907 -p
查看数据库是否是linuxA的
show databases;
这样外网LinuxB就可以访问到内网LinuxA的MySQL了 到此远程转发测试完成
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/288110.html