Java 는 FTP 를 사용 하여 파일 을 다운로드 하여 ConnectException 을 보고 합 니 다.

1352 단어 JavaLinux
Windows 시스템 에 배 치 된 프로젝트 는 FTP 로 Linux 서버 에 연결 하여 파일 을 다운로드 합 니 다.서버 연결 에 사용 할 FTP 포트 는 21 입 니 다.iptables 에 화이트 리스트 가 추가 되 었 습 니 다.
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT

자바 코드 는 다음 과 같 습 니 다.ListAllFiles()를 사용 하여 서버 에 있 는 파일 을 옮 겨 다 닙 니 다.
public String[] ListAllFiles(String dir, String file_regEx) {
		String[] names = this.ListFiles(dir + file_regEx);
		return this.sort(names);
	}
	
public String[] ListFiles(String file_regEx) {
		try {
			ftpClient.enterLocalPassiveMode();
			String[] name = ftpClient.listNames(file_regEx);
			if (name == null)
				return new String[0];
			return this.sort(name);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return new String[0];
	}
로 컬 테스트 에서 FTP 로 연결 할 수 있 음 을 발 견 했 으 나 폴 더 를 옮 겨 다 니 는 파일 타 임 스 연결 시간 이 초과 되 었 습 니 다.
리 눅 스 서버 에서 방화벽 을 닫 고(service iptables stop)테스트 에 성공 했다.방화벽 이 요청 을 차단 한 것 을 고려 하 다.코드 를 검사 한 결과 코드 에 ftpClient.enterLocalPassiveMode()가 사용 되 었 습 니 다.방법,이 방법 은 데이터 가 연결 되 기 전에 ftp Client 가 ftp 서버 에 데 이 터 를 전송 하 는 포트 를 개설 하 라 고 알려 주 는 것 입 니 다.이 포트 는 고정 되 지 않 아서 방화벽 에 의 해 요청 이 차단 되 었 습 니 다.포트 가 고정 되 지 않 으 면 포트 화이트 리스트 를 추가 하 는 방법 을 사용 할 수 없 기 때문에 ip 화이트 리스트 를 추가 할 수 있 고 지정 한 ip 를 실행 하 는 모든 포트 의 요청 을 통과 할 수 있 습 니 다.
4.567913.화이트 리스트 규칙 을 추가 한 후 방화벽(service iptables start)을 시작 하여 테스트 에 성공 했다.

좋은 웹페이지 즐겨찾기