我是第一次使用SSH隧道,所以我试图了解如何配置它。
我有一台远程Linux服务器,它托管了我试图连接的MySQL数据库。为了通过只识别本地数据库的软件直接访问MySQL数据库,我认为SSH隧道是设置访问权限的正确方法,对吗?
现在,我正试图在我的家中设置隧道。正在运行试图访问MySQL数据库的软件的计算机。我的第一个问题是这是反向隧道还是正常隧道?其次,是本地隧道还是远程隧道?
最后,根据我的理解,我的代码应该看起来像
ssh -L 8080:mylinuxserver.mycompany.com:22 myuser@mylinuxserver.mycompany.com
这是对的吗?是我的源端口' 22'因为我使用SSH并且是我的目标端口8080(或者是否有更合适的东西)?
当我尝试使用上面的代码时,我能够使用我的密码登录(因为我的密钥已经在MyLinuxServer中)但是当我ping localhost:8080时,它找不到主机。
我做错了什么?
答案 0 :(得分:5)
我有一台远程Linux服务器,托管我试图连接的MySQL数据库
命令应为:
ssh -L 8080:localhost:3306 myuser@mylinuxserver.mycompany.com
其中:
mylinuxserver.mycompany.com
localhost
上方的MySQL端口。然后连接(从您的工作站)到MySQL:
mysql -h 127.0.0.1 --port=8080
此外,ping localhost:8080
是错误的。 Ping
无法以这种方式工作。
答案 1 :(得分:-2)
试试这个:
ssh -f ssh_user@mylinuxserver.mycompany.com -L 3307:mysql1.example.com:3306 -N
接下来,访问您尝试连接的mysql:
mysql -h 127.0.0.1 -P 3307