- テールスケール ポートを開放する必要がなく、CGNATとも連携しますが、アクセスを希望する各デバイスにアプリをインストールして認証する必要があります。
- サムスン、LG、またはGoogle TVテレビをお持ちで、技術的なスキルが限られているご家庭向けに、 最も透明性の高い選択肢 通常はVPNとリバースプロキシを備えたVPSです。そのため、彼らからはHTTPS接続の通常のドメインしか見えません。
- 選択する前に、 CGNATがあるかどうか確認してくださいルーターのWAN IPアドレスがインターネット上で確認できるIPアドレスと一致しない場合、ポートフォワーディングは機能しません。

Jellyfinは自宅では完璧に動作します。サーバーをインストールし、フォルダを追加するだけで、数分後にはリビングルームでライブラリが利用できるようになります。問題は、遠く離れた親戚のスマートフォン、iPad、テレビで何かを見たいと思ったときに始まります。そこでルーター、ポート、ドメイン、その他多くの決定事項が関係してくるのですが、物事を複雑にしたくない人にとっては、静かな午後が頭痛の種になってしまう可能性があります。リモートアクセスは全く別の話で、技術的なことにあまり慣れていない人に使ってもらいたい場合は、さらに複雑になります。
朗報は、ポートを開放せずに済む解決策があり、ISPがCGNATを使用している場合でも機能するということです。Tailscaleはルーターに手を加えることなく済む最も一般的な方法ですが、魔法ではありません。各デバイスに何かをインストールする必要があり、SamsungやLGのテレビ、または古いデバイスに関しては明確な制限があります。Jellyfinを家族全員で使えるPlexに変える万能薬はありませんが、他の方法よりも明確な道筋があります。Tailscale、Cloudflare Tunnel、VPS、Jellyfinのセキュリティ設定に関して、通常誰も語らないことも含めて、すべての詳細を注意深く見ていきましょう。
ジェリーフィンはなぜ家を出るときに動けなくなってしまうのですか?
ローカルネットワークでは、すべてが非常にシンプルです。サーバーには192.168.1.50のようなプライベートアドレスがあり、同じWi-Fiネットワークに接続されているデバイスであればどれでも問題なくアクセスできます。しかし、リクエストがインターネットから来ると状況は変わります。ルーターはどのデバイスにそのトラフィックを転送すればよいか分からないからです。この問題を解決するために、通常は3つの古典的な解決策が用いられます。ポートフォワーディング、リバースプロキシの設定、またはCloudflareのようなトンネルの使用です。これら3つはいずれも複雑で、義母が地球の裏側から設定できるようなものではありません。
ポートフォワーディングとは、特定のポートに到着するすべてのトラフィックをJellyfinを実行しているコンピュータにルーティングするようにルーターに指示することです。簡単そうに聞こえますが、ルーターのコントロールパネルにアクセスし、ルールを作成し、サーバーのローカルIPアドレスを割り当て、パブリックIPアドレスが頻繁に変更されないことを祈るという手順が必要です。さらに、ルーターでポートを開放すると、インターネットから見える脆弱性が生じ、適切に保護されていない場合は、重大なセキュリティホールとなる可能性があります。
リバースプロキシはより洗練された方法ですが、技術的な知識も必要になります。アクセスを受信し、HTTPSで接続を暗号化して、内部のJellyfinサーバーに転送するために使用されます。通常、ドメインの購入または管理、証明書の設定、各ステップで何が起こっているのかの理解が必要です。不可能ではありませんが、コンピューターの専門家に頼らずにiPadで映画を見たいだけの人にお勧めできる方法ではありません。
Cloudflare Tunnelも選択肢の一つです。サーバーにプログラムをインストールすると、外部接続が開かれ、ゲストはポートを開放したりパブリックIPアドレスを取得したりすることなく、通常の名前でアクセスできます。しかし、動画配信に関しては、 Cloudflareの利用規約は見た目ほどユーザーフレンドリーではなく、ルールを変更したりサービスを制限したりする可能性のある仲介業者に依存することになります。
これらのオプションすべてに共通するのは、何らかの形でホームネットワークをインターネットに公開したり、ドメインを公開したり、サードパーティのプロバイダに依存したりすることです。これが、多くの人が複雑になりすぎる前に Jellyfin のリモートアクセス機能を諦める理由です。Jellyfin の推奨事項は明確です。プレーン HTTP を使用するとパスワードが暗号化されずに送信される可能性があるため、インターネットに直接ポートを開放することは推奨されません。ポート 8096 は HTTP 用、8920 は HTTPS 用ですがデフォルトでは使用されず、7359 はローカル検出用なので、これらも公開すべきではありません。
Tailscaleは何を提供しているのか、そして何か落とし穴はあるのか?

