Fritzbox NAS에 대한 FTPS 연결 실패 - EPSV/PAS 포트 변경으로 인해?

Fritzbox NAS에 대한 FTPS 연결 실패 - EPSV/PAS 포트 변경으로 인해?

저는 USB HDD가 연결된 FRITZ!Box 3490을 NAS 서버로 사용하고 있습니다. FTP 통신을 위해 특정 포트(32753)를 구성했습니다. 정적 정적 서버 이름(u**********u.myfritz.net)을 보장하기 위해 myFritz를 활성화하고 구성했습니다.

WinSCP를 통해 (로컬로 연결되지 않은) 노트북에서 NAS에 액세스할 때 NAS에 대한 액세스가 제대로 작동합니다.

그런데 내 웹공간의 원격 서버를 통해 NAS에 접속하려고 하면 EPSV 또는 PAS 명령 이후 연결이 실패합니다.

터미널은 다음과 같습니다.

$ curl -v --ftp-pasv --ssl -k -u speedITBackup 'ftp://u**********u.myfritz.net:32753/Backup/Superfein/'
Enter host password for user 'speedITBackup':
*   Trying 92.218.125.113...
* TCP_NODELAY set
* Connected to u**********u.myfritz.net (92.218.125.113) port 32753 (#0)
< 220 FRITZ!Box3490 FTP server ready.
> AUTH SSL
< 501 Use AUTH TLS for secure control connection.
> AUTH TLS
< 234 Authentication method accepted
* successfully set certificate verify locations:
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, [no content] (0):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, [no content] (0):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, [no content] (0):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, [no content] (0):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, [no content] (0):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* Server certificate:
*  subject: CN=u************u.myfritz.net
*  start date: Dec  9 12:27:41 2022 GMT
*  expire date: Jan 15 12:27:41 2038 GMT
*  issuer: CN=u**********u.myfritz.net
*  SSL certificate verify result: self signed certificate (18), continuing anyway.
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> USER speedITBackup
* TLSv1.3 (IN), TLS handshake, [no content] (0):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, [no content] (0):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS app data, [no content] (0):
< 331 Password required for speedITBackup.
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> PASS **************
* TLSv1.3 (IN), TLS app data, [no content] (0):
< 230 User speedITBackup logged in.
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> PBSZ 0
* TLSv1.3 (IN), TLS app data, [no content] (0):
< 200 ok
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> PROT P
* TLSv1.3 (IN), TLS app data, [no content] (0):
< 200 Data channel will be secured
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> PWD
* TLSv1.3 (IN), TLS app data, [no content] (0):
< 257 "/" is current directory.
* Entry path is '/'
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> CWD Backup
* ftp_perform ends with SECONDARY: 0
* TLSv1.3 (IN), TLS app data, [no content] (0):
< 250 CWD command successful.
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> CWD Superfein
* TLSv1.3 (IN), TLS app data, [no content] (0):
< 250 CWD command successful.
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> EPSV
* Connect data stream passively
* TLSv1.3 (IN), TLS app data, [no content] (0):
< 229 Entering Extended Passive Mode (|||60770|)
*   Trying 92.218.125.113...
* TCP_NODELAY set
* Connecting to 92.218.125.113 (92.218.125.113) port 60770
* connect to 92.218.125.113 port 32753 failed: Connection refused
* Failed to connect to u***********u.myfritz.net port 32753: Connection refused
* Failed EPSV attempt. Disabling EPSV
* TLSv1.3 (OUT), TLS app data, [no content] (0):
> PASV
* TLSv1.3 (IN), TLS app data, [no content] (0):
< 227 Entering Passive Mode (92,218,125,113,230,160)
* Skip 92.218.125.113 for data connection, re-use u************u.myfritz.net instead
*   Trying 92.218.125.113...
* TCP_NODELAY set
*** Connecting to 92.218.125.113 (92.218.125.113) port 59040**
* connect to 92.218.125.113 port 32753 failed: Connection refused
* Failed to connect to u**************u.myfritz.net port 32753: Connection refused
* Closing connection 0
* TLSv1.3 (OUT), TLS alert, [no content] (0):
* TLSv1.3 (OUT), TLS alert, close notify (256):
curl: (7) Failed to connect to upfamnsqwzodew4u.myfritz.net Port 32753: Connection refused

여기서 무슨 일이 일어나고 있는지 잘 모르겠습니다. EPSV 및 PAS 명령을 사용하면 FRITZ!Box가 새 포트(60770 / 59040)를 보내는 것처럼 보이지만 이전 포트에 연결됩니까?

서버 측에 문제가 있습니까, 아니면 클라이언트 측에 있습니까?

이 의사소통을 작동시킬 수 있는 방법이 있나요? 어쩌면 내 FRITZ!Box 설정을 통해서일까요?

cygwin을 사용하여 fritzbox에 도달하려고 시도했으며 결과는 다음과 같습니다.

$ curl -vvv --ftp-pasv --ssl -k -u speedITBackup 'ftp://u********u.myfritz.net:32753/Backup/Superfein/'
Enter host password for user 'speedITBackup':
*   Trying 92.218.125.113:32753...
* connect to 92.218.125.113 port 32753 failed: Timed out
* Failed to connect to u*************u.myfritz.net port 32753 after 21110 ms: Timed out
* Closing connection 0
curl: (28) Failed to connect to u************u.myfritz.net port 32753 after 21110 ms: Timed out

답변1

내 안드로이드 TV와 fritzbox 3490에 x-plore가 설치되어 있습니다. 그리고 fritzbox smb ftp의 USB에 있는 HDD를 사용하여 TV에서 영화를 보았습니다.

갑자기 x-plore에서 ftp 연결까지의 시간 초과가 발생합니다. 왜 이런 일이 발생하는지 아시나요? 설정에서 아무것도 바꾸지 않았는데..

답변2

저는 FRITZ!Box 7520을 가지고 있고 FTP 서버도 실행하고 있습니다. 로컬 LAN뿐만 아니라 외부에서도 액세스하고 있습니다. Android에서 Total Commander + FTP 플러그인을 사용하고 있습니다. 저도 myFritz를 사용하고 있어요.

FTP에는 3가지 유형이 있습니다.

  1. 암호화되지 않은 FTP(여러 포트 사용)
  2. FTPS(보안 FTP, 여러 포트 사용)
  3. SFTP(SSH를 통한 FTP, 단일 포트 사용)

FRITZ!Box는 1과 2만 지원합니다. SFTP에는 포트가 하나만 필요하므로 이것이 방화벽에 있어서 가장 쉬운 옵션이기 때문에 안타깝습니다.

귀하의 컬 명령은 FTPS를 사용하고 있습니다. 연결할 수 있지만 파일 나열을 시도하면 수동 모드로 들어갈 수 없기 때문에 실패합니다.

다음 로그 라인은 의심스럽습니다.

*** Connecting to 92.218.125.113 (92.218.125.113) port 59040**
* connect to 92.218.125.113 port 32753 failed: Connection refused

포트 59040에서 연결을 시도한 다음 포트 32753에서 연결에 실패했다는 메시지가 표시됩니다. 나에게는 이것이 컬의 버그처럼 보입니다.

다음을 실행하세요:

curl --version

내 것은 7.74.0입니다. 이 버전에 가까운 모든 것이 허용됩니다. 운이 좋으면 컬만 업데이트하면 됩니다.

다음을 시도해 볼 수도 있습니다.

  • 로컬 LAN에서 동일한 컬 명령을 사용하고 성공하는지 확인하십시오. 예를 들어 cygwin을 사용하여 Windows에서 실행할 수 있습니다.
  • 성공하면 외부에서 시도해 보세요.
  • 컬 대신 wget을 사용하세요

편집: 댓글에서 호스팅 업체가 49152에서 65534 사이의 나가는 포트를 차단한다고 말씀하셨습니다. 이러한 포트는 읽을 수 있듯이 동적, 개인 또는 임시 포트라고 합니다.위키피디아. 하지만 이 포트만 차단하고 다른 포트는 모두 허용하는 것이 합당한지 모르겠습니다.

아래 스크린샷은 FRITZ!Box FTP 설정을 보여줍니다. 패시브 모드 포트 변경은 불가능한 것 같습니다. 기본 포트만 변경할 수 있습니다.

문제를 해결하려면 다음을 수행하세요.

  • 다른 호스팅 업체로 전환
  • 프록시 사용(curl은 프록시를 지원함)
  • FTP 서버를 실행하는 Raspberry Pi를 사용하십시오.
  • 활성 모드 사용

여기에 이미지 설명을 입력하세요

관련 정보