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

2024-09-04ソフトウェアRaspberry Pi

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

 

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

 

更新履歴
2024-7-29/記事内容を整理し、詳しい接続方法を追加しました。

 

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

ラズパイのIPアドレスを確認。Wi-Fi(無線LAN)ではなく、イーサネット(有線LAN)接続での使用がおすすめです。その他、初期共有フォルダの非表示、ファイヤーフォールの設定、ファイルのアクセス制限など、必要なものがあれば追加してください。

 

自宅で接続する場合。

同じネットワーク内(ローカルエリア接続)のPCやデバイスを使って「samba」に接続。※ラズパイのIPアドレスや共有名を使用します。

Macの場合。

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

Windowsの場合。

ファイル名を指定して実行→\\RASPBERRYPI\share→「samba」で設定したユーザー名とパスワードを入力します。※または、\\ラズパイのIPアドレス\share

◻︎ラズパイOSが「Bookworm」の場合。
「samba」に「wsdd」を追加すると、ネットワークに表示される名前がIPアドレスではなく、共有名(RASPBERRYPI)になります。※特に必要なものではありません。

$ sudo apt install wsdd

Yagifulのブログ/参考サイト。

 

iOS、Androidの場合。

Owlfiles/公式サイト

「Owlfies」アプリを使った接続方法です。※他のアプリを使ってもOKです。

アプリを起動→接続アイコン→雷アイコン→新しい接続→Linux→ネットワークコンピュータ→RASPERRYPI(ラズパイのIPアドレス)を選択して保存→リストに登録されるのでタップ→ユーザー名とパスワードを入力します。

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

 

Playit.ggの導入。

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

 

アプリのインストール。

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」は変わりません。トンネルを作り直すか有料オプションで変更可。

 

外出先から接続する場合。

「Owlfies」アプリを使う。

iOS、Android、Mac、Windowsとも、アプリからの接続が簡単です。サムネイル表示、ファイルや動画の再生、アップロードなど使用出来ます。有料オプションを使うと、写真の自動バックアップや編集なども使えるようです。

「Owlfies」アプリを開き、接続アイコン→雷アイコン→新しい接続→Linux。
すでに登録した接続先がある場合は「接続先名」を長押し→編集。

playit.ggで作成した「PublicAddress」とポート番号を入力。→「samba」で作成したユーザー名とパスワードを入力。※「PublicAddress」で登録しておくと、自宅や外出先からも接続出来るようになります。

 

 

Macの設定。

マックの場合は「Owlfies」アプリを使わなくても、Playit.ggで作成した「PublicAddress」を使って簡単に接続できます。サーバーへ接続→smb://作成したパブリックアドレス→登録ユーザー→「samba」で設定したユーザー名とパスワードを入力します。

Windowsの設定。

Windowの場合「PublicAddress」を使っても、標準機能では外出先からの接続出来ませんでした。「Owlfies」アプリを使うか、VPNを使った接続がおすすめです。

 

 

まとめ。

クラウドサービスも充実していて便利ですが、容量の制限や使い方にいクセがあったりします。ラズパイを使った「samba」サーバーは、HDDの追加や交換も簡単。写真など勝手におすすめ表示されることなく、ファイルをフォルダで管理出来ます。ラズパイの機種やHDDの消費電力によって異なりますが、電気代も月数百円程度と維持費が安いのも魅力です。

※サーバーとの接続がよく途切れる場合、外部USBの自動マウントを設定してください。また、crontabでラズパイを定期的に再起動してください。