【发布时间】:2014-01-03 16:01:57
【问题描述】:
我有一台支持 ForeFront TMG 7.0 的计算机和一个公共远程 FTP 服务器。已安装 TMG 客户端。 Windows 防火墙已关闭。 防病毒:McAfee 病毒扫描 Enterprise (8.8) + AntySpyware Enterprise (8.8) + 无附加组件。 杀毒软件已开启和关闭测试。
无法通过 Java 和 Php 连接到服务器。 Filezilla、explorer.exe 和 Go 编写的程序连接没有问题。
对于 Java,我收到 ConnectionRefused 错误:
java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:182)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:203)
无论我如何尝试通过 Java 进行连接:
- Apache FTP 客户端(主动/被动 - 本地/远程/两者)
- Apache FTPS 客户端(所有变体主动|被动)
- Sauron FTP 客户端(相同)
- Socket socket = new Socket(host, 21);
有时它会在等待 5 分钟后导致连接超时。错误是超时异常。 所有变种都经过直接连接、全局代理、ftp 代理、http 代理以及所有这些组合的测试。 所有变体都通过 IP 和主机名进行测试。
也无法连接的php代码示例:
<?php
$host = "ftphost";
$connect = ftp_connect($host,21);
if(!$connect)
{
echo("Error: $host");
exit;
}
else
{
echo("Cheers: $host");
}
?>
但 FileZilla 连接没有问题。 Explorer 连接没有问题。 Go 编写的程序可以毫无问题地连接。
有什么可以阻止 java 和 PHP 的想法吗?如何找出阻止 JRE 和 Apache 的策略或程序设置?
【问题讨论】:
-
有什么可以阻止 java 和 php 的想法吗?防火墙和许多其他东西(您的操作系统、网络、服务器、.. 不授予对不受信任软件的访问权限)。还有错误的配置,比如不使用系统代理。比较使用例如wireshark
-
过去在tmg上遇到了一些问题,发现它可以通过ip阻止某些url,但不能在pc-name上,反之亦然。尝试使用它
-
这不是站点阻止,因为 FileZilla 和其他人连接正常。
-
据我所知,FTP 协议与客户端软件没有区别。
-
了解被动/主动连接 (stackoverflow.com/questions/1699145/…) 也许这会有所帮助?
标签: java php sockets ftp firewall