ftp:connect:未知错误号 (或者530 Permission denied.)

默认情况下不需要修改就可以在虚拟机上访问的,如: 

Python代码 复制代码  收藏代码
  1. [root@tong vsftpd]# ftp 127.0.0.1    
  2. Connected to 127.0.0.1 (127.0.0.1).    
  3. 220 (vsFTPd 2.1.2)    
  4. Name (127.0.0.1:tong): ftp//匿名登录默认用户名,密码也是;也可都用anonymous    
  5. 331 Please specify the password.    
  6. Password:    
  7. 230 Login successful. //恭喜您,已成功登陆    
  8. Remote system type is UNIX.    
  9. Using binary mode to transfer files.    
  10. ftp>   
[root@tong vsftpd]# ftp 127.0.0.1 
Connected to 127.0.0.1 (127.0.0.1). 
220 (vsFTPd 2.1.2) 
Name (127.0.0.1:tong): ftp//匿名登录默认用户名,密码也是;也可都用anonymous 
331 Please specify the password. 
Password: 
230 Login successful. //恭喜您,已成功登陆 
Remote system type is UNIX. 
Using binary mode to transfer files. 
ftp> 

 
不过,先别高兴太早,这只是在本虚拟机上可以访问,在宿主机上呢,我用的是xp 
通过cmd命令会出现如下错误 

 

Python代码 复制代码  收藏代码
  1. C:\Documents and Settings\Administrator>ftp 10.4.141.15    
  2. > ftp: connect :未知错误号   
C:\Documents and Settings\Administrator>ftp 10.4.141.15 
> ftp: connect :未知错误号 

 
10.4.141.15是我的虚拟机Linux的ip地址 
当然此时要保证宿主机和虚拟机能相互ping通! 
针对这个错误,我们应该进行如下设置 
将Linux的防火墙关掉,如下命令: 
 

Python代码 复制代码  收藏代码
  1. service iptables stop   
service iptables stop 

 

停掉防火墙以后还是不能访问,此时我们就要考虑防火墙表面上关掉了,其实底部还有某些驱动在运行,这就是我们的21端口还被防火墙限制访问,所以我们要开放21端口,命令如下: 
iptables -A INPUT -p tcp -sport 21 -j ACCEPT 
iptables -A INPUT -p tcp -dport 21 -j ACCEPT 

至此,我们就可以在客户端访问我们的sftpd服务了,剩下的设置就简单了,访问权限之类的。。。

<think>嗯,用户想了解如何通过FTP协议远程创建目录。让我先看看他们提供的引用资料。首先,引用[1]提到在Windows本地主机使用FTP上传文件到云服务器,但具体创建目录的方法可能在不同系统中有所不同。引用[2]展示了C++使用SFML库的示例,里面提到了连接FTP服务器和创建目录的代码。引用[4]则涉及Java在FTP服务器创建目录的步骤,包括拷贝样本文件。用户需要的是通用的步骤和不同编程语言的示例教程。 首先,我应该整理通用的操作步骤,比如连接服务器、验证权限、发送创建目录命令,然后检查是否成功。然后,针对不同编程语言给出示例,比如Python、C++、Java,可能还要提到命令行工具,这样用户可以根据自己的需求选择方法。需要注意的是权限问题,引用[3]提到文件夹权限设置,可能需要提醒用户确保有足够的权限来创建目录。 还要确保步骤清晰,每个示例的代码语法正确,比如Python中使用ftplib库,C++的SFML示例,Java的Apache Commons Net库。另外,用户可能需要知道如何处理可能的错误,比如连接失败或权限不足。最后,相关问题部分要涵盖权限设置、错误处理、其他协议对比等,帮助用户扩展了解。要确保回答结构清晰,分步骤说明,并引用提供的资料中的相关信息,比如引用[2]和[4]的代码示例。</think>### 如何通过FTP协议远程创建目录? 通过FTP协议远程创建目录的核心步骤包括**连接服务器**、**权限验证**、**发送创建命令**和**结果验证**。以下是具体实现方法和示例: --- #### 一、通用操作步骤 1. **建立FTP连接** 使用FTP客户端或代码库连接目标服务器,例如通过IP地址和端口(默认21)[^2]。 2. **身份验证** 提供有效的用户名和密码,确保账户具备**创建目录的权限**[^3]。 3. **发送创建命令** 执行`MKD`或`MKDR`命令(不同协议实现可能不同),指定新目录名称。 4. **验证结果** 检查服务器返回的状态码(例如`250`表示成功,`550`表示权限不足或路径错误)。 --- #### 二、不同编程语言实现示例 ##### 1. Python示例(使用`ftplib`库) ```python from ftplib import FTP # 连接服务器 ftp = FTP('ftp.example.com') ftp.login(user='username', passwd='password') # 创建目录 try: ftp.mkd('new_directory') print("目录创建成功") except Exception as e: print(f"失败:{str(e)}") ftp.quit() ``` ##### 2. C++示例(使用SFML库) 引用[2]中的代码片段扩展: ```cpp #include <SFML/Network.hpp> void createRemoteDirectory() { sf::Ftp server; // 连接服务器 if (server.connect("127.0.0.1") != sf::Ftp::ResponseCode::Connected) { // 处理连接失败 } // 登录 if (server.login("username", "password").isOk()) { // 创建目录 sf::Ftp::Response response = server.createDirectory("new_folder"); if (response.isOk()) { // 目录创建成功 } } } ``` ##### 3. Java示例(使用Apache Commons Net) 引用[4]的流程扩展: ```java import org.apache.commons.net.ftp.FTPClient; public class FtpCreateDir { public static void main(String[] args) { FTPClient ftp = new FTPClient(); try { ftp.connect("ftp.example.com"); ftp.login("username", "password"); // 检查权限并创建目录 if (ftp.makeDirectory("/remote_path/new_dir")) { System.out.println("目录创建成功"); } else { System.out.println("失败:" + ftp.getReplyCode()); } } catch (Exception e) { e.printStackTrace(); } } } ``` ##### 4. 命令行工具(如Windows的`ftp`命令) ```bash ftp ftp.example.com > username > password > mkdir new_directory > quit ``` --- #### 三、关键注意事项 - **权限问题**:确保账户对目标路径有写入权限,可通过服务器配置调整。 - **路径规范**:使用绝对路径(如`/var/ftp/new_dir`)或相对路径(取决于FTP根目录设置)。 - **错误处理**:捕获`550 Permission denied`或`553 Invalid name`等错误。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值