我有一个在 apache2/Linux Redhat 上运行的 Web 应用程序,它从外部 FTP 服务器下载一些文件。当应用程序连接到 FTP 服务器时,我需要使用不同的固定 IP 地址。目的是为 FTP 服务器管理员提供不同的 IP,以便他们在防火墙中启用它。
谢谢。
答案1
绑定是比较简单的部分:
ifconfig eth0:0 1.2.3.5 netmask 255.255.255.0
然后将该 IP 地址添加到你的 apache 配置中
Listen 1.2.3.5:80
但是,您的服务器很可能已经在监听额外的 IP 地址。如果您的 httpd.conf 文件中有以下内容,您就可以判断这一点:
Listen 80
它告诉服务器监听任何 IP 地址的 80 端口。
比较棘手的部分是让您的 Web 应用在出站连接上使用该 IP 地址。除非您采取措施,否则出站连接可能会使用绑定到“eth0”而不是“eth0:0”的任何内容。您的套接字构建 API 可能允许在设置过程中选择接口或 IP 地址,您的情况可能会有所不同。
但是,如果您位于 NAT 网关后面(如果服务器的实际 IP 地址以 10、172 或 192 开头,则这是一个肯定的信号),并且没有将可公开路由的地址绑定到您的 Web 服务器,事情就会变得更加复杂。在这种情况下,您的边界设备需要足够智能,才能知道发往特定 IP 地址的流量需要重写,就好像它来自绑定到防火墙的第二个公共 IP 地址一样。如果您的防火墙/NAT 无法做到这一点,您很可能就倒霉了。