Ubuntu 上安裝 FTP 服務、開放指定端口并創建用戶

一、安裝 FTP 服務(vsftpd)

sudo apt update
sudo apt install vsftpd -y

二、修改 vsftpd 配置,使用 21000 端口

編輯配置文件:

sudo nano /etc/vsftpd.conf

修改或添加以下配置:

使用以下配置文件需要修改的地方:listen_port=21000      			    # 替換為自己的ftp端口
pasv_min_port=20009        		    # 被動模式使用的端口范圍(最小端口)
pasv_max_port=20009		 			# 被動模式使用的端口范圍(最大端口)
local_root=/usr/local/nginx/html    # 本地用戶的根目錄路徑 (連接建立后默認目錄)
# 是否以獨立模式運行?vsftpd 可以從 inetd 啟動,也可以作為獨立守護進程從初始化腳本啟動。
listen=YES# 此指令啟用 IPv6 套接字監聽。默認情況下,監聽 IPv6 "any" 地址 (::) 將接受 IPv6 和 IPv4 客戶端的連接。
# 不需要同時監聽 IPv4 和 IPv6 套接字。如果需要(例如監聽特定地址),則必須運行兩個 vsftpd 實例,并使用兩個配置文件。
#listen_ipv6=YES# 指定 FTP 服務監聽的端口號
listen_port=21000# 啟用被動模式
pasv_enable=YES
# 被動模式使用的端口范圍(最小端口)
pasv_min_port=20009
# 被動模式使用的端口范圍(最大端口)
pasv_max_port=20009# 是否允許匿名 FTP?(默認禁用)
anonymous_enable=NO# 是否允許本地用戶登錄
local_enable=YES# 是否啟用任何形式的 FTP 寫入命令
write_enable=YES# 本地用戶的默認 umask 是 077。可以改為 022(大多數其他 FTP 服務使用 022)
#local_umask=022# 是否允許匿名用戶上傳文件?僅在全局寫入啟用時有效。還需要創建一個 FTP 用戶可寫的目錄。
#anon_upload_enable=YES# 是否允許匿名用戶創建新目錄?
#anon_mkdir_write_enable=YES# 是否啟用目錄消息 - 遠程用戶進入特定目錄時顯示的消息
dirmessage_enable=YES# 是否使用本地時區顯示目錄列表時間?默認顯示 GMT 時間。MDTM FTP 命令返回的時間也受此選項影響。
use_localtime=YES# 是否啟用上傳/下載日志記錄
xferlog_enable=YES# 確保 PORT 傳輸連接從端口 20(ftp-data)發起
connect_from_port_20=YES# 是否將匿名用戶上傳的文件所有者更改為其他用戶?不建議使用 "root"!
#chown_uploads=YES
#chown_username=whoever# 可以自定義日志文件路徑,默認如下
#xferlog_file=/var/log/vsftpd.log# 是否使用標準 ftpd xferlog 格式記錄日志?默認日志位置為 /var/log/xferlog
#xferlog_std_format=YES# 可以更改空閑會話的超時時間(秒)
#idle_session_timeout=600# 可以更改數據連接的超時時間(秒)
#data_connection_timeout=120# 建議在系統中定義一個唯一用戶,FTP 服務可以將其用作完全隔離且無特權的用戶
#nopriv_user=ftpsecure# 是否啟用異步 ABOR 請求識別?不建議啟用(代碼復雜),但禁用可能會使舊版 FTP 客戶端困惑
#async_abor_enable=YES# 默認情況下,服務器假裝允許 ASCII 模式但實際忽略請求。啟用以下選項可真正支持 ASCII 模式(不推薦,可能存在安全風險)
#ascii_upload_enable=YES
#ascii_download_enable=YES# 可以自定義登錄歡迎信息
#ftpd_banner=Welcome to blah FTP service.# 可以指定禁止的匿名電子郵件地址文件,用于防止某些 DoS 攻擊
#deny_email_enable=YES
# (默認如下)
#banned_email_file=/etc/vsftpd.banned_emails# 是否將本地用戶限制在其主目錄中?使用前請參閱 FAQ 了解風險
# chroot_local_user=YES# 允許 chroot 目錄可寫(需謹慎)
allow_writeable_chroot=YES# 是否將本地用戶 chroot() 到其主目錄?如果啟用,以下列表將成為不 chroot 的用戶列表
# (警告:chroot 可能非常危險。使用時確保用戶對 chroot 的頂級目錄沒有寫權限)
chroot_local_user=YES
# 本地用戶的根目錄路徑
local_root=/usr/local/nginx/html
# 是否啟用 chroot 用戶列表?
#chroot_list_enable=YES
# (默認如下)
#chroot_list_file=/etc/vsftpd.chroot_list# 是否啟用內置 ls 的 "-R" 選項?默認禁用以避免遠程用戶在大站點上引發過多 I/O
# 但某些 FTP 客戶端(如 "ncftp" 和 "mirror")需要此選項
#ls_recurse_enable=YES# 自定義設置
#
# 某些 vsftpd 設置默認不匹配文件系統布局# 此選項應為一個空目錄名,且 FTP 用戶不可寫。此目錄用作安全 chroot() 隔離區
secure_chroot_dir=/var/run/vsftpd/empty# 指定 vsftpd 使用的 PAM 服務名稱
pam_service_name=vsftpd# 指定用于 SSL 加密連接的 RSA 證書位置
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
# 是否啟用 SSL?
ssl_enable=NO# 是否啟用 UTF-8 文件系統支持?
#utf8_filesystem=YES

