Windows/Linux环境 ftp配置与操作
在通过ftp服务从Windows向Linux传输文件(压缩包,FPGA bit文件等关键场合)时,发现压缩包损坏,无法正常解压,由此对ftp,Linux控制台访问时的一些操作注意事项进行了总结。同时,一般访问ftp为了系统安全性,希望只使用特定用户账号访问指定目录,因此,对非当前Windows账号登录ftp服务的方式进行了汇总。
linux登录
> ftp 192.168.200.12
> master@ubuntu:~/test$ ftp 192.168.200.12
Connected to 192.168.200.12.
220 Microsoft FTP Service
Name (192.168.200.12:master):
...
# 登录后,使用Linux命令进行目录检索,使用get命令下载文件
ftp>get temp.zip
# 也可以指定目录
ftp>get temp.zip
# 常用操作
ftp>ls # 列目录
ftp>cd 目录名 # 进入子目录
ftp>get 文件名 # 下载文件,存放目录pwd
ftp>put 本地文件 # 上传文件
ftp>bye# 退出
Windows部署
- 2.点击右侧编辑网站->绑定->修改对外公开的IP地址和端口,默认21
- 3.点击右侧基本设置->连接为->特定用户->设置->当前用户名和密码
- 4.如果需要指定目录或更改目录,在右侧基本设置->物理路径->选择共享网络目录
- 5.以上操作完后左侧ftp名称右键重启,或在最右侧-》管理ftp站点-》重新启动
FTP 里一共就 两种核心传输模式,再加 2 种连接模式,搞懂这 4 个就永远不会传坏文件、连不上服务器。
一、传输模式(决定文件会不会损坏)
1. ASCII 模式(默认,危险!)
- 用途:纯文本文件
.txt / .sh / .c / .cpp / .h / .py / .html / .log 等 - 行为:自动换行符转换(Windows
\r\n ↔ Linux \n) - 危险: 一旦用来传 压缩包、图片、程序、固件 → 直接损坏文件你刚才的 zip 损坏就是这个原因
启用(一般不用手动开):
ascii
2. Binary 模式(二进制模式,必须记牢)
- 用途:所有非文本文件
.zip / .7z / .rar / .dll / .exe / .so / .jpg / .png / .pdf / .xls / .docx
启用:
binary
二、连接模式(决定能不能连上、卡不卡)
1. PORT 模式(主动模式,老式)
2. PASV 模式(被动模式,现代必用)
- 防火墙、NAT、云服务器、局域网共享 100% 要用 PASV
你在 Linux ftp 里连 Windows FTP 经常连不动,就输:
passive
或
quote pasv
三、最简单记忆口诀
- Windows ↔ Linux 互传 → 一律先敲
binary
Linux打开图形界面
Linux 图形界面访问 FTP,最顺手的方式是用系统自带文件管理器,或用专业客户端 FileZilla。下面按桌面环境给出最简步骤。
通用推荐:GNOME/KDE 自带文件管理器(免安装)
1)GNOME(Ubuntu、Fedora 等默认)
- 地址栏直接输:
ftp://服务器IP(如 ftp://192.168.1.100)
- 弹出凭证框:输用户名/密码;匿名 FTP 直接点连接
2)KDE(KDE Plasma 桌面)
地址写法要点
- 标准格式:
ftp://user@host/path 或 ftp://host - 带账号密码(一次性):
ftp://user:pass@host
更稳更强:FileZilla(跨平台专业客户端)
安装(Debian/Ubuntu)
sudo apt update && sudo apt install filezilla
连接步骤
- 打开 FileZilla → 文件 → 站点管理器 → 新站点
- 协议选“FTP”;主机填 IP;端口 21;输账号密码
- 连接后左右双栏:拖拽传输;支持断点续传、队列、权限修改
关键提醒(避免传坏文件)
- 传 zip/7z/exe/图片等二进制文件:必须先输
binary - 跨系统连接不顺时:输
passive 切换被动模式
最快一步
打开文件管理器,地址栏粘贴:
ftp://192.168.1.100
回车后输账号密码,即可像本地目录一样操作。
不同Windows系统如何创建ftp专用账号
出现“未发现本地用户和组”,90% 是 Windows 家庭版(专业/企业版才有 lusrmgr.msc),或权限/加载异常。按系统版本给你两套直达方案:
一、先确认系统版本
二、专业版/企业版
方法 1:直接打开
Win+R → 输 lusrmgr.msc → 回车(直接打开本地用户和组)
方法 2:修复计算机管理
- 选“本地用户和组” → “添加” → 选“本地计算机” → “确定”
方法 3:以管理员身份运行
- 右键“开始” → “Windows 终端(管理员)”
- 执行:
runas /user:Administrator compmgmt.msc
三、家庭版
家庭版没有 lusrmgr.msc,用以下命令行/设置替代:
1)PowerShell 命令行(推荐,可建 FTP 用户)
- 建 FTP 用户(例:用户
ftpuser,密码 Pass@123456):
# 创建用户(需强密码)
New-LocalUser -Name "ftpuser" -Password (ConvertTo-SecureString "Pass@123456" -AsPlainText -Force) -PasswordNeverExpires
# $true,因系统差异,我的环境是Win11,在上述命令后面不需要添加$true
# 添加到用户组(获取权限)
Add-LocalGroupMember -Group "Users" -Member "ftpuser"
# 可选:添加到管理员组(更高权限)
# Add-LocalGroupMember -Group "Administrators" -Member "ftpuser"
- 验证:
Get-LocalUser 可看到刚建的用户
2)系统设置(管理用户)
- 可添加/删除用户、改权限,但不能精细管理组,配合命令行更稳
3)第三方工具(图形化,省心)
- 下载:Computer Management 替代工具(如 AOMEI Partition Assistant 标准版)
- 打开工具 → 找“用户管理” → 可建用户、改组,与
lusrmgr.msc 类似
四、常见问题排查
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth
完成后重启重试
五、后续 FTP 配置衔接
建完用户后,继续做 IIS FTP 授权:
- 打开 IIS → 你的 FTP 站点 → “FTP 身份验证”:禁用匿名,启用基本身份验证
- “FTP 授权规则” → 添加允许规则:选“指定用户”,填刚建的
ftpuser - 给 FTP 物理目录加权限:右键目录 → “属性” → “安全” → 添加
ftpuser,分配读取/写入
- 专业版用
lusrmgr.msc 或修复 MMC 单元; - 家庭版用 PowerShell 命令行建用户,或用第三方工具。
- 建完用户后按上面步骤配置 IIS,即可指定非当前账户登录 FTP。
要在 Linux 图形界面(或命令行)访问 Windows FTP 时指定非当前 Windows 账户,核心是两点:
- Windows 端:先建好独立 FTP 用户(本地账户)
下面分 Windows 配置 和 Linux 访问 两部分讲清楚。
使用非当前Windows账号登录
一、Windows 端:创建专用 FTP 用户(IIS)
Windows 自带 IIS FTP 只能用 Windows 本地用户/域用户 登录,不能凭空造账号。
1. 创建 Windows 本地用户
- 按
Win+R → 输入 compmgmt.msc → 打开 计算机管理
2. 配置 IIS FTP 站点(关键)
- 添加用户
ftpuser → 赋予 读取/写入 权限
二、Linux 端:用指定用户登录(图形+命令)
方法 1:文件管理器(Nautilus/Dolphin)最常用
ftp://ftpuser@192.168.1.100
ftpuser = 你在 Windows 建的专用用户192.168.1.100 = Windows FTP 地址
带端口写法(非21):
ftp://ftpuser@192.168.1.100:2121
方法 2:连接到服务器
ftp://ftpuser@192.168.1.100
方法 3:命令行(ftp / lftp)指定用户
(1)系统 ftp
ftp 192.168.1.100
# 连接后手动指定用户
user ftpuser
# 再输密码
(2)lftp(推荐,支持 binary/passive)
lftp ftpuser@192.168.1.100
# 或带密码(一次性)
lftp ftpuser:密码@192.168.1.100
# 进入后必开
binary
passive
ls
以上就是针对ftp服务传输二进制文件时遇到问题的解决方案分享汇总。