如何设置从 Web 服务器 (Apache) 到数据库服务器 (MySQL) 的端口转发

如何设置从 Web 服务器 (Apache) 到数据库服务器 (MySQL) 的端口转发

我有两个偏僻的专用服务器、一个运行 Apache 的 Web 服务器和一个运行 MySQL 的数据库服务器。

Apache 服务器当然在互联网上是可见的,但是第二台服务器仅对 Apache 服务器可见,因为它们是通过 LAN 连接的。

我需要从家用电脑通过互联网连接到远程 MySQL 服务器,但我的家用电脑只能看到 Apache 服务器。如何设置从 Apache 服务器到 MySQL 服务器的端口转发,以便能够从家用电脑“看到”MySQL 服务器?

这个问题是我第一个问题的后续:https://stackoverflow.com/questions/4159256/connect-to-remote-mysql-server-from-my-application-problem-is-that-mysql-server 您回答了我的问题,并告诉我如何进行“端口转发”,这对我帮助很大。

我浏览了互联网,但找不到一个好的端口转发指南。我是一名经验丰富的程序员,但在硬件和网络方面经验不足。但我明白必须做什么,所以我只需要一点帮助来理清事情。:)

PS 运行 Apache 的机器在 CentOS 上;MySQL 服务器也运行 CentOS。PS2 网络服务器运行 WebHostManager。我不知道这是否有任何区别,或者是否可以通过此轻松实现,我只是提一下。

答案1

在桌面上启动 SSH 客户端。

输入以下内容(下面的内容解释了您要替换的内容):

ssh -L desktop_port:database_host:database_port apache_username@apache_host

  • 桌面端口:3306(仅当您未在本地运行 mysql 时才使用此项)
  • 数据库主机:你的数据库主机(使用域名或者 IP 地址)
  • 数据库端口:3306(如果您不使用默认端口,请更改)
  • apache_用户名:用于登录 Apache 服务器的用户名
  • Apache 主机:apache 主机(域名或 IP 地址)

出现提示时,输入您的 apache_username 密码。保持此终端打开,因为当您关闭此连接时隧道将关闭。

对我有用的一个示例:

ssh -L 3306:db:3306 user@web

完成所有操作后,只需在终端上输入 exit,连接就会消失。

相关内容