三、創建用戶 ftpuser 并設置密碼


sudo adduser ftpuser
# 當提示輸入密碼時,輸入密碼Enter new UNIX password:        ← 輸入密碼
Retype new UNIX password:       ← 再輸一遍密碼Full Name []:                   ← 直接按 Enter
Room Number []:                 ← 直接按 Enter
Work Phone []:                  ← 直接按 Enter
Home Phone []:                  ← 直接按 Enter
Other []:                       ← 直接按 Enter
Is the information correct? [Y/n] ← 輸入 Y 然后回車

用戶目錄默認是 /home/ftpuser,vsftpd 會將其作為根目錄。


四、設置用戶目錄權限

如果需要上傳文件,則需要確保 ftpuser 擁有寫權限:

# 如果說我們只允許操作Nginx的/html目錄, 對應著 /etc/vsftpd.conf 中的local_root配置
sudo chown -R ftpuser:ftpuser /usr/local/nginx/html

五、開放防火墻端口(21000 及被動模式端口)

如果使用的是 ufw(Ubuntu 默認防火墻),執行:

如果是阿里云等服務器需要在安全組中開放對應端口

# ftp監聽端口
sudo ufw allow 21000/tcp
# 被動模式中啟用范圍端口, 這里使用的是20009
sudo ufw allow 20009:20009/tcp
sudo ufw reload

六、重啟 vsftpd 服務

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

七、測試 FTP

可以通過 FileZilla 或命令行工具連接:

  • 主機:你的服務器IP
  • 端口:21000
  • 用戶名:ftpuser
  • 密碼:你的密碼

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/81020.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/81020.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/81020.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用自寫的jQuery庫+Ajax實現了省市聯動

1. 省市聯動:在網頁上,選擇對應的省份之后,動態的關聯出該省份對應的市。選擇對應的市之后,動態地關聯出城市對應的區。 2. 設計數據庫表 t_area (區域表) id(PK-自增) code name pcode ------------…

【行為型之迭代器模式】游戲開發實戰——Unity高效集合遍歷與場景管理的架構精髓

