ホームページ >バックエンド開発 >Golang >Go を使用して FTP サーバーに接続することはできませんが、FileZilla を使用すると接続できます

Go を使用して FTP サーバーに接続することはできませんが、FileZilla を使用すると接続できます

PHPz
PHPz転載
2024-02-09 21:51:17555ブラウズ

无法使用 Go 连接到 FTP 服务器,但可以使用 FileZilla 连接

php エディター Zimo は、Go 言語を使用して FTP サーバーに接続すると問題が発生したが、FileZilla を使用すると正常に接続できたと一部のユーザーが報告していることを発見しました。この問題により、一部の開発者は FTP 操作をスムーズに実行できなくなる可能性があります。この記事では、読者が Go 言語を使用して FTP サーバーに正常に接続できるように、この接続の問題を解決できるように、考えられる原因と解決策を検討します。

質問内容

小さな golang プログラムがあり、Docker コンテナー (https://registry.hub.docker.com/r) で実行されている FTP サーバーに接続しようとしています。 /atmoz /sftp)。

私のマシンは m1 pro macbook です。

次のコマンドを使用してコンテナを起動します。 docker run -p 22:22 -d atmoz/sftp foo:pass:::upload

go のバージョンは 1.17.13 です。

プログラムコードは次のとおりです:

リーリー

どういうわけか このコードを実行する FTP サーバー に接続できません。次の出力が生成されます:

リーリー

filezilla を使用して同じ FTP サーバーに接続しようとしましたが、正常に動作しました サーバーに正常に接続できました。

この問題を解決する方法、または問題をさらにデバッグする方法について何かアイデアはありますか?ありがとうございます

回避策

ポート 22 は通常、FTP ではなく SSH/SFTP です。 FileZilla は FTP と SFTP の両方をサポートしていることに注意してください。したがって、実際には FileZilla を使用して SFTP に接続している可能性があります。 2 つのプロトコルは完全に異なり、互換性がありません。

Go には「sftp」パッケージがあるようです:


https://www.php.cn/link/c6344b0ae32e496be8b1b701e540d566

以上がGo を使用して FTP サーバーに接続することはできませんが、FileZilla を使用すると接続できますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。