Androidでネットワーク越しのファイル転送が遅い

スポンサーリンク

ハッシュの比較を軽いものに変更してみる

ファイルの転送や同期アプリは大抵の場合で正しく転送されたかチェックを行いますが、これはファイルから文字列を生成し、それが同じなら同一のファイル(壊れてない)と判断します。

この文字列はハッシュと呼ばれますが、ハッシュの生成はよりユニークなもの(重複しない)ほど負荷が高い傾向です。

ファイル転送後に壊れていない事の確認であれば、負荷が軽く短い文字列でも問題ありませんので、設定変更できる場合は軽いものにしてみましょう。

以下は同じファイルから生成されたハッシュ値の例ですが、短いものほど負荷が低く、チェックが早く完了します。

アルゴリズム ハッシュ値
CRC32 A8F097EE
MD5 7F50AFFA829CB9CE78BE23A45966CBB1
SHA-1 A57D3B9CDA68624B0D91492EA9E0EE7BEB4D03BB

ハッシュを求めるアルゴリズムは他にも様々なものがありますので、設定可能なアルゴリズムのうち、どれが一番軽いか調べて設定してみてください。

SMB1ならSMB2で接続してみる

古いNASなどはSMB1しか対応していないものが多いですが、SMB2で接続できれば大幅に速度アップします。

以下はWi-Fi接続でアプリや設定を変更して転送した際の速度です。
SMB2はSMB1に比べて5倍前後の速度が出ました。

参考値:Android FolderSync(SMB1)

800k/s(6.4Mbps)~1.5MB/s(12Mbps)

参考値:Android FolderSync(SMB2)

4MB/s(32Mbps)~8MB/s(64Mbps)

参考値:Android SMBSync2(SMB2)

5MB/s(40Mbps)~8MB/s(65Mbps)

参考値:Android FolderSync(FTP接続)

15MB/s(120Mbps)~22MB/s(176Mbps)

 

SMB2の方が速いですが、FTP接続が段違いに早かったです。
SMB1の15倍、SMB2の2.75倍もの転送速度が出ていました。

15倍の差だと、60分かかっていた転送が4分で済みますので相当な速さです。

参考:FolderSyncでの転送(SMB1)

1.4MB/s

参考:FolderSyncでの転送(FTP)

15.0MB/s

接続方法を変更する場合の注意点

サーバー側(今回はPC)とクライアント側(今回はAndroid)の両方が対象のプロトコル(SMB2やFTP)に対応していないと、接続すらできません。

Windows10ではSMB1はセキュリティの都合上、デフォルトで無効化されていますので、SMB1しか扱えないアプリからだと接続ができません。
SMB1を有効化するには、コントロールパネル > プログラムと機能 > Windowsの機能の有効化または無効化 > 「SMB 1.0/CIFSファイル共有のサポート」にチェックを入れてOKをクリックします。

また、FTPサーバーはWindows10(Homeエディションも)で標準でサポートしていますが、無効化されています。
この場合も「Windowsの機能の有効化または無効化」から有効化することで使用できます。
これについては次項で説明します。

FTPサーバを立てる(Windows10標準機能編)

PCのIPアドレスを固定する

デフォルトだと自動になっており、Windowsを起動するたびに違うIPになってしまうため、クライアントがどこに接続すればいいのかわかりません。
これでは困るのでPCのLAN側IPアドレスを固定します。

タスクトレイのネットワークアイコンを右クリック > ネットワークとインターネットの設定を開く > アダプターのオプションを変更する > 使用しているNICを右クリック

インターネットプロトコルバージョン4(TCP/IPv4)をクリックしてプロパティ

「IPアドレスを自動的に取得する」から「次のIPアドレスを使う」にします。

指定するIPアドレスはコマンドプロンプトで「ipconfig」としたときの、「デフォルトゲートウェイ」を参考にしてください。

以下の例だと「192.168.2.1」となっていて、これはルータのIPアドレスです。

最後の1桁だけ変更したIP(例えば192.168.2.2や、192.168.2.3など)をPCのIPアドレスにします。

  • アドレス > デフォルトゲートウェイの末尾を変更したIP(例えば192.168.2.2や、192.168.2.3など)
  • サブネットマスク > 一般的なLANなら255.255.255.0でOKです
  • デフォルトゲートウェイ > 先程のipconfigで表示されたIP
  • 優先DNSサーバ > ルータ経由ならデフォルトゲートウェイと同じものを、それ以外なら8.8.8.8と入力

FTPサーバー機能を有効化

コントロールパネル > プログラムと機能 > Windowsの機能の有効化または無効化

「FTP Service」と「IIS管理コンソール」にチェックを入れてOKします。

FTPサーバの設定ウィザード

PC(旧マイコンピュータ)を右クリック > 管理

「インターネット インフォメーション サービス(IIS)マネージャー」というのが追加されています。

クリックすると右ペインにFTP関連の設定が色々出てきます。

「サイト」をクリックすると右ペインに「FTPサイトの追加」とありますのでクリックします。
これはウィザード形式でFTPの設定を行うものです。

