可以使用 Python 第三方庫(kù)中的 pyftpdlib 來(lái)快速搭建一個(gè)本地局域網(wǎng) FTP 服務(wù)器,只需幾行代碼即可完成,適合臨時(shí)文件傳輸、跨設(shè)備共享等場(chǎng)景。
一、準(zhǔn)備工作
1、安裝第三方庫(kù) pyftpdlib。
pip install pyftpdlib2、準(zhǔn)備一個(gè)用于共享的本地目錄(如 D:\ftp_root)。
二、最簡(jiǎn)版 FTP 服務(wù)器(匿名訪(fǎng)問(wèn))
from pyftpdlib.servers import FTPServer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.authorizers import DummyAuthorizer
authorizer = DummyAuthorizer()
authorizer.add_anonymous("D:/ftp_root") # 共享目錄路徑(匿名可讀)
handler = FTPHandler
handler.authorizer = authorizer
server = FTPServer(("0.0.0.0", 2121), handler) # 本機(jī)所有網(wǎng)卡,端口 2121
print("FTP server running at ftp:// :2121/" )
server.serve_forever()(1)替換 "D:/ftp_root" 為你要共享的文件夾路徑。
(2)局域網(wǎng)內(nèi)其他設(shè)備訪(fǎng)問(wèn):在資源管理器窗口的地址欄或 FTP 客戶(hù)端輸入 ftp://你的IP:2121/。
例如:
ftp://192.168.1.101:2121/三、帶賬號(hào)密碼的 FTP 服務(wù)器
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
authorizer = DummyAuthorizer()
authorizer.add_user("user1", "123456", "D:/ftp_root", perm="elradfmw") # 權(quán)限全開(kāi)
# perm 說(shuō)明:e=更改權(quán)限、l=列目錄、r=讀取、a=添加文件、d=刪除、f=重命名、m=創(chuàng)建目錄、w=寫(xiě)入
handler = FTPHandler
handler.authorizer = authorizer
server = FTPServer(("0.0.0.0", 2121), handler)
print("FTP with login: ftp://user1:123456@ :2121" )
server.serve_forever()◆◆ ◆
補(bǔ)充說(shuō)明
1、從 2021 年開(kāi)始,主流瀏覽器出于安全考慮,逐步廢棄了對(duì) FTP 協(xié)議的原生支持。
2、默認(rèn)不支持加密傳輸(FTP over TLS/SSL),適合局域網(wǎng)安全環(huán)境。
3、不建議用于公網(wǎng)服務(wù)場(chǎng)景。
4、如防火墻或安全軟件攔截,請(qǐng)手動(dòng)放行端口 2121。
5、如果你想要一個(gè)臨時(shí)的文件分享方案,這是最簡(jiǎn)單、最快捷的方式之一。需要更強(qiáng)大的權(quán)限控制或 Web 界面時(shí),可考慮更高級(jí)的 FTP 服務(wù)器軟件。
“點(diǎn)贊有美意,贊賞是鼓勵(lì)”
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.