SSH로 포트 전달 시 FTP에서 "ls"를 실행할 수 없습니다.

SSH로 포트 전달 시 FTP에서 "ls"를 실행할 수 없습니다.

로컬 포트인 21 FTP 포트를 전달하는 동안 SSH에 로그인하면 명령은 다음과 같습니다.

ssh -R 2101:localhost:21[이메일 보호됨]-p 8288

성공적으로 로그인한 후 SSH에서 다음 명령을 보냈습니다.

ftp ikiw@localhost -p 2101

명령이 제대로 실행되고 아무 문제 없이 FTP에 성공적으로 로그인했지만 FTP에 있는 동안 명령에 사용할 수 있는 파일 목록을 보고 싶 ls거나 dir다음 오류가 발생합니다.

ftp: '::1:27394'에 연결할 수 없습니다: 연결이 거부되었습니다.

뭐가 문제 야? 명령을 실행할 때 FTP가 무작위로 새 포트를 생성합니까 ls?

로컬 FTP를 SSH/VPS로 전달하고 SSH/VPS에서 로컬 컴퓨터로 FTP를 정상적으로 실행하고 싶습니다. 누구든지 도와주고 솔루션을 제공할 수 있습니까? 매우 감사합니다! :디

답변1

FTP는 끔찍한 프로토콜입니다. 예, 여러 포트를 사용합니다. 제어 포트가 있고 모든 데이터 전송( ls또는 기타) get에 대해 두 번째 새로운 임의 포트가 열립니다 .

더 나쁜 것은 PASV를 사용하는지 아니면 활성 모드 FTP를 사용하는지에 따라섬기는 사람연결을 시작해 볼 수 있습니다.

FTP가 이러한 전달을 처리하는 것은 쉽지 않습니다. SSH 접속이 되어 있어서 사용할 수 없나요 sftp? 이는 SSH에 직접 내장된 FTP와 유사한 프로토콜이므로 포트 전달이 필요하지 않습니다.

답변2

FTP가 IP6을 사용하려고 시도하는 것 같지만 IP4를 통해서만 터널링하고 있습니다. -4 옵션을 사용하여 ftp를 시작해 보십시오.

관련 정보