「FTPサイト名」はお好みで、「物理パス」はFTP接続した時に見せたい最初のフォルダを指定します。

IPアドレスの部分をクリックするとプルダウンでリストが出てきますので、PCのIPアドレスを選択します。
「FTPサイトを自動的に開始する」にし、SSLは「無し」にしてください。

認証は「基本」、アクセスの許可はPC内のユーザー名を指定します。

FTP用のユーザーを作成する場合は、以下から行います。
スタート > コントロールパネル > ユーザーアカウント > 別のアカウントの管理 > PC設定で新しいユーザーを追加

今回は「Android」というユーザーを作成して指定しました。

後で「FTPの承認規則」から追加できますので、とりあえず1件だけでOKです。

ファイアウォールで許可

※他のセキュリティソフトを使っている場合は以下が無効になっていますので、セキュリティソフトの設定画面から、ポート20と21を許可します。

スタートボタン > コントロールパネル > Windows Defenderファイアウォール > 許可されたアプリ

FTPサーバのプライベートとパブリックにチェックを入れます。

接続テスト

アプリによって多少項目名が違いますが、入力するべき項目は同じです。

以下はFolderSyncの場合の例です。

環境によって異なりますが、私の場合は「Experimental version」をONにしないと接続できませんでした。

入力したら「TEST」をタップして、以下のように「成功」と出ればOKです!

ファイラーの「MiXplorer」の場合は以下赤枠の3箇所のみ指定すればOKでした。

FTPサーバを立てる(FileZilla Server編)

Windows用の社外FTPサーバだとFileZillaが有名です。
FTPクライアントのFileZillaは非常に高機能で使いやすいため、お世話になった人も多いのではないでしょうか。

基本的な設定だけなら簡単に行えるので、こちらも試しても良いと思います。
ただ、複数のFTPサーバを立てる場合はポート番号がバッティングしないよう変更する必要があります(例えば2121などへ)

日本語化パッチも公開されている方がいますが、以下は英語のまま進めます。
設定箇所は同じなのでスクリーンショットを見ながら行ってください。

FileZilla Server for Windows
https://filezilla-project.org/download.php?type=server

ユーザーの追加

メニュー > Edit > Users

Add > 追加するユーザー名を入力します

Windowsのユーザーとは別物なので、好みの名称で構いません。

Usersのところに表示されますのでクリックします。

「Enable account」にチェック(対象のアカウントを有効にする)、
「Password」にパスワードを入力します。
ここで入力したアカウント名とパスワードは接続時に使うのでメモしておいてください。

閲覧させるフォルダの設定

Usersダイアログを開いたまま、左ペインから「Shared folders」をクリックします。

ユーザーごとに見せるフォルダを指定できます。

右に「Users」の一覧がありますのでクリックして選択状態にしておき、左の「Shared folders」からAddで追加したり、ReadやWriteの権限を設定します。

複数のユーザーを登録している場合は右のUsersで対象ユーザーをクリックしてから設定してください。

「Add」から見せたいフォルダを指定します。

フォルダの横に「H」がついているのはホームディレクトリで、FTP接続した直後に表示されるフォルダを指定します。
「Set as home dir」をクリックするとホームディレクトリに設定されます(ホームは1つのみ)

あとは許可したい権限にチェックを入れます。

Files

  • Read(ファイルの読み取りを許可)
  • Write(ファイルの書き込みを許可)
  • Delete(ファイルの削除を許可|上書きにも必要)
  • Append(ファイルの追加を許可)

Directories

  • Create(ディレクトリの作成を許可)
  • Delete(ディレクトリの削除を許可)
  • List(ディレクトリ一覧の取得を許可)
  • +Subdirs(サブディレクトリにも権限を継承する)

FTPサーバの設定

動作に必要な最小限の設定のみ記載します。

メニュー > Edit > Settings

General settings > IP bindings

「IP bindings」は「*」を入力しておきます。
どのIPにバインドするかの指定ですが、*だとすべてという意味です。

 

General settings > IP Filter

接続を許可するIPアドレスやネットワークを指定します。

PCのLAN側IPアドレスが「192.168.2.2」の場合は最後を0にし「192.168.2.0」、それに加えネットワーク範囲である「/24」を追加し、「192.168.2.0/24」と入力します。
CIDRと呼ばれるネットワーク範囲を示す書き方です。

General settings > Miscellaneous

「Start minimized」にチェックを入れておくと、最小化した状態で開始します。

接続テスト

アプリによって多少項目名が違いますが、入力するべき項目は同じです。

以下はFolderSyncの場合の例です。

環境によって異なりますが、私の場合は「Experimental version」をONにしないと接続できませんでした。

入力したら「TEST」をタップして、以下のように「成功」と出ればOKです!

ファイラーの「MiXplorer」の場合は以下赤枠の3箇所のみ指定すればOKでした。

最小化からの復帰

最小化した状態から再び設定などを出す場合は、タスクトレイからFileZillaのアイコンを右クリックし、「Restore」をクリックします。

 

以上です。

コメント

タイトルとURLをコピーしました