2011-10-02 90 views
3

我有一个Cent OS安装程序运行一个漂亮的标准LAMP堆栈,我有两个公开可用的IP地址(eth0和eth0:1)。当使用PHP mysql_connect函数绑定到特定的IP地址

我想在连接到远程托管的MySQL数据库时使用第二个IP地址(eth0:1)。我怎么去解决这个问题?

谢谢!

+0

我不完全明白你的问题。你是否想以这种方式将你的PHP脚本绑定到特定的IP地址,当请求来自另一个请求时,该脚本不应该被访问? – SteAp

+1

我这样读:连接到mysql数据库服务器时,应该使用特定的客户端网络接口来执行连接。 AFAIK'mysql_connect()'没有为此提供参数,因此这可能是客户端计算机配置问题。 – hakre

+0

Hakre是正确的,这就是我正在寻找的。你知道任何常见的方法来解决mysql_connect不支持这个事实吗?我不太确定需要寻找什么,但我希望至少可以通过代理或为我使用的端口提供某种规则来始终通过eth0进行通信:1 – Jake

回答

1

如果你有root权限,你可以做SNAT使用iptables使用特定的源IP此特定目标:

iptables -t nat -A POSTROUTING -o eth0 -d <mysql_server_ip> -j SNAT --to-source <source_ip>