TailscaleはWireGuardをベースにしたプライベートネットワークを構築します。複数のデバイスにアプリケーションをインストールし、同じアカウントで認証すれば、たとえ異なる国にあっても、まるで同じルーターに接続されているかのように動作します。各デバイスがTailscaleネットワークへの接続を開始し、それらがすべて中間層となるため、ポートを開放したり、パブリックIPアドレスを取得したりする必要はありません。CGNATを実行しているホームサーバーにとっては、これは非常に大きなメリットです。
複数のデバイスを登録すると、アカウントに関連付けられたプライベートネットワークであるtailnetが作成されます。各デバイスには、100.xyzのようなアドレスとMagicDNS名が割り当てられるため、数字を覚える必要はありません。このアドレスをJellyfinアプリに入力して、外部から接続します。Tailscaleは、CGNATで使用されるのと同じ100.64.0.0/10ブロックからアドレスを配布しますが、混同しないでください。ルーターのインターネットアドレスは全く別のものであり、CGNATが有効になっているかどうかを確認する際には、このアドレスを確認する必要があります。
Tailscaleのパーソナルプランは非商用利用であれば無料で、自分を含めて最大6人まで利用できるため、さらに5人まで招待できます。同社はこのプランを永久無料と謳っており、通常の家族利用であれば十分すぎるほどです。無料のオープンソースソフトウェアであるJellyfinと組み合わせれば、リモートストリーミングに料金がかかるPlex Passとは異なり、サブスクリプション料金を支払うことなくマルチメディアエコシステムを構築できます。
Tailscaleは、通信事業者がCGNATを強制適用している場合や、ISPが特定の着信接続をブロックしている場合にも推奨されるオプションです。ルーターを介さずに、サーバーとクライアントはプライベートネットワークに接続し、そこで通信を行います。外部からホームネットワークへの接続は不要なため、この接続ではCGNATは関係なくなります。
しかし、隠れたコストは金銭的なものではなく、利便性です。コンテンツにアクセスしたいすべてのデバイスにTailscaleをインストールして認証する必要があり、コンテンツを利用するにはサーバーの電源をオンにしてTailnetに接続する必要があります。もしあなたの母親がSamsung TV、義母がGoogle TV、そして兄弟が古いAndroidタブレットを使っている場合、それぞれのデバイスにTailscaleをインストールして設定するか、ブリッジを見つける必要があります。テクノロジーに詳しくない人にとっては、それだけでも大きな障壁となります。
他者と共有する場合にも注意点があります。Tailscaleはすべてのプランでマシン共有を許可していますが、ゲストは自身のアカウントが必要であり、さらに招待を受け入れるには、自身のTailnetの所有者、管理者、またはITマネージャーである必要があります。リンクを送って相手に何もさせずにログインさせるほど単純な話ではありません。義母の場合、最初の映画を見る前に、インストール、登録、そしていくつかの画面操作が必要になるかもしれません。
最後に、Tailscaleは必ずしも2つのエンドポイント間で直接接続を確立するわけではありません。ハードNAT、ファイアウォール、またはその他の制限がある場合、トラフィックはTailscaleのDERPリレーを経由してルーティングされます。これにより遅延が発生する可能性があり、特にビデオでは顕著です。ある日はスムーズに再生できたのに、次の日には設定を変更していなくても途切れ途切れになることがあります。Tailscaleの利用規約には帯域幅、ビデオ、トラフィック量に関する具体的な条項はありませんが、リレーは最終手段であり、完璧なストリーミングを保証するものではないという事実は変わりません。
何かに触れる前に、CGNATがインストールされているかどうかを確認してください。
CGNATとは、インターネットサービスプロバイダが複数の顧客間で同じパブリックIPアドレスを共有することを意味します。インターネット上にあなた専用のアドレスはなく、ルーターでどれだけポートを開放しても、ネットワーク外からあなたの自宅にアクセスすることはできません。これは共有パブリックIPアドレスであるため、どれだけ設定をしても従来のポートフォワーディングは機能しません。
確認方法は簡単です。ルーターのコントロールパネルにアクセスし、インターネットIPアドレス、WAN IPアドレス、または外部IPアドレスを確認します。次に、同じネットワークに接続されているデバイスから、Googleで「自分のIPアドレスは何ですか?」と検索し、表示された2つの数値を比較します。一致しない場合は、中間ルーターが存在します。WAN IPアドレスが100.64.0.0から100.127.255.255の間であれば、問題は明らかです。CGNATの背後にいることになります。同じチェーン内の2台目のルーターでも同じ症状が発生する可能性があるため、その可能性も排除しないでください。
CGNATが発生している場合は、回避策を試す前に、プロバイダに連絡してパブリックIPv4アドレスを取得できるかどうか問い合わせてみる価値があります。契約内容や地域によって状況は異なりますし、費用が発生する可能性もありますが、従来のポートフォワーディングを復元する唯一の方法です。ネイティブIPv6を使用するという選択肢もあります。サーバーがグローバルにルーティング可能なIPv6アドレスを持ち、アクセス元のネットワークもIPv6を使用している場合は、その方法で接続できる可能性があります。CGNATはIPv4の問題なので、確認する前に除外しないでください。
安易な方法に注意してください。ダイナミックDNSはCGNATの問題を解決しません。共有IPアドレスを指す名前では、自宅のサーバーには接続できません。ダイナミックDNSは共有IPアドレスを修正するものではなく、パブリックIPアドレスが変更されたときに名前を更新するだけです。そのため、まずは実際のパブリックIPアドレスを取得してから、名前について考える必要があります。
面倒な手続きなしでジェリーフィンでテールスケールに乗る

