おそらくあなたはウェブサイトの記事を読むたびにポップアップ広告に悩まされています。それらすべての広告で、それらをブロックする方法は? DockerにPi-holeをインストールし、Pi-holeをネットワーク全体の広告ブロッカーとして使用してネットワークパフォーマンスを向上させます。
このチュートリアルでは、DockerコンテナでPi-holeを設定して実行し、広告やWebサイトをブロックする方法を学習します。エキサイティングに聞こえますか?詳細については、以下をお読みください。
前提条件
このチュートリアルは、実践的なデモンストレーションになります。フォローする場合は、次のものがあることを確認してください。
- DockerがWindows10にインストールされています(ただし、サポートされているOSはすべて機能します)。
- Windows 10 PC –このチュートリアルではWindows10OSビルド19042.1165を使用します。
2つの永続的なDockerボリュームの作成
DockerコンテナでPi-holeを設定するときは、最初に、Pi-holeアプリケーションとDNS構成を保存するDockerボリュームを作成する必要があります。
管理者としてPowerShellを開き、Dockerに対して以下のコマンドを実行して2つのボリュームを作成します(volume create
)pihole_app
という名前 およびdns_config
。好みに応じて名前を変更することもできます。
docker volume create pihole_app
docker volume create dns_config
次に、マシンで使用可能なすべてのDockerボリュームを一覧表示する次のコマンドを実行して、Dockerボリュームが正常に作成されたことを確認します。
docker volume ls
以下に、pihole_app
という名前の新しく作成された2つのボリュームを示します。 およびdns_config
。
環境変数を使用してDockerコンテナでPi-holeを実行する
2つの永続ボリュームを使用できるようになったので、Pi-holeのベースDockerイメージを使用してDockerコンテナを実行する準備が整いました。ただし、最初に、ローカルIPアドレスをメモする必要があります。
以下のコマンドを実行して、ローカルIPアドレスを取得します。単一のDockerコマンドを正しく実行するには、ローカルIPアドレスが必要です。
ipconfig /all
次に、以下のコマンドを実行して、pihole/pihole
をプルします。 Dockerハブからのベースイメージ。以下の表を参考にして、値を適宜置き換えてください。次の表は、コマンドの目的の各フラグを説明しています。
docker run --name=pihole -e TZ=Asia/Manila -e WEBPASSWORD=password -e SERVERIP=YourIPAddressHere -v pihole_app:/etc/pihole -v dns_config:/etc/dnsmasq.d -p 81:80 -p 53:53/tcp -p 53:53/udp --restart=unless-stopped pihole/pihole
Pi-holeDockerコマンドフラグ
コマンドフラグ | 定義 |
—name =pihole | Dockerコンテナにpiholeという名前を付けます。同じ名前のコンテナがすでにマシンに存在する場合はエラーが発生します |
-eTZ=アジア/マニラ | タイムゾーンの環境変数。このチュートリアルではアジア/マニラを使用しましたが、GitHubの要点に記載されているものと同じ形式のものなら何でも入力できます。 |
-e WEBPASSWORD =password | Pi-holeインターフェースのパスワードを設定します。 |
-e SERVERIP =YourIPAddressHere | DockerコンテナのIPアドレスを設定します。後でこれを使用して、Pi-holeを機能させます。 |
-v pihole_app:/ etc / pihole | ボリュームpihole_appをマウントし、サブディレクトリ / etc / piholeを使用します Pi-holeファイルを保存するための |
-v dns_config:/etc/dnsmasq.d | ボリュームdns_configをマウントし、サブディレクトリ / etc/dnsmasqを使用します。 d必要に応じてDNS構成を保存します。 |
p 81:80 -p 53:53 / tcp -p 53:53 / udp | ホストマシンのポートをDockerコンテナのポートにマップします(ホストマシンのポート81はDockerコンテナのポート80にマップします) |
—restart =unless-stopped | 再起動ポリシーを設定して、ユーザーが手動で停止しない限り、Dockerコンテナが常に再起動するようにします。 |
pihole / pihole | dockerrunコマンドにDockerハブからの公式のpihole/piholeベースイメージを使用するように指示します。 |
以下に、コマンドがpihole/pihole
をプルするのを見ることができます DockerHubのベースイメージ。一度pihole/pihole
画像がマシンにダウンロードされると、コマンドは自動的に続行され、コマンドで設定したパラメータに従います。
pihole/pihole
を引いた後 ベースイメージには、次のような出力が表示されます。これは、コンテナからPi-holeダッシュボードをすでに実行できることを示しています。
Pi-holeダッシュボードWebインターフェイスへのアクセス
作成したDockerコンテナーが実行されると、Pi-holeダッシュボードにアクセスできるようになります。 Pi-holeダッシュボードは、独自のブラックリストまたはコミュニティが管理するブラックリストを介してブロックする広告を構成できるグラフィカルインターフェイスです。
http:// localhost:81に移動します 以前にポート81
をマップしたため、ブラウザで ホストマシンのポート80
への Dockerコンテナの。そうすることで、WebブラウザはページをPi-holeダッシュボードにリダイレクトします。
前の
docker
の実行時に別のポートを設定した場合 コマンドを実行し、ポートを変更してPi-holeダッシュボードにアクセスします。たとえば、http:// localhost:nここで、「n」はポート番号を表します。
次に、docker
を実行して設定したパスワードを使用してPi-holeダッシュボードにログインします。 「環境変数を使用したPi-holeDockerコンテナの実行」セクションのコマンド。このチュートリアルでは、パスワードは「パスワード」(引用符なし)です。
以下に示すように、Pi-holeコンテナはアクティブに広告をブロックしておらず、スタンバイモードで、いわゆる「クエリ」または広告リクエストの評価を待機しています。
ホストのDNSサーバーをPi-holeIPアドレスにポイントする
Pi-holeサーバーが実行されている状態で、ローカルシステムで広告をブロックするにはどうすればよいですか?すべてのリクエストをPi-holeIPアドレスにルーティングし、一致する広告をブロックするようにローカルシステムに指示する必要があります。方法を学ぶために読んでください!
1. Windowsシステムトレイのネットワーク設定アイコンを右クリックして、[ネットワークとインターネットの設定を開く]を選択します。 マシン内のすべてのネットワークアダプタのリストを表示します。
2.次に、ネットワークアダプタを右クリックして、[プロパティ]を選択します。 。ネットワークアダプタの設定ウィンドウがポップアップ表示されます。
3. インターネットプロトコルバージョン4(TCP / IPv4)を選択します ネットワーキングの下のリストから タブをクリックし、プロパティをクリックします ボタン。
4.次のようにIPv4プロパティを構成します。
- オプションを選択します次のIPアドレスを使用します 静的IPアドレスを設定します。ホストマシンへの静的IP割り当てにより、他のデバイスが接続してアドブロッカーを使用できるようになります。ルーターのデフォルトゲートウェイは、お住まいの国のISPプロバイダーの設定によって異なります。
- オプションを選択します次のDNSサーバーアドレスを使用します DNSサーバーを構成し、優先DNSサーバーにDNSサーバーを追加するオプション 分野。以前の
docker
から設定したDockerサーバーのIPアドレスを入力します 「環境変数を使用したPi-holeDockerコンテナの実行」セクションのコマンド。 - 代替DNSサーバーにGoogleサーバー8.8.8.8などの代替サーバーを追加します フィールドをクリックし、[ OK ]をクリックします 。代替DNSサーバーは、Pi-holeDockerコンテナーが何らかの理由でダウンした場合のDNSサーバーとして機能します。好みの代替DNSサーバーに別の値を与えることができます。
単一デバイスのDNSの構成
スマートフォンまたは他のデバイスが同じネットワークに接続されていると仮定すると、そのデバイスのDNSサーバーをホストのIPアドレスと一致するように指定できます。このチュートリアルでは、スマートフォンが同じネットワークに接続されています。
1.スマートフォンのワイヤレスネットワーク設定で、手動をタップします ホストマシンのIPアドレスを入力します。 Pi-holeに障害が発生した場合に備えて、代替IPアドレスを追加することもできます。
スマートフォンのワイヤレスネットワーク設定インターフェースは互いに異なります。
2.次に、スマートフォンのWebブラウザの広告に重点を置いているいくつかのWebサイトにアクセスします。
この例では、DailyMailとNewYork TimesのWebサイトに5〜10分間繰り返しアクセスしました。 Pi-holeダッシュボードのライブブラウザ管理者は、以下に示すように、デバイスからブロックされた広告の数を表示します。
棒グラフは、この記事の執筆時点でPi-holeの最新バージョンに最近追加されたものです。一部の古いバージョンには、代わりに折れ線グラフがあります。
ルーター設定によるホームネットワーク全体のブロックの有効化
単一のデバイスでDNSサーバーを構成するのではなく、ルーター設定ですべてのデバイスにDNSサーバーを構成してみてください。ルーターによっては、IPアドレスを使用するためのプロビジョニングがある場合とない場合があります。
このデモでは、ルーターは変更中のDNSサーバーとDHCPへのアクセスを許可しませんでした。そのため、ルーターの制約により、このチュートリアルではホームネットワークについて詳しく説明しませんでした。
サンプルの管理ビューでは、単一のデバイスで実行されたのと同じ方法でDNSサーバーのIPをエンコードできる場合があります。このデモでは、ISPにロックされたProlinkPRS1841U-v2ルーターを使用しています。
DNS構成インターフェースはルーターごとに異なりますが、設定は次のようになります。
ルーターでDHCPサーバーを無効にしてから、代わりにPi-holeでDHCPサーバーを有効にすることもできます。 Pi-holeコミュニティでのサンプルディスカッションは、これをより詳細に示しています。
Pi-holeダッシュボードを介したWebサイトのブロック
Pi-holeのデフォルトのインストールでは、デフォルトで約92,725のWebサイトがブロックされますが、Pi-holeメーカーのブラックリストやPi-holeファンが共有するその他のリストを介してWebサイトを追加することもできます。
1. Webサイトを保存して、希望する名前のテキストファイルでブロックします。この例では、ファイルの名前は blocklist.txt です。 。
2. docker
を実行します 以下のコマンドを使用して、 blocklist.txtをコピーします ファイル(cp blocklist.txt
) blacklist.txtという名前のファイル内のDockerコンテナのボリュームに 。 blacklist.txtを保持します Pi-holeが自動的に検出するようにDockerボリュームにファイルします。
docker cp blocklist.txt d70:/etc/pihole/blacklist.txt
3.最後に、Pi-hole管理ダッシュボードに再度移動します。 ツールをクリックします 左側のパネルのメニューをクリックしてから、重力の更新 リンク。最後に、[更新]をクリックします Pi-holeがブロックするURLの更新されたリストを取得します。
正常に更新されると、次のようになります。
コンソールを介したWebサイトのブロックリストの更新
おそらく、Pi-holeダッシュボードをナビゲートするよりもコンソールコマンドを実行する方が好きでしょう。その場合は、PowerShellでdockerコマンドを実行して、Webサイトをブロックできます。 docker exec
を実行します 以下のコマンドを使用して、pihole_app
へのインタラクティブなターミナルセッションを作成します コマンドの実行を可能にするDockerコンテナ。
docker exec -it pihole_app /bin/bash
ターミナルセッションが開いたら、以下のコマンドを実行して、Pi-holeのURLのブラックリストを更新します。
pihole -g
pihole -g
を再実行します 広告ブロッカーが最新の状態に保たれるように、時々。
コミュニティが管理するURLのブラックリストを介したWebサイトのブロック
一部のURLは、寄稿者によって定期的に更新されることに専念していますが、そうでないものもあるため、古いリストからブラックリストをアップロードしても、最新の変更が反映されない場合があります。
Pi-holeのAdlistブロックリストグループ管理機能を活用します。 Pi-holeダッシュボードで、グループ管理をクリックします。 →アドリスト 左側のパネルのメニューをクリックし、追加をクリックします Pi-holeに追加するURLのリストを選択します。
結論
このチュートリアルでは、Pi-Hole Dockerイメージをダウンロードする方法、アクティブなリスニングPi-hole Webインターフェイスをテストする方法、Pi-holeに接続するための外部デバイスをテストする方法を学習しました。また、広告やWebサイトをブロックする方法を学び、Pi-holeダッシュボードがブロックされているのを確認しました。
この知識があれば、ホストマシンを使用して、同じネットワーク内の他の接続されたデバイスへの広告をブロックしてみませんか?