文章目錄 🔄 迭代器模式(Iterator Pattern)深度解析一、模式本質與核心價值二、經典UML結構三、Unity實戰代碼(背包系統遍歷)1. 定義迭代器與聚合接口2. 實現具體聚合類(背包物品集合)3. 實現具…

18前端項目----Vue項目收尾優化|重要知識

收尾/知識點匯總 項目收尾二級路由未登錄全局路由守衛路由獨享守衛圖片懶加載路由懶加載打包上線 重要知識點匯總組件通信方式1. props2. 自定義事件3. 全局事件總線4. 訂閱與發布pubsub5. Vuex6. 插槽 sync修飾符attrs和listeners屬性children和parent屬性mixin混入作用域插槽…

【Linux】基礎指令(Ⅱ)

目錄 1. mv指令 2. cat指令 3.echo指令 補:輸出重定向 4. more指令 5. less指令 6. head指令和tail指令 7.date指令 時間戳: 8. cal指令 9. alias指令 10.grep指令 1. mv指令 語法:mv [選項]... 源文件/目錄 目標文件/目錄 …

docker及docker-compose安裝及使用

docker compose 🔗官網地址 一、為什么要使用docker compose 1. 簡化管理 ? 通過一個 YAML 文件定義和管理多容器應用。 ? 簡化服務間的編排與協調,方便環境的管理與復制。 2. 提升協作效率 ? 配置文件易于共享,便于開發、運維等團隊協…

JVM學習專題(二)內存模型深度剖析

目錄 1.JVM結構體系 ?編輯 2.跨平臺特性 3.JVM整體結構及內存模型 1.棧內存 1、棧幀: 1.局部變量表 2.操作數棧 3.動態鏈接 4.方法出口 2、創建對象 2.程序計數器: 3.方法區 ?4.堆 5.本地方法區 6.總結 1.JVM結構體系 JDK、JRE 和 JVM…

Flink之Table API

Apache Flink 的 Table API 是 Flink 提供的一種高級抽象,用于以聲明式方式處理批處理和流處理數據。它是基于關系模型的 API,用戶可以像編寫 SQL 一樣,以簡潔、類型安全的方式編寫數據處理邏輯。 一、基本概念 1. 什么是 Table API&#xf…

基于Vue3.0的高德地圖api教程005:實現繪制線并編輯功能

文章目錄 6、繪制多段線6.1 繪制多段線6.1.1 開啟繪制功能6.1.2 雙擊完成繪制6.1.3 保存到數據庫6.2 修改多段線6.2.1 點擊線,進入編輯模式6.2.2 編輯線6.3 完整代碼6、繪制多段線 6.1 繪制多段線 6.1.1 開啟繪制功能 實現代碼: const changeSwitchDrawPolyline = ()=>…

“redis 目標計算機積極拒絕,無法連接” 解決方法,每次開機啟動redis

如果遇到以上問題 先打開“服務” 找到App Readiness 右擊-啟動 以管理員身份運行cmd,跳轉到 安裝redis的目錄 運行:redis-server.exe redis.windows.conf 以管理員身份打開另一cmd窗口,跳轉到安裝redis的目錄 運行:redis-…

Java 大視界——Java 大數據在智慧交通智能停車誘導系統中的數據融合與實時更新

面對城市停車資源錯配導致的30%以上交通擁堵問題&#xff0c;本文以某新一線城市智慧交通項目為藍本&#xff0c;深度解析Java大數據技術如何實現多源停車數據融合、動態路徑規劃與誘導策略優化。通過構建“感知-計算-決策”全鏈路系統&#xff0c;實現車位狀態更新延遲<200…

牛客周賽 Round 92(再現京津冀藍橋杯???)

1. 小紅的簽到題 現在小紅希望你寫出一個長度為 nnn 的、使用了下劃線命名法命名的變量。為了顯出特征&#xff0c;請保證該變量至少由兩個單詞組成。 輸入描述: 輸入一個正整數 n(3≦n≦100)&#xff0c;代表需要構造的變量長度。 輸出描述: 輸出一個長度為 n 的字符串&#x…