基本的な手順は、金曜日の夜に何を見るかを選ぶよりも簡単です。まず、サーバーとして機能するコンピューターにJellyfinをインストールします。Windowsの場合は、ログイン前に自動的に起動するようにサービスとして設定するのが最適です。次に、http://localhost:8096にアクセスし、ハードドライブからフォルダーを追加して、ライブラリ、字幕、再生進行状況の同期を設定します。
サーバーが稼働している状態で、同じコンピューターと、サーバーにアクセスしたいデバイスにTailscaleをインストールします。初期設定時にアカウントを作成し、デバイスを認証すると、tailnetが生成されます。すべてのデバイスで同じアカウントを使用することで、デバイス同士が相互に認識できるようになります。サーバーにTailscaleをインストールしてもモバイルデバイスにインストールしない場合、モバイルデバイスはプライベートネットワークの一部とならず、アクセスできなくなります。
Tailscale 内でサーバー アドレスを確認するには、サーバー マシンで `tailscale ip -4` コマンドを実行するか、アプリケーションを確認してください。100.121.112.23 のようなアドレスが返されます。Jellyfin クライアント アプリケーションで、そのアドレスと対応するポートを使用してサーバーを手動で追加します。たとえば、100.xyz:8096 のように指定します。Jellyfin の自動検出はローカル ネットワークでのみ機能するため、ローカル ネットワーク外からはアドレスを手動で入力する必要があります。
Tailscaleは、Windows、macOS、Linux、Android、iPhone、Chromebook、Apple TV、Amazon Fireに対応しています。対応デバイスは多数ありますが、すべてではありません。Samsung TizenおよびLG webOS TVにはTailscaleは搭載されていませんが、公式のJellyfinアプリは利用可能です。問題はここにあります。テレビはJellyfinを実行できますが、何らかの方法で接続しない限り、プライベートネットワークの外に留まります。
サーバーは常に電源が入っていて、Tailnetに接続されている必要があることを覚えておいてください。サーバーが常時稼働していることは不可欠です。コンピューターがシャットダウンしたり、接続が切断されたりすると、家族はライブラリにアクセスできなくなります。また、無料プランではTailscaleを商用目的で使用することはできません。そのため、家族の半数が利用するサービスの場合は、ご自身のニーズに合っているかどうかを確認してください。
本当の問題は、テレビとせっかちな家族だ。
Samsung TizenまたはLG webOS搭載のテレビでは、Jellyfinの公式アプリがストアにありますが、Tailscaleは利用できません。テレビはJellyfinを起動できますが、ホームネットワークに接続されていないため、ホームサーバーにアクセスできません。テレビはホームネットワーク外のままであり、アプリ内にこの問題を解決する特別な設定はありません。
技術的な解決策としては、サブネットルーターを設置するという方法があります。これは、Tailscaleがインストールされたデバイスで、プライベートネットワークとアプリケーションをインストールできないデバイスとの間の橋渡し役として機能します。確かに機能はしますが、設定作業はもはや簡単な午後の時間では済みません。別のデバイスを設置し、電源を入れたままにしておき、必要な人にその内部動作を説明する必要があるからです。橋渡し役としては機能しますが、透過的でもなければ、時間もかかりません。
Google TV、Chromecast、旧型のAndroidタブレットの場合、それぞれ個別に確認する必要があります。デバイスがストアからTailscaleをインストールできる場合は試すことができますが、できない場合は同じ問題が繰り返されます。接続したいデバイスごとに、個別のインストールまたはそれらをまとめてカバーするブリッジが必要になります。古いタブレットが複数ある家庭では、これはかなり面倒な作業になる可能性があります。
家族とテールネットを共有するのは、ボタンを押すほど簡単ではありません。ゲストは自分のアカウントを持っている必要があり、さらに招待を受け入れるには、自分のテールネットの所有者または管理者でなければなりません。番組を見たいだけの人に、自分のアカウントを持って管理者になることを求めるのは無理があります。母親や義母にとっては、Plexを開いてライブラリがすでに設定されているのを見るのとは全く違います。
そのため、Tailscaleがあなたにとって最もシンプルな選択肢であったとしても、ご家族にとっては必ずしもそうとは限りません。エンドユーザーにとっての透明性という点では、Plexとは比較になりません。もしすべてのデバイスがあなたの所有物で、事前に設定できるのであれば素晴らしいでしょう。しかし、サードパーティ製のテレビがあったり、家族の中にITに詳しくない人がいる場合は、状況が変わってきます。
代替案があるので、ご家族は何もインストールする必要はありません

