通过单个IP提供访问

我已经通过Plesk将我的服务器上的专用IP分配给我的一位客户。 但是,当他访问任何外部内容时,由于主机IP是我服务器的主要IP,而不是分配给他的专用IP, 可能是什么问题,我将如何解决这个问题。

所有TCP / IP协议栈中的默认行为是:除非另外指定,否则,传出连接将绑定到传出接口的第一个地址,以便连接需要进行的路由(如果有两个接口可以通过connectino进行路由,在路由表中的第一个将被挑选) – 在这种情况下,您的主要地址。 如果您需要显示来自其他地址之一,或者需要/想要强制select接口,则连接将被路由,您需要指定要绑定的本地接口或地址。

许多库和工具公开这个选项,例如带有--interface选项的cURL:

 curl --interface 192.168.1.10 http://www.example.com/document.html curl --interface eth2 http://www.example.com/document.html curl --interface eth0:1 http://www.example.com/document.html 

这是大多数libcurl的语言绑定公开的,如在PHP中:

 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_INTERFACE, "192.168.1.10"); curl_exec($ch); curl_close($ch); 

[我selectcURL作为一个例子,因为这是一个非常常用的方法,用于外部服务的连接,而且在你的问题中你没有提供什么外部连接是一个问题的迹象。 其他库和工具通常提供类似的选项 – 检查他们的文档的细节]

这不是pipe理员可以做的事情:您的用户需要更新他的代码来控制他的传出连接绑定到哪个接口/地址,而不是只允许IP堆栈遵循其默认行为。