ラズパイで簡単、ファイルサーバーを作成。外出先から画像・音楽・動画を再生。

ソフトウェアRaspberry Pi

ラズパイに「samba」を導入して、PC・iOS・Androidでファイル共有。さらにトンネルアプリを使って、外出先からも「samba」に接続出来るようにします。ラズパイは電源を付けっぱなしにしても電気代が安いので、ファイルサーバーに向いているかも知れません。

◻︎導入、動作環境
・ハードウェア/Raspberry Pi 4 Model B 8G
・OS/Raspberry Pi OS Bookworm desktop(64bit) ※X11

 

sambaの導入。

「samba」の導入前に、共有したいフォルダを決め、権限を変更しておきます。USB接続の外付けHDDやSSDに作っておくのが良いかも知れません。※アカウント名やフォルダの場所は、各自変更してください。

◎共有フォルダの作成。

外付けssdにフォルダ名「share」を作成し、権限を付けます。

$ sudo chmod 777 /media/pi/ssd/share

「samba」のインストール。

「samba」をインストールします。

$ sudo apt install samba

ユーザーとパスワードの追加。

「samba」にユーザーを追加します。パスワードは「samba」用に新規作成。追加したユーザーを有効にします。※ユーザー名はラズパイでログインしてるアカウントを使用。

$ sudo smbpasswd -a pi
$ sudo smbpasswd -e pi

「samba」の設定。

「samba」の設定ファイルを開き、内容を変更します。ユーザー名とパスワードを使ってログイン、共有フォルダの指定、ファイルの読み書きが自由に出来るように変更。

$ sudo nano /etc/samba/smb.conf

「;」を付けてゲストログイン禁止。

; map to guest = Bad User

一番最後の行に下記内容をを追加します。

[share]
path = /media/pi/ssd/share
browseable = yes
writable = yes
guest ok = no
guest only = yes
create mode = 0777
directory mode = 0777
force user = pi

ファイルを保存したら「samba」を再起動します。ログイン時の自動起動も設定しておきます。その他、初期共有フォルダの非表示、ファイヤーフォールの設定、ファイルのアクセス制限など、必要なものがあれば追加してください。

$ sudo systemctl restart smbd nmbd
$ sudo systemctl enable smbd nmbd

 

ファイル共有。

同じネットワーク内のPCやデバイスから「samba」に接続します。※ラズパイのIPアドレスからも接続可。

Macの場合。

サーバーへ接続→ブラウズ→RASPERRYPI。別名で接続→登録ユーザを選択して、名前とパスワードを入力します。※または、smb://raspberrypi.local

Windowsの場合。

ファイル名を指定して実行→\\RASPBERRYPI\share→名前とパスワードを入力します。ラズパイOSが「Bookworm」の場合「samba」に「wsdd」を追加すると、ネットワークに表示することが出来ます。

$ sudo apt install wsdd

Yagifulのブログ 参考サイト。

 

iOS、Androidの場合。

「Owlfies」アプリを使って接続します。アプリを起動→画面下の接続→画面右上の雷マーク→新しい接続→Linux→ネットワークコンピュータ→RASPERRYPI(有線接続のIPアドレス)を選択して保存→リストに登録されるのでタップ→名前とパスワードを入力します。

※他のアプリでも接続出来ます。iOSは、標準アプリ「ファイル」で接続出来ますが、ファイルのアップロードにラズパイでの追加設定が必要だったり、画像のサムネイル表示もなく使いにくい。R6年1月現在。

 

外出先から接続。

外出先から接続するにはいくつか方法がありますが「Playit.gg」を使ったトンネル接続が便利です。ポート転送が出来ない環境でも、サーバーのIPアドレスとアカウントだけで、繋ぐことが出来ます。家族や友人など、複数人での共有にも便利です。

 

トンネルの導入。

Playit.ggアカウントを作成します。ダウンロードから「Linux」タブを選択。Debian Install Script(apt-get)を実行して、アプリをインストールします。※後からで良いですが、Eメールが届くのでアカウントを認証してください。

Playit.gg WEBサイト。

 

◎Playitの起動と設定。

GUIは無いので、コマンドで起動します。Playitの起動と、ログイン時の自動起動を設定。

$ sudo systemctl start playit
$ sudo systemctl enable playit

WEBサイトへ移動して、トンネルの設定をします。

$ playit setup

 

◎トンネルの設定。

Region(地域)はそのまま、Tunnel Type(トンネルタイプ)はTCPを選択。※チュートリアルではIPアドレスを設定していないので、エラーになります。

 

「Local Address」にラズパイのIPアドレス「Local Port」は他のポートと被らない番号を入力します。※TCPポート初期値は445番。

 

青枠に新しく「PublicAddress」が作成されます。「:」の後ろはポート番号です。※トンネルを一度作成すると、IPアドレスやポート番号を変更しても「PublicAddress」は変わりません。トンネルを作り直すか有料オプションで変更可。

 

iOS、Androidの設定。

「Owlfies」アプリを開きます。接続リストに登録した「rasperrypi」を長押し→編集。Playit.ggで作成した「PublicAddress」とポート番号を入力。→「samba」で作成した名前とパスワードを入力。自宅はもちろん、4Gからでも接続出来ました。※無料でも十分使えますが、有料オプションを使うと、写真の自動バックアップやPC用のデスクトップアプリも使えるようです。

 

WindowsやMacの設定。

手順はローカル接続と同じ。IPアドレスの代わりに「PublicAddress」を使えば、外出先から接続出来るようになります。個人で使う場合は、VPN接続もおすすめです。

 

まとめ。

クラウドサービスも充実していて便利ですが、容量の制限や使い方にいクセがあったりします。「samba」サーバーはデータの容量を気にすることもなく、ファイルはフォルダで管理出来ます。ラズベリーパイの機種やHDDの消費電力によって異なりますが、電気代も月数百円程度で済みそうです。