我正在尝试使用esp8266 wifi模块进行sftp连接,但我遇到了问题。首先我成功将esp8266连接到我的路由器然后我尝试使用以下命令与sftp服务器建立TCP连接
AT+CIPSTART="TCP","demo@test.rebex.net",22
但我总是从esp8266获得“DNS FAIL”回复。如何使用esp8266 wifi模块进行sftp连接?
答案 0 :(得分:2)
根据https://github.com/espressif/ESP8266_AT/wiki/CIPSTART,AT+CIPSTART
命令的语法是
AT+CIPSTART=type,addr,port
你的地址"参数必须只是主机名。您似乎在那里使用用户名(demo@test.rebex.net
)放置了一个URL。主机名应该只是test.rebex.net
,对吗?文字主机名demo@test.rebex.net
不存在,因此无法进行DNS解析,这解释了错误。然后,在协议运行中处理用户demo
的身份验证。
但请注意,SFTP是一种复杂的协议。 CIPSTART
命令只是打开一个原始TCP套接字到该主机名和那个端口。具体而言,发出该命令不会为您执行任何高级协议逻辑。它只是一个可以写入和读取的套接字。如果您的意思是SFTP FTP over SSL
,您需要能够使用所涉及的所有加密来运行SSL协议。如果SFTP指的是Secure File Transfer Protocol (SFTP)
,则需要SSH实现(以及类似的加密原语)。这些计算绝对不适合只发送AT +命令的Arduino,所以我建议直接编程ESP8266。 esp-open-rtos
有很多用于进行SSL连接的示例,但尚未实现SSH或SFTP。