通过ssh隧道将本地端口代理到远程主机端口
背景
内网有台mysql数据库,想通过公网访问,需要配置一个代理。nignx的方式可以实现,但是需要部署nginx服务,有没有更简单的方式?答案是有,那就是使用ssh隧道来做。
实现
可以使用SSH的本地端口转发(Local Port Forwarding)功能来实现这一需求。假设你的本地机器是127.0.0.1,目标机器是192.16.30.99,并且你已经在192.16.30.99上有SSH访问权限。
首先需要修改ssh配置文件/etc/ssh/sshd_config
AllowTcpForwarding yes # 将这一行注释打,表示允许转发
然后重启sshd。
在本地机器上,运行以下命令来创建一个SSH隧道:
ssh -L 23306:127.0.0.1:3306 root@192.16.30.99
但是,这种方式创建的隧道,在ssh终端退出后隧道也会消失,所以需要使用screen的方式或者tumx,tumx没用过,这里演示screen的方式
screen ssh -L 23306:127.0.0.1:3306 root@192.16.30.99
使用ss -lntp命令查看一下

发现隧道已经建立了,连接测试一下

也可以正常连接。

浙公网安备 33010602011771号