我在ForeFront TMG 7.0和公共远程ftp服务器后面有一台电脑。已安装TMG客户端。 Windows防火墙已关闭。防病毒:McAfee病毒扫描企业版(8.8)+ AntySpyware Enterprize(8.8)+无插件。防病毒测试开启和关闭。
它无法通过Java和Php连接到服务器。 Filezilla,explorer.exe和Go-written程序连接没有问题。
对于Java,我得到Connection Refused错误:
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连接:
Semetimes它在等待5分钟后拖出连接超时。而错误是超时异常。所有varians都使用直接连接,全局代理,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-written程序连接没有问题。
有什么想法可以阻止java和php?如何确定阻止JRE和Apache的策略或程序设置?
您可以尝试使用如下的php脚本调试问题;
<?php
$host = "xx.xx.xx.xx";
$ftpUser = "annonymous";
$ftpPass = null;
$checkPort = @fsockopen($host, 21, $errno, $errstr, 10);
if($checkPort!==false){
echo "can able to connect ftp server";
$conn_id = ftp_connect($host);
if($conn_id!==false){
echo "\n Ftp server available and connected trying to logged in";
$loginStatus = ftp_login($conn_id, $ftpUser, $ftpPass);
if($loginStatus!==false){
echo "\n Connected to ftp";
} else {
echo "\n Please check credentials";
}
}
} else {
echo "server can't reach to ftp server";
}
?>