>  기사  >  백엔드 개발  >  golang에서 프록시를 통해 FTP에 연결

golang에서 프록시를 통해 FTP에 연결

PHPz
PHPz앞으로
2024-02-09 12:00:09571검색

从 golang 通过代理连接到 ftp

PHP 편집자 Zimo가 프록시를 사용하여 FTP 서버의 Golang 코드에 연결하는 방법을 소개합니다. 어떤 경우에는 보안을 강화하거나 네트워크 제한을 해결하기 위해 FTP 서버에 액세스할 때 프록시 서버를 사용해야 할 수도 있습니다. Golang은 간단하고 사용하기 쉬운 네트워크 라이브러리를 갖춘 강력한 프로그래밍 언어이므로 이 기능을 쉽게 구현할 수 있습니다. 다음으로 간단한 샘플 코드를 사용하여 Golang을 사용하여 프록시를 통해 FTP 서버에 연결하는 방법을 보여드리겠습니다.

질문 내용

프록시를 통해 FTP 서버에 연결하고 Golang 코드에서 파일을 다운로드해야 합니다. 간단한 클라이언트를 구현했습니다:

으아악

안타깝게도 연결하려고 하면 403 Forbidden이 표시됩니다. 일반적으로 나는 이것이 서버 제한이라고 가정하지만 컬을 통해 완벽하게 작동합니다 :

으아악

왜 이런 일이 일어나는지 아는 사람 있나요? 내가 아는 한, 컬은 내부적으로 http CONNECT도 사용하므로 내가 무엇을 놓치고 있는지 궁금합니다.

추신: 코드의 자격 증명은 걱정하지 마세요. 이는 네트워크 테스트를 위해 노출됩니다.

해결 방법

HTTP 프록시의 FTP는 CONNECT 요청을 통해 수행되지 않습니다. 대신 프록시는 일반적인 GET 요청을 사용하여 ftp://... URL을 얻도록 지시받습니다. 이것은 컬이 하는 일이기도 합니다. Go에서는 다음과 같이 할 수 있습니다(단순화를 위해 오류 처리는 생략됨):

으아악

위 내용은 golang에서 프록시를 통해 FTP에 연결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제