通过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命令查看一下

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

 也可以正常连接。

 

 

 

posted @ 2024-05-11 16:35  羊脂玉净瓶  阅读(176)  评论(0)    收藏  举报