ゲストがTailscaleをインストールせずにテレビをつけてJellyfinを視聴できるようにすることが目的であれば、最も透過的な方法は、自宅へのVPN接続とリバースプロキシを備えたVPSを利用することです。インターネット上で静的パブリックIPアドレスを持つ小型サーバーをレンタルし、VPSと自宅の間にVPNを設定し、リバースプロキシを使用してアクセスを受信します。ゲストは、何もインストールしたり登録したりすることなく、HTTPSの鍵マークが付いた通常のドメインのみを見ることができます。ただし、これは最も手間のかかる設定であり、定期的な料金が発生する唯一の方法です。
重要なのは、通話の発信元がVPSではなく、自宅のネットワークであるということです。自宅のサーバーがVPSへの接続を開くため、CGNATは干渉しません。その後、VPSのリバースプロキシが家族からのアクセスを受信し、トンネル経由でJellyfinに送信します。通話の発信元は自宅のネットワークであり、ゲストには証明書付きのドメインのみが表示されます。ただし、VPSによって帯域幅が増加するわけではありません。ビデオは依然として自宅のネットワークから発信され、アップロード速度が使用されます。
ボトルネックとなるのはアップロード速度であり、ライブラリのサイズではありません。30TBもの映画があっても関係ありません。再生中のファイルだけがトンネルを通過するからです。接続のアップロード速度が100Mbps未満の場合は、中断を避けるためにJellyfinのビットレートをその速度の70%に制限することをお勧めします。この制限はコントロールパネルで設定でき、ローカルネットワーク外のデバイスにも影響します。
CGNATを使用していない場合は、WireGuardも選択肢の一つです。WireGuardは無料で高速であり、JellyfinパネルではなくUDPポートを公開するため、鍵を持たないユーザーは応答すら受け取ることができません。CGNATなしでも問題なく動作しますが、CGNATを使用している場合は、ホームサーバーが安定したアドレスにアクセスできないため、リスニングエンドポイントを外部に設置する必要があります。つまり、VPSを利用することになります。ホームネットワークの外部で誰かが通信を傍受する必要があり、こればかりは避けられません。
Cloudflare Tunnel はポートを開放する必要がなく、パブリック IP アドレスも不要です。サーバーに Cloudflare をインストールすると、アウトバウンド接続が確立され、ゲストは何もインストールせずにブラウザ経由でアクセスできます。問題は細かい条項にあります。Cloudflare の特定の利用規約では、エンタープライズ顧客でない限り、CDN を介してビデオや大容量ファイルを配信するには有料サービスを使用する必要があると規定されています。Cloudflareは、これらのサービスを使用せずに CDN を使用している疑いがある場合、アクセスを無効化または制限する権利を留保します。フォーラムで出回っていた古いセクション 2.8 は 2023 年 5 月に廃止され、その文書には「Tunnel」という単語は登場しないため、明確な禁止も明確な許可もありません。グレーゾーンです。
パブリックIPアドレスをお持ちで、数字の羅列ではなく名前だけが必要な場合は、無料のダイナミックDNSサービスで十分です。DuckDNSは、AWS上でホストされ、クレジットカード不要で無料であることを謳っています。No-IPも、ホスト名付きの無料プランを提供しており、クレジットカードは不要です。DuckDNSとNo-IPは最もよく知られた選択肢ですが、DynDNSは無料プランを提供していません。現在は、サービスの購入または7日間の無料トライアルのオプションのみが表示されます。また、ダイナミックDNSサービスはCGNATを修正したり、ポートフォワーディングを代替したりするものではないことに注意してください。
ポート8096を全世界に公開するのは最悪のアイデアです。Jellyfinははっきりとこう述べています。「インターネットに直接ポートを開放するのは安全ではなく、推奨されません。」HTTPを使用する場合、パスワードは暗号化されずに送信されます。最善のアプローチは、リバースプロキシを使用してHTTPSを終端し、互換性とセキュリティの問題を引き起こす自己署名証明書を避けることです。リバースプロキシでHTTPSを終端するのが賢明な方法です。Jellyfinでいくつかの設定を有効にするだけで、あとはうまくいくことを祈るだけです。
Jellyfinで調整する価値のあるセキュリティと設定
ポート8096はHTTP用、8920はHTTPS用ですがデフォルトでは使用されていません。7359はローカル検出用です。ポート8096はそのままでは公開すべきではありません。公開する場合は、HTTPS対応のリバースプロキシでアクセスを受信し、トラフィックをJellyfinにルーティングするようにしてください。
リモートアクセスには2つの独立したスイッチがあります。1つはサーバーレベルの「ネットワークとリモートアクセス設定」にあり、もう1つはユーザーごとに、各ユーザーのプロファイルにある「このサーバーへのリモート接続を許可する」オプションです。2つの独立したスイッチにより、自宅でのみ使用されるアカウントを除外し、本当にリモートアクセスが必要なユーザーのみを許可することができます。
速度制限は、コントロールパネル > 再生 > ストリーミングの「インターネットストリーミングビットレート制限」で設定します。これは、ネットワーク外のすべてのデバイスにおけるストリームごとの制限です。アップロード速度が100Mbps未満の場合は、Jellyfinはアップロード速度の70%に設定することをお勧めします。ストリームが2つになるとこの制限は2倍になるため、合計制限ではなく、ストリームごとの制限と考えてください。グローバル値は、各ユーザーのプロファイルで上書きできます。
クイックコネクトを使用すると、ユーザー名とパスワードの代わりに、一時的な6文字のコードでログインできます。デフォルトで有効になっており便利ですが、このコードだけでは有効になりません。既にログインしているデバイスで認証を受ける必要があります。これは魔法のバックドアではありません。不要な場合は、「設定」>「コントロールパネル」>「一般」で「このサーバーでクイックコネクトを有効にする」のチェックを外すことで無効にできます。
大規模なライブラリの場合、ディスク容量にこだわる必要はありません。トンネルを通過するのは再生中のファイルだけなので、重要なのはそのファイルのビットレートとアップロード速度です。ライブラリのサイズは帯域幅に影響しません。重要なのは、現在視聴している映画やシリーズのビットレートです。
ケースに応じて何を選ぶべきか

