从内部网络上的服务器FTP到外部地址

时间:2014-06-09 20:28:54

标签: networking coldfusion ftp coldfusion-10

我在一所大学,在Univeristy网络上设置了服务器。网络具有内部(10. )IP地址和外部(129。)IP地址。我有一个基于ColdFusion的业务流程,FTP来自外部服务器的数据。

ColdFusion实例所基于的服务器有几个(大约10个)与之关联的IP地址,包括内部和外部。它有一个主要地址,直到最近才是外部地址。

使用Wireshark,我们已经能够看到使用了哪个IP,它从来不是主要的,但除此之外,它似乎不遵循任何逻辑。

我们最近将服务器的主IP更改为内部地址,以符合新的大学范围的安全策略,并且Coldfusion的FTP连接停止工作。使用Wireshark,我们已经确认它将在其中一个内部(10. 。*)IP地址(不是主要的)上运行。

有没有办法通过系统配置或以编程方式控制哪个IP ColdFusion用于FTP连接?

FTP电话代码:

var ftpService= new ftp(
    username = partnerConfig.sftpLogin,
    connection = "MyConnection",
    password = partnerConfig.sftpPw,
    fingerprint = partnerConfig.sftpFingerprint,
    server = partnerConfig.sftpServer,
    secure = "yes"
);
var result=ftpService.open();
var result2=ftpService.listdir(directory = partnerConfig.inFolder, name="dirlist");
var result3=result2.getResult();
编辑:我的服务器人告诉我,这所大学在如何配置子网方面是相当独特的。 10. *子网不允许出现防火墙例外。 "公共"默认情况下,IP不是公开的,只是那些能够有例外的。

进一步解释:它归结为大学设立的主要IT组织的规则和IP地址。 10.x.x.x IP绝不允许在大学之外访问("内部")。 129.x.x.x IP,可能有防火墙例外("外部")。如果我输入ipconfig(它的Windows),我会看到大约10个静态IP地址,其中一半是10.x.x.x,其中一半是129.x.x.x.当"主要"该机器的IP是129.x.x.x地址,Coldfusion选择其中一个OTHER 129.x.x.x地址作为连接的传出IP。使用" primary" IP切换到10.x.x.x IP,ColdFusion正在为传出连接选择OTHER 10.x.x.x地址之一。据我所知,我的选择是1)将主服务器切换回服务器的129.x.x.x; 2)将站点移动到主服务器为129.x.x.x的其他服务器,并使服务器上的其他站点符合新策略; 3)看看我是否可以弄清楚如何控制服务器上10个静态IP选择哪个IP Coldfusion。

3 个答案:

答案 0 :(得分:1)

我们的管理员弄清楚了。我们需要向服务器添加静态路由,这样每当ColdFusion(或任何应用程序)尝试连接到我们正在FTP的特定目的地时,它都会通过特定的传出IP地址。

这不是我所熟悉的,但快速搜索提供了基础知识:http://technet.microsoft.com/en-us/library/dd469825.aspx

答案 1 :(得分:0)

你有一个内部IP地址,你不确定外部是什么?这听起来像网桥问题。您正在寻找的是FTP代理或一些工具,它将外部分配的IP与内部分配的IP端口22(或您设置端口的任何内容)相关联。请看:http://wiki.squid-cache.org/Features/FtpGateway

FTP reverse proxy

这听起来像你的IP(甚至内部可能不是静态的)......或者它可能就是这样。确保您的内部IP是静态的。

了解FTP端口转发:Here are some port forwarding guides.

其他关键字FTP桥接,FTP一对一映射等。

祝你好运。

答案 2 :(得分:0)

我有一个关于cfmail标签的类似问题:

Force cfmail tag to send from a specfic server IP address

不幸的是,我没有得到有效的答案。 ColdFusion似乎选择(似乎随机)使用哪个源IP地址。