ラズパイで簡単、ファイルサーバーを作成。外出先から画像・音楽・動画を再生。
ラズパイに「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でラズパイを定期的に再起動してください。