我在一所大学,在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。
答案 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
这听起来像你的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地址。