2025-05-11 Unity 網絡基礎11——UnityWebRequest

文章目錄 1 UnityWebRequest 介紹2 搭建 HTTP 服務器3 常用操作3.1下載資源3.1.1 下載文本3.1.2 下載圖片3.1.3 下載 AB 包 3.2 上傳資源3.2.1 上傳數據類3.2.2 POST 上傳3.3.3 PUT 上傳 4 自定義操作4.1 下載資源4.1.1 Unity 內置 Handler4.1.2 自定義 Handler 4.2 上傳資源4.…

GitHub 趨勢日報 (2025年05月09日)

本日報由 TrendForge 系統生成 https://trendforge.devlive.org/ &#x1f310; 本日報中的項目描述已自動翻譯為中文 &#x1f4c8; 今日整體趨勢 Top 10 排名項目名稱項目描述今日獲星總星數語言1voideditor/void? 1879? 15214TypeScript2ruanyf/weekly科技愛好者周刊&…

.NET MAUI 基礎知識

文章目錄 什么是 .NET MAUI&#xff1f;MAUI的核心特點與Xamarin.Forms的區別 開發環境搭建安裝Visual Studio 2022安裝必要組件配置Android開發環境配置iOS開發環境驗證安裝 創建第一個MAUI應用創建新項目MAUI項目結構解析理解關鍵文件運行應用程序簡單修改示例使用熱重載 MAU…

卷積神經網絡全連接層詳解:特征匯總、FCN替代與性能影響分析

【內容摘要】 本文聚焦卷積神經網絡&#xff08;CNN&#xff09;的全連接層&#xff0c;詳細介紹其將二維特征圖轉化為一維向量的過程&#xff0c;闡述全卷積網絡&#xff08;FCN&#xff09;如何通過轉置卷積替代全連接層以實現像素級分類&#xff0c;并分析全連接層對圖像分類…

在C++中進行套接字編程時,主要使用以下頭文件

目錄 一.基本套接字頭文件<sys/socket.h><netinet/in.h><arpa/inet.h><unistd.h><netdb.h> 二. 完整示例頭文件包含三. 注意事項 在C中進行套接字編程時&#xff0c;主要使用以下頭文件&#xff1a; 一.基本套接字頭文件 <sys/socket.h>…

【Linux網絡】HTTP

應用層協議 HTTP 前置知識 我們上網的所有行為都是在做IO&#xff0c;&#xff08;我的數據給別人&#xff0c;別人的數據給我&#xff09;圖片。視頻&#xff0c;音頻&#xff0c;文本等等&#xff0c;都是資源答復前需要先確認我要的資源在哪臺服務器上&#xff08;網絡IP&…

JAVA異常體系

在 Java 里&#xff0c;異常體系是其錯誤處理機制的核心內容&#xff0c;它能夠幫助開發者有效應對程序運行時出現的各種意外狀況。 異常體系的基本架構 它主要包含兩個重要分支&#xff1a; Error&#xff08;錯誤&#xff09;&#xff1a;這類異常是程序自身無法處理的嚴重…

vue 去掉右邊table的下拉條與下面的白色邊框并補充滿

::v-deep table {width: 100% !important; } ::v-deep .el-table::after, .el-table::before {display: none !important; }/* 隱藏滾動條但保留滾動功能 */ ::v-deep .el-table__body-wrapper::-webkit-scrollbar {width: 0 !important;height: 0 !important; }::v-deep .el-t…

uniapp+vue3+uview來開發我們的項目

前言&#xff1a; 就像我們vue的web的框架element、iview等一樣&#xff0c;我們的uni-app開發也有適合的他的框架&#xff0c;除了他本身的擴展組件以外&#xff0c;第三方好用的就是就是uview了。 實現效果&#xff1a; 官網信息&#xff1a; vue2版本&#xff1a;uview-ui …