2013-12-16 69 views
12

我有一臺計算機背後的ForeFront TMG 7.0和公共遠程ftp服務器。 TMG客戶端已安裝。 Windows防火牆已關閉。 防病毒:McAfee病毒掃描企業版(8.8)+ AntySpyware Enterprize(8.8)+無插件。 殺毒軟件開啓和關閉。Forefront TMG vs java和php(ftp)

無法通過Java和Php連接到服務器。 Filezilla,explorer.exe和Go-written程序連接沒有問題。

對於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客戶端(主動/被動 - 本地/遠程/兩)
  • 阿帕奇FTPS客戶端(所有varians主動|被動)
  • 索倫FTP客戶端(下同)
  • 插座襪子et = new Socket(host,21);

有時會等待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的連接沒有問題。資源管理器連接沒有問題。 Go-Writal程序連接沒有問題。

任何想法可以阻止Java和PHP?我如何才能找出阻止JRE和Apache的策略或程序設置?

+0

任何想法可以阻止java和php?防火牆和許多其他的東西(你的操作系統,網絡,服務器,..不允許訪問不受信任的軟件)。還有錯誤的配置,如不使用系統代理。使用例如[wireshark](http://www.wireshark.org/) – zapl

+0

在過去發現tmg存在一些問題,發現它可以通過ip阻止某個url,但不能在pc-name上,反之亦然。嘗試玩 – secario

+0

這不是網站攔截,因爲FileZilla和其他人連接正常。 – Globber

回答

0

你可以嘗試用下面的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"; 
} 
?>