Skip to content
Tsuzu edited this page Mar 8, 2018 · 12 revisions

ftrans

  • できるだけ手軽にファイルを転送するためのコマンドラインツールです。

特徴

  • P2Pを利用しているため即時かつ高速な転送が可能
  • シングル&スタティックリンクバイナリ
  • バイナリを落としてくるだけで即利用可能
  • 純粋なGo言語
  • ホスト環境から仮想マシンや、PCからVPSなどへの設定ファイル等の転送に便利

インストール

Releasesから最新のバイナリをダウンロードすることができます。
バイナリが提供されていない場合や自分でビルドしたい場合は以下のようにしてください。

$ go get -u -d github.com/cs3238-tsuzu/ftrans
$ cd $GOPATH/src/github.com/cs3238-tsuzu/ftrans
$ make # On windows, make BINARY_NAME=ftrans.exe

使い方

Tagsからリンクをコピーして、

curl -sSL [link to binary] > ftrans  # Windowsではftrans.exe
chmod +x ftrans
mv ftrans /usr/local/bin

一方のコンピュータ上で

$ ftrans send .vimrc ~/.ssh/id_rsa.pub portrait.jpg
20XX/XX/XX XX:XX:XX Your password: password

他方のコンピュータで

$ ftrans recv -p password

とするだけで転送が可能です。
"-p"オプションを利用すれば任意のパスワードを設定できます。指定しない場合自動生成されます。
※パスワードを自分で設定した場合は他人にわからないものにしてください。

ロードマップ

  • シグナリングサーバ経由でのE2EEを可能にし、より安全なファイル転送のサポート
    • これによりMITM攻撃のリスクが大幅に軽減され安全な通信が可能になります。
  • ディレクトリ転送のサポート

自前シグナリングサーバ

ftrans signalingで起動するとシグナリングサーバが起動します。環境変数LISTEN(デフォルト :80)でListenするのでws://your.address/wsのようにftransの-sigオプションに渡してください。
HTTPSは未実装のためリバースプロキシ等を利用して行うようにしてください。(traefikオススメです)

ftrans -h

NAME:
   ftrans - Transfer files from one peer to the other peer over encrypted P2P connection

USAGE:
   ftrans [global options] command [command options] [arguments...]

VERSION:
   v1.1

COMMANDS:
     send           Send files to peer
     receive, recv  Receive files from peer
     signaling      Launch a signaling server
     help, h        Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h     show help
   --version, -v  print the version

Q&A

  • Q. 多段NAT構成になっていて接続できない。
  • A. 基本的にはその場合利用できませんが、LAN内部にSTUNサーバを設置することで利用できるようになる場合があります。
Clone this wiki locally