FTP服务器域名设置的核心答案是:把域名通过A记录解析到服务器公网IP,然后在FTP软件中绑定域名并配置被动模式端口范围,最后在防火墙放行这些端口,三步做完域名就能直接访问FTP服务。
很多人在配置FTP服务器时,IP地址都能连上,但换成域名就卡壳,原因不外乎DNS解析没生效、FTP软件没绑定域名、或者被动模式端口被防火墙拦了,下面按实际操作的顺序,把每一步掰开揉碎讲清楚。
FTP域名解析到服务器地址的完整步骤
第一步:在DNS服务商处添加A记录
登录你的域名管理后台,不管是简米云、酷番云还是Cloudflare,找到“解析设置”或“DNS管理”页面,添加一条A记录:
- 主机记录:填
ftp,这样访问地址就是ftp.yourdomain.com,如果想直接用根域名,就填 - 记录类型:选择
A - 记录值:填你服务器的公网IPv4地址
- TTL:默认即可,一般选600秒或自动
注意:解析记录添加后,全球生效需要几分钟到几小时不等,国内DNS服务器一般10分钟内生效,海外节点可能需要更久。
第二步:在FTP服务器软件中绑定域名
使用vsftpd(Linux环境)
vsftpd本身不直接绑定域名,它监听所有网卡IP,但如果你只想让特定域名指向的请求进来,可以通过修改/etc/vsftpd/vsftpd.conf实现:
listen_address=你的服务器IP
这行配置让vsftpd只监听你绑定的IP地址,如果服务器有多个IP,这个配置能有效隔离流量。
使用FileZilla Server(Windows环境)
打开FileZilla Server管理界面,点击“编辑”->“设置”->“被动模式设置”,在“使用自定义IP”处填入你的域名,例如ftp.yourdomain.com,这样FTP服务器在被动模式下返回给客户端的地址就是你的域名,而不是内网IP。
常见误区:很多人只改了解析,忘了在FTP软件里设置被动模式的自定义IP,结果客户端连接时收到服务器返回的192.168.x.x内网地址,直接连接失败。
第三步:防火墙和安全组放行端口
行业共识认为,FTP服务配置中最容易出问题的就是端口放行,FTP用了两个通道:
- 命令通道:默认21端口
- 数据通道:主动模式用20端口,被动模式用随机高端口
不管用的是云服务器还是物理机,都需要在防火墙规则中同时放行21端口和被动模式端口范围,以简米云安全组为例:
- 进入ECS实例->安全组->配置规则
- 添加入方向规则,协议选TCP,端口填
21/21,授权对象填0.0.0/0 - 再添一条规则,协议选TCP,端口填
40000/50000(这是vsftpd默认被动端口范围),授权对象一样
Linux服务器还要检查iptables或firewalld:
# firewalld firewall-cmd --permanent --zone=public --add-port=21/tcp firewall-cmd --permanent --zone=public --add-port=40000-50000/tcp firewall-cmd --reload
FTP服务器怎么设置域名访问的常见坑
坑一:解析记录类型选错
有些新手会把A记录误选成CNAME,A记录直接指向IP,CNAME是域名到域名的映射,FTP服务器解析必须用A记录,除非你用的是云存储服务商提供的FTP域名。
坑二:被动模式端口范围不一致
vsftpd默认被动端口范围是40000到50000,FileZilla Server默认是60000到60999,如果防火墙只放行了21端口,被动模式的数据连接会全部超时。解决方案:在vsftpd配置文件中添加:
pasv_min_port=40000 pasv_max_port=50000
然后重启服务:
systemctl restart vsftpd
坑三:客户端工具需要显式指定域名
FileZilla Client等工具在连接时,主机栏输入ftp.yourdomain.com,端口保持默认21或改成你的实际端口,有些旧版客户端对域名解析有缓存,连接失败时先清空DNS缓存:
ipconfig /flushdns # Windows sudo systemd-resolve --flush-caches # Linux
FTP域名访问不了是什么原因排查清单
如果域名解析都配置好了,依然访问不了,按下面顺序排查:
- ping域名:
ping ftp.yourdomain.com,看返回的IP是否等于服务器公网IP,如果不同,说明解析被劫持或缓存没刷新 - telnet测试21端口:
telnet ftp.yourdomain.com 21,能通会返回220开头的欢迎信息,连接失败说明端口被防火墙挡了 - 检查FTP服务状态:Linux执行
systemctl status vsftpd,Windows查看服务管理器里FileZilla Server是否在运行 - 查看客户端日志:FileZilla Client的日志窗口会明确告诉你卡在哪一步,服务器发送了不可路由的地址”“数据连接超时”等
据统计,超过半数的FTP域名连接问题出在被动模式端口没放行,其次是服务器防火墙把21端口拦了。
便宜FTP服务器域名场景下的配置差异
如果你用的是虚拟主机或轻量应用服务器,情况会有些不同,这类服务商通常已经预装了FTP服务,你只需要在控制台里绑定域名即可,以宝塔面板为例:
- 登录面板,找到“FTP”菜单
- 创建FTP账号时,在“域名绑定”处填上你的域名
- 面板会自动修改vsftpd配置并重载服务
这种场景下,域名绑定的本质是限制访问来源,未绑定的域名即使解析到服务器IP,也无法通过FTP登录,如果你在宝塔面板里创建FTP时没填域名,那任何域名都能连上,安全性较差。
FTP服务器域名设置的验证方法
配置完成后,用以下方式验证是否生效:
命令行验证
ftp ftp.yourdomain.com
输入用户名密码后,如果出现230 Login successful,说明域名设置成功。
浏览器验证
在浏览器地址栏输入ftp://ftp.yourdomain.com,如果弹出登录框并成功看到目录列表,说明FTP服务正常。
在线工具验证
用站长工具或ping.chinaz.com的“域名解析查询”,确认DNS解析记录是否正确生效,这类工具能同时查看国内多个节点的解析结果,比本地ping更全面。
FTP域名设置后的安全加固建议
域名能访问FTP后,别急着收工,建议做两步加固:
- 限制登录IP:在vsftpd的
/etc/hosts.allow和/etc/hosts.deny中配置白名单,只允许特定IP段访问FTP - 启用FTPS:用SSL/TLS加密FTP传输,vsftpd中开启
ssl_enable=YES,并配置证书路径,这样通过域名访问时,数据全程加密,不会被抓包嗅探
FTP服务器怎么设置域名才能让外网访问
外网访问的核心是确保你的服务器有公网IP,且域名解析指向的就是这个公网IP,如果你在路由器后面做内网穿透,需要额外配置端口映射:
- 路由器管理页面找到“虚拟服务器”或“端口转发”
- 外部端口填21和被动端口范围,内部IP填FTP服务器的内网地址
- 协议选TCP,保存后重启路由
这样外网用户通过ftp.yourdomain.com访问时,数据才能正确转发到内网的FTP服务器上。
常见问题解答
FTP域名解析后为什么还是无法访问?
DNS解析有缓存延迟,本地执行ipconfig /flushdns刷新缓存,再用ping ftp.yourdomain.com确认解析结果,如果IP正确但仍连不上,检查防火墙是否放行了21端口和被动模式端口范围,部分服务器运营商默认封禁21端口,比如简米云国际版,需要提交工单申请解封。
FTP服务器绑定域名和IP访问有什么区别?
域名访问依赖DNS解析,IP访问直接连服务器地址,域名可以做到IP变更后自动跟随,对用户透明,IP访问更直接,不受DNS劫持影响,但服务器迁移后需要重新通知所有用户,实际使用中,域名方式更专业,也方便配置SSL证书实现加密传输。
便宜FTP服务器域名绑定后速度变慢是怎么回事?
域名解析本身不会影响传输速度,慢在数据通道,确认FTP软件被动模式端口范围设置在10000以上,避免和系统其他服务端口冲突,如果服务器带宽小或线路差,换用更小的被动端口范围减少扫描开销,部分云服务商的带宽计费模式会影响FTP传输速率,建议按固定带宽计费而不是按流量计费。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/566169.html