もしあなたが一人で、お使いのデバイスがスマートフォン、ノートパソコン、タブレットであれば、Tailscaleが最も簡単な選択肢です。たった半日、費用ゼロで、CGNATはあなたの生活から完全に消え去ります。Tailscaleは、ご自身のデバイスに個別にインストールして認証できるため、非常に便利です。サードパーティ製のテレビが関係しない場合は、これが最もシンプルな解決策となります。
テレビを見る家族と共有する場合、何もインストールしたくないという家族には、VPNとリバースプロキシを備えたVPSが、Plexのような体験を提供できる唯一の選択肢です。ドメインを開き、パスワードを入力するだけで、コンテンツを視聴できます。何もインストールする必要のない唯一の選択肢は、時間的に最もコストがかかり、月額料金が発生する唯一の選択肢でもあります。お母様、義母様、そして古いタブレットを使っているお子様にとって、この透明性は非常に貴重です。
パブリックIPアドレスをお持ちで、IPアドレスが変動するのではなく名前だけが必要な場合は、DuckDNSまたはNo-IPを使用してください。ダイナミックDNSは名前の解決には有効ですが、CGNATやセキュリティ対策には適していません。まず、パブリックIPアドレスがご自身のものであることを確認してから、名前について検討してください。
Cloudflare Tunnelは、利用規約を理解し、第三者サービスへの依存に抵抗がないのであれば、便利なツールとなり得ます。ただし、何の制約もなく無料で利用できるとは考えないでください。動画配信には制限があり、Cloudflareがサービスを制限する場合もあります。利用する際は、利用規約にTunnelトラフィックに関する公式な説明がないことを念頭に置き、十分に理解した上で利用してください。
絶対にやってはいけないのは、ポート8096を全世界に公開して運任せにすることです。ポート8096を全世界に公開するのは最悪の選択肢です。安全性が低く、情報漏洩の危険性があり、パスワードが暗号化されずに送信される可能性があります。何も設定したくない場合は、デバイスにTailscaleを使用してください。家族に透明性を求める場合は、VPNとリバースプロキシを備えたVPSを使用してください。ドメイン名だけが必要な場合は、ダイナミックDNSを使用してください。Cloudflare Tunnelに興味がある場合は、まず利用規約をよく読んでください。
最終的な決定は、Jellyfinを誰が使用するか、そしてどれだけの時間を費やす覚悟があるかによって決まります。Tailscaleはあなたにとって最もシンプルな選択肢ですが、家族にとっては最も分かりやすい選択肢とは言えません。もしすべてのデバイスがあなたのものであれば、Tailscaleはほぼ完璧でしょう。Samsung、LG、またはGoogle TVを使用し、面倒な設定を望まない家族がいる場合、VPNとリバースプロキシを備えたVPSがPlex体験に最も近い選択肢となります。つまり、家族は何もインストールする必要がなく、あなたが設定と料金の支払いを管理します。また、費用をかけずに試してみたいだけであれば、各デバイスの設定が可能で、サーバーが常に稼働していることを受け入れられれば、Tailscaleで今日からでも問題を解決できます。