利用ssh 隧道代理服务器本地端口,实现远程连接服务器本地数据库
ssh隧道代理
写这篇文章的原因是因为在开发中,遇到了需要对线上服务器数据进行调试,为方便在本地使用图形化工具。
mysql,redis总所周知是不允许远程连接数据库的,我们就无法在本地对服务器数据进行调试。所以就可以利用ssh 工具进行隧道代理本地调试数据。
废话不多说直接开干,上代码
windows vbs脚本版
windows10 需要安装ssh才能使用
windows11 自带ssh无需安装
Set WshShell = WScript.CreateObject("WScript.Shell") ' 激活控制台窗口(假设窗口标题为 "Command Prompt",可以根据实际情况修改) WshShell.Run "cmd.exe" ' 等待一段时间,以确保控制台窗口已激活 WScript.Sleep 1000 ' 输入字符串 WshShell.SendKeys "ssh -L 0.0.0.0:33356:localhost:3306 root@10.10.26.232 -o ServerAliveInterval=10" ' 模拟回车键 WshShell.SendKeys "{ENTER}" ' 等待一段时间,以等待命令执行完成 服务器密码 WScript.Sleep 1000 WshShell.SendKeys "123456" WshShell.SendKeys "{ENTER}" ' 关闭控制台窗口(示例中使用 Alt + F4 快捷键) ' WshShell.SendKeys "%{F4}"
解读关键代码
ssh -L 0.0.0.0:33356:localhost:3306 root@10.0.0.201 -o ServerAliveInterval=10 ssh -L 这里是本地ip建议写0.0.0.0或者127.0.0.1:本地端口只要不被占用的都行:服务器的IP一般建议写localhost:你要使用的服务器上服务端口号例如mysql的3306 root@这里是服务器的ip例如10.0.0.201 -o ServerAliveInterval=10 ssh 命令除了登陆外还有三种代理功能: ssh -L 正向代理(-L):相当于 iptable 的 port forwarding SSH -R 反向代理(-R):相当于 frp 或者 ngrok SSH -D socks5 代理(-D):相当于 ss/ssr
linux 系统使用
终端打开直接执行命令 ssh -L 0.0.0.0:33356:localhost:3306 root@10.0.0.201 -o ServerAliveInterval=10 输入密码
linxu想要使用开启自动执行命令
#路径 exp:root用户 cat /root/.bash_profile #路径 exp:zhangs用户 ssh -L 0.0.0.0:33356:localhost:3306 root@10.0.0.201 -o ServerAliveInterval=10 # 直接代码写进行去就行,前提是吧ssh公钥放入到目标服务器
本文作者:clever-cat
本文链接:https://www.cnblogs.com/clever-cat/p/17622967.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
分类:
linux,centos问题解决
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步