Automateでプライバシーを向上したネットワークでファイルをダウンロードする事を今回の目標としています。
Torプロキシを使用するため、抵抗のある方は利用を推奨しません。
Orbot を既にダウンロード済みであればこの手順は飛ばしても構いません。
Orbot は、Google play ストア もしくは、Fdroid 、公式サイト、 よりダウンロードできます。
より詳しいコードは Github から。
⚠️ 絶対に、公式サイト以外(APKミラーサイト等)からダウンロードしないようにしてください ⚠️
ダウンロードが完了したら、インストールしてください。
インストールして起動したら、タマネギアイコンをタッチか長押しして、Torサービスを起動します。
特に追加の設定はする必要はありませんが、必要であれば各自で設定します。
VPNモードは使用しません。あらかじめスイッチを無効にしておいてください。
起動後は画像のようになります。
タマネギアイコンのしたに、SOCKS 、HTTP のポート番号が表示されているので、SOCKS の方の番号をメモします。
この画像では 9050
となっています。大抵の場合は SOCKS のポートは 9050
になります。(任意で変更しない限り)
Shell command
ブロックを使用します。今回は、使用中のグローバルIPアドレスを取得するサイト(ipinfo.io)を使用します。
用途に応じて、URLは変更できます。
画像のように以下のコマンドを入力します。
先ほど SOCKSのポート番号をメモしたはずなので、
curl --socks5 localhost:この部分 [URL]
この部分をメモした番号を指定します。
以下のコマンドと同じようであれば、変更する必要がありません。
sh -c {cliEncode("curl --socks5 localhost:9050 ipinfo.io > {storage("downloads")}/file.tmp")}
sh -c {cliEncode(“curl --socks5 localhost:[SOCKS ポート番号] [URL] > [保存先のパス/ファイル名]”)}
sh -c {cliEncode("curl --socks5 localhost:9050 ipinfo.io >> {storage("downloads")}/file.tmp")}
sh -c {cliEncode(“curl --socks5 localhost:[SOCKS ポート番号] [URL] >> [保存先のパス/ファイル名]”)}
Standerd output text に変数を指定して結果が格納されます。
curl --socks5 localhost:9050 ipinfo.io
curl --socks5 localhost:[SOCKS ポート番号] [URL]
用途に合う上記のコマンドを使用できます。
OrbotのTorが起動できていない場合は、何も出力されないので注意が必要です。
下記のコマンドを使用してファイルを保存できます。
sh -c {cliEncode(“curl --socks5 localhost:[SOCKS ポート番号] [URL] > [保存先のパス/ファイル名]”)}
[] | 値 |
---|---|
[SOCKS ポート番号] | Orbot の接続画面の SOCKS:〇〇〇 の部分 |
[URL] | ダウンロード元のURL |
[保存先のパス/ファイル名] | 保存先を指定する を参照 |
保存先を、直接指定する必要があります。
しかし、フルパスで指定する必要はありません。
/storage/emulated/0/Downloads/File.tmp
に保存したい場合は、
{storage("downloads")}/File.tmp
Downloads/File.tmp
上の2つのように指定できます。
ファイル名部分を指定しないと保存されないため注意が必要です。
また、これらの動作は、Working directory
が無記入、".
" である場合に限られます。
Failure catch ブロックを、 Shell command ブロックの前に配置します。
通信に何らかのエラーが発生した場合は、ファイバーは Fail パスに流れます。
上の画像は、tor を介したファイルダウンロードのサンプルです。
エラー処理が2個あり、
Shell command 側と、Failure catch ブロック側でエラーを検出します。
《Failure catch ブロックの中身》
Shell command 側で取得できないエラーを検出するために使用します。
エラーメッセージを取得するために err
変数を指定してあります。
《Shell command ブロックの中身》
Command Line が見切れていますが以下の内容が入力されています。
sh -c {cliEncode("curl --socks5 localhost:9050 ipinfo.io > file.tmp")}
ファイルの保存先は、私の環境では、/storage/emulated/0/file.tmp
に保存されました。
Shell command 側でも、エラーを検出できるように終了コードに、exit
変数を指定してあります。
また、Standard error output にも、エラー内容を取得するために err 変数を同じく指定しています。
《Expression ブロックの中身》
exit = 0
が成立しない場合は、exit が正常に終了する以外の処理の終わり方をしたため、No パスに流れるようになっています。
この操作では、Torを扱います。
Torはプライバシーの向上に大きく貢献しています。
Torの匿名化のメカニズムは通信速度をどうしても遅くしてしまいます。(0 ~ 1MB/s くらい、多くは 0 ~ 400KB/s)
通信をする際、非SSL通信(http)を行うと、末端の出口では通信内容が暗号化されません。SSL(https)では暗号化されます。
一部のWebサイトでは、Torからのアクセスを禁じているサーバーもあるため、アクセスできない場合もあります。
また、Onion ドメインにアクセスできる状態にもなるため注意してください。
Tor で Torrent を使用しないでください。大きくプライバシーを低下させます。
Automate でも、Orbot や、Shell command をうまく使うことによって、自動化から Tor を介した通信する事ができます。
今回は、インターネット上にあるファイルをダウンロードする方法を解説しましたが、他にもいろいろなことができます。
ただここでは解説が大変なのでまたいつか。。
それでは。