Linux で FTP サーバーをマウントする — NetDrive 設定ガイド

読了目安 7 分 provider-guide ftp linux
Alex
AlexPrincipal Engineer
NetDrive の実験的な Linux ビルドで、FTP サーバーを Ubuntu 上の通常のマウントポイントとしてマウントする方法。GitHub からのインストールからパッシブモードのトラブルシューティングまで解説します。

Ubuntu 上のビルドサーバーが、今のチームなら選ばないような古いレガシー FTP ホストからアセットを取得する必要があり、デプロイスクリプトを curllftp 中心に書き直すのは半日の手間に見合いません。NetDrive の Linux ビルドは、その同じ FTP サーバーを通常のマウントポイントとしてマウントするので、/mnt/legacy-ftp/cpls、あるいは単に open() を呼ぶ Python スクリプトにとって、他の普通のディレクトリと同じように振る舞います。

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

Ubuntu で FTP サーバーをマウントする

NetDrive を使えば Google Drive、OneDrive、S3、SFTP、WebDAV などが Windows と macOS でネイティブドライブとして表示されます — 同期も、まるごとダウンロードも不要です。

  • Ubuntu 16.04 以降で動作
  • 認証あり・匿名 FTP のどちらにも対応
  • 通常のマウントポイント経由で読み書き可能 — クライアントウィンドウの監視は不要
WindowsmacOS
NetDrive for Linux をダウンロード →

無料トライアル。永久ライセンスとサブスクリプションプランあり。

FTP をスクリプトで回避するのではなくマウントする理由

単発のダウンロードであれば単体の FTP クライアントで十分ですが、スクリプトやビルドツールが直接指し示せる通常のファイルパスは提供してくれません。読み込みのたびに、クライアントを開き、ファイルを見つけ、手動でダウンロードする必要があります。NetDrive 経由でサーバーをマウントすれば、その手間がなくなります。マウントポイントが直接 FTP サーバーに対して解決されるため、cat /mnt/legacy-ftp/release-notes.txt は誰かが先週ダウンロードし忘れたコピーではなく、実際の最新ファイルを読み込みます。

NetDrive は最初の 3.x リリース以来 FTP をサポートしており、内部ミラーや配布共有など匿名アクセスのサーバー向けに、認証情報を省略できる接続もバージョン 3.7.687 以降で利用できます。Linux でも同様に、Windows や macOS で使えるのと同じ接続方式が、NetDrive の Ubuntu ビルドを通じて動作します。

NetDrive mounting a cloud storage account as a local drive — the same core interaction the Linux build provides at a mount point

Ubuntu へ NetDrive をインストールする

NetDrive for Linux は Ubuntu の標準リポジトリの外で配布されているため、セットアップは apt ではなく GitHub 経由で行います。

  1. github.com/NetDrive/installer にアクセスし、お使いの Ubuntu バージョンに合ったリリースを取得します。
  2. お使いのバージョンに対応するそのリポジトリのリリースノートに従ってください — NetDrive がマウント可能になる前に、ドライバーコンポーネントのインストールが必要です。
  3. NetDrive パッケージをインストールします。
  4. NetDrive を起動します。初回起動時にドライバーコンポーネントが読み込まれ、システムの権限設定によっては sudo の入力を求められる場合があります。

サポートされる最小バージョンは Ubuntu 16.04 で、Linux は NetDrive の比較ページ自体が使っているのと同じ 実験的(experimental) ラベルが付いています — テストの大部分は Windows と macOS 向けに行われているため、無人パイプラインがマウントの維持に依存する前に、お使いのディストリビューションとワークロードで検証してください。

手順: Ubuntu で FTP サーバーに接続する

  1. NetDrive の Drive Manager を開き+ Add Drive をクリックします。
  2. 接続タイプの一覧から Select FTP を選びます。

FTP provider logo representing FTP server connections in NetDrive

  1. サーバーアドレス(ホスト名または IP)と ポート を入力します。FTP のデフォルトは 21 ですが、非標準のポートで動作しているホストもあります。
  2. 認証情報を入力するか、匿名 FTP を許可しているサーバーの場合はユーザー名とパスワードを空欄のままにします。
  3. マウントポイントを設定します — /mnt/legacy-ftp のようなパス、または書き込み権限のある空のディレクトリなら何でも構いません。
  4. Click Connect をクリックします。NetDrive が認証を行い、そのパスにサーバーをマウントします。

マウントを依存させる前に検証する

GUI だけを信用せず、ターミナルからマウントを確認しましょう — 実験的なビルドでは妥当な習慣であり、スクリプトがそのパスの存在を前提にする前にやっておく価値があります。

# Confirm the mount is listed
mount | grep legacy-ftp

# Or just try listing it
ls /mnt/legacy-ftp

接続が一度も完了しない場合は、まず到達性を確認してください — ファイアウォールの背後にある Linux マシンでの FTP 接続失敗のほとんどは、間違ったホスト名かブロックされたポートが原因です。

# Basic reachability
ping ftp.example.com

# Is the FTP control port actually open?
nc -zv ftp.example.com 21

Network connectivity check showing IP reachability

Port reachability check for the FTP control port

このセットアップでよくあるつまずき

  • ディレクトリ一覧の取得がハングする: NAT や家庭用ルーターの背後にある FTP サーバーの多くは、データ接続にパッシブモード(PASV)を必要とします — アクティブモードでは、サーバー側があなたのマシンへ接続を試みますが、これは通常ファイアウォールにブロックされます。サーバーのドキュメントでパッシブモードの有効化とパッシブポート範囲の開放を確認してください。
  • 大きなディレクトリの一覧表示が遅い: 数千個のファイルがあるフォルダは、古い LIST 形式ではなく、サーバーが MLSD コマンド(モダンな FTP 一覧表示)に対応していると一覧表示が高速化します。
  • パッケージマネージャーとの統合がない: 更新は apt upgrade ではなく GitHub リリースから行います — 新しいバージョンの確認が手動作業になるため、このマシンを扱うランブックに一行加えておく価値があります。

まとめ

Ubuntu で FTP をマウントすることで、NetDrive が Windows や macOS で提供しているのと同じドライブ形式のアクセスを、パッケージリポジトリではなく GitHub 上で公開されているインストーラーを通じて得られます。同じサーバーが SFTP にも対応している場合、公開インターネットを経由する用途にはそちらの方が適しています — 詳しくは Mount an SFTP Server on Linux — NetDrive Setup Guide を参照してください。Ubuntu 上での NetDrive 運用全体については、NetDrive on Ubuntu Linux をご覧ください。

— Alex, NetDrive