Я создал FTP-сервер с Pyftpdlib, и я хотел бы иметь возможность подключиться к серверу из другой страны / IP-адреса, и я попытался загрузить свой скрипт (в форме exe) другу в другой частистрана, и я не мог соединиться (простой тайм-аут / недействительный ошибка).Как мне подключиться к ftp-серверу, который не находится рядом со мной?
Сервер
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
import requests
import mysql.connector
sqlpass = "THIS ISNT THE PASSWORD"
def ftp_main():
mydb = mysql.connector.connect(
host="remotemysql.com",
port="3306",
user="NOT TELLING",
passwd=sqlpass,
database="NO THANKS"
)
mycursor = mydb.cursor()
mycursor.execute("SELECT Username, Password FROM NO-THANKS")
myresult = mycursor.fetchall()
Username, Password = myresult[0]
print(Username + " " + Password)
authorizer = DummyAuthorizer()
authorizer.add_user(Username, Password, 'C:/', perm='elradfmwMT')
authorizer.add_anonymous('C:/')
handler = FTPHandler
handler.authorizer = authorizer
handler.banner = "Test Banner"
# Instantiate FTP server class and listen on 0.0.0.0:2121
address = ('0.0.0.0', 21)
server = FTPServer(address, handler)
# start ftp server
server.serve_forever()
ftp_main()
Клиент
from ftplib import FTP
ftp = FTP('104.193.20.211')
ftp.login("user", "pass")
ftp.retrlines('LIST')
ftp.cwd("Users/TEST/Desktop")
ftp.retrlines('LIST')
getfile = 'test1.txt'
command = 'RETR'
ftp.retrbinary(command + " " + getfile, open('test1.txt', 'wb').write)
Я ожидаю подключения и возможности перечисления файлов, но я просто не могу подключиться.