ビットコインのフルノード ~ポート8333の開放

フルノードのポートを開放する方法

ビットコインのフルノードは、初期設定では他のノードからデータを受信するのみで、データの再送信はしません。

フルノードを完全な状態で稼働させるためには、ポート番号「8333」を開放し、他のノードからの接続を許可する必要があります。

契約しているISP(プロバイダー)または使用しているルーターによって、ポート開放の手順は微妙に異なります。また、環境によっては8333ポートを開放できないケースもあり、その場合は設定ファイルでポート番号を変更したり、ルーターを迂回するといった対応が必要になります。

  1. ポート「8333」を開放できる場合
  2. ポート「8333」を開放できない場合(V6プラス等の環境)
  3. ポートを一切開放できない場合(一部のルーター)

ポート「8333」を開放できる場合

ポート「8333」を開放できる場合は、ルーターの設定のみでポート開放が完了します。NTTのフレッツ光などを利用していて、IPV6プラスを使用していない状態であれば、このケースに該当すると思います。

接続環境の例:

ルーターの設定画面は、Webブラウザのアドレス欄に「192.168.1.1」などのアドレスを入力するとアクセスできます。

ルーターのアドレスが分からない場合は、Windowsのスタートメニューから「ファイル名を指定して実行」を選択して(またはWindowsキーを押しながら「R」キーを押して)、名前欄に「cmd」と入力し、OKをクリックします。

次に、コマンド画面で「ipconfig」と入力してENTERを押します。(Linuxの場合は「ifconfig」)

> ipconfig

すると、以下のような出力が得られます。

デフォルト ゲートウェイ . . . . . . 192.168.0.1

この例では、「192.168.0.1」がルーターのアドレスになります。これをブラウザに入力することで、ルーターの設定画面にアクセスできます。

ルーターの設定

ルーターの設定画面にアクセスすると、大抵はユーザー名とパスワードを要求されます。(初めてアクセスする時は、パスワードの設定画面が表示される場合もあります。)

ユーザー名とパスワードの初期値は、ルーターの取扱説明書に記載されていることが多いです。パスワードが分からなくなった時は、ルーターの初期化ボタンを長押しすることで、パスワードを初期値に戻すことができます。

設定画面にアクセスできたら、ポートの開放設定へと進みます。

筆者が利用しているモデム一体型ルーターのRV-440KIという機種では、「詳細設定」→「静的NAT設定」というメニューがポート開放に該当します(上図)。機種によっては、NAPT、ポートフォワード、ポートマッピング、仮想サーバーなど、様々な名称がついているのでご注意ください。

以下は、8333ポートを開放する手順の一例です。

ローカルIPアドレス(宛先IPアドレス)は、Bitcoin Coreを稼働するパソコンのローカルIPを入力します。ローカルIPは、上述の「ipconfig(ifconfig)」コマンドによって確認できます。

> ipconfig
......
......

IPv4 アドレス . . . . . . 192.168.1.3

設定を保存したら、ポートが正しく開放されているかどうかを確認します。

設定したポートは、そのポートを使用するプログラムが動いていないと開放されないので、確認のためにBitcoin CoreのGUIツール「bitcoin-qt」を起動します。

起動して一分ほど待ってから、下記のサイトでポート開放を確認しましょう。

Checkボタンをクリックして、下のように表示されれば、ポート開放が成功しています。

もし「Closed」と表示された場合は、次のことを試してみてください。

  1. しばらく待ってから、再度「Check」をクリックしてみる。(bitcoin-qtを起動してからポートが開くまでの間には、タイムラグが生じることもあるため)
  2. bitcoin-qtの「設定」→「オプション」→「ネットワーク」にて、「内部接続の許可」にチェックが入っていることを確認する。
  3. ファイアーウォールのアプリケーションを一時的に無効化する。
  4. Windowsマシンの場合は、以下のページを参考にしてポート8333への受信を許可する。
    Windows 10 ポート開放とファイヤーウォール無効及び初期化
  5. Linuxマシンの場合は、/etc/hosts.allow に以下を追加する。
    bitcoind: all
    bitcoin-qt: all

無事にポートが開放されると、bitcoin-qtで次のように接続ノードを確認できます。(「ヘルプ」→「デバッグ用ウィンドウ」→「ピア」)

逆に、ポート「:8333」のノードとしか接続されず、接続ノードの数が8で打ち止めになっている場合は、ポートが開放されていない状態です。


ポート「8333」を開放できない場合(V6プラス等の環境)

フレッツ光コラボなどの回線契約で、「V6プラス」というオプションサービスを利用している場合は、ネットワークの制限によって8333ポートの開放ができないようです。

接続環境の例:

(イメージ図)

V6プラスは、インターネット回線のボトルネックになっているISPの終端装置を迂回し、NGN(フレッツ光ネクスト網)に直接繋ぐことによって、安定した通信速度が得られるサービスです。

従来のISP経由の接続とは異なり、夜間に通信速度が低下するといった問題が起こりにくいため、V6プラスの利用者は年々増えてきています。

しかし、あまり知られていないデメリットとして、V6プラスではポートを自由に開放できないという制限があります。

正確には、開放できるポートの範囲が決められていて、そこに8333が含まれていないという点が、ビットコイン・ノードの運用者にとってはネックになります。

備考:

V6プラスでは「MAP-E」という技術が使われています。この他に、「DS-Lite」という類似の技術を用いて同様のサービスを提供しているプロバイダーもあります。DS-Liteの場合は、プロバイダー側でIPやポートの管理を行うため、利用者がポート開放を行うことはできないようです。
DS-Liteを利用中の方は、3番目の「ポートを一切開放できない場合」をご参照ください。


ポート番号の変更

Bitcoin Coreでは、"bitcoin.conf"という設定ファイルを編集することで、使用するポート番号を変えることができます。初期設定では8333ポートが使われますが、これをV6プラスで許可されているポート番号に変えることで、V6プラスの環境でもポートを開放できるようになります。

これを行うためには、まずルーターの設定画面にアクセスし、使用可能なポート番号を確認します。

ルーターの設定

ケース1と同様の手順でルーターの設定画面にアクセスします。
以下は、V6プラス対応の「Aterm WG1810HP(JE)」という機種の設定画面です。

ルーターの機種によっては、V6プラスにおいてポートが一切開放できないケースもあります。その場合は、「ポートを一切開放できない場合」をご参照ください。

ポート開放のメニューをクリックし、新しいエントリ(ポート開放のルール)を追加します。

V6プラス対応ルーターの場合、下図のように利用可能ポートが制限されています。8333は開放できないため、代わりに他のポートを選択して開放設定を行います。

ここでは例として、ポート「18416」を開放するケースをご紹介します。

ルーターの設定を保存したら、次にBitcoin Coreの設定ファイルを編集します。


bitcoin.confの編集

Bitcoin Coreの設定ファイルを、次の場所に作成します。

  • Windowsの場合:
    Windowsのスタートメニューから「ファイル名を指定して実行」を選択して(またはWindowsキーを押しながら「R」キーを押して)、名前欄に「%APPDATA%\Bitcoin」と入力し、OKをクリック。表示されたフォルダに、“bitcoin.conf”の名前でテキストファイルを作成する。(作成済みの場合は、テキストエディタで開く)
  • Linuxの場合:
    ターミナルを開き、以下のコマンドを入力する。
    > cd ~/.bitcoin/
    > vi bitcoin.conf #テキストの作成または編集
    (参考:viエディタの使い方

作成したbitcoin.confに、以下の一行を追加します。(ポート「18416」を開放する場合の記入例)

port=18416

編集したbitcoin.confを保存し、Bitcoin CoreのGUIツール「bitcoin-qt」を起動します。

起動して一分ほど待ってから、下記のサイトでポート開放を確認しましょう。

Checkボタンをクリックして、下のように表示されれば、ポート開放が成功しています。

もし「closed」と表示された場合は、こちらをチェックしてみてください。

フルノードのポートが開放されているかどうかは、以下のサイトからも確認できます。


ページ下部の入力欄に、IPV4アドレス(上述のポート開放のチェックページで確認できます)とポート番号を入力して「CHECK NODE」をクリックします。

上のように表示されれば、他のノードからアクセスできる状態になっています。

ただ、このサイトではブロックの同期が完了するまで(最新ブロックのダウンロードが終わるまで)、接続が確認できないことがあるようなので、「unreachable」と表示された場合は、ブロックの同期が完了してから再度確認してみてください。

ポートを一切開放できない場合(一部のルーター)

「DS-Lite」のネット環境、または一部のルーター(I-O DATA WN-AX1167GRなど)で「V6プラス」を利用している場合、ユーザー側でポートを一切開放できないケースがあります。

接続環境の例:

(イメージ図)

この場合は、フルノード用のPCを親ルーター(モデム一体型ルーター)につなぎ替えることで、従来のPPPoE接続を通じてポートを開放することができます。

フルノード用のPCを親ルーターにつなぐ:

フルノード用のPCを親ルーターにつないだら、親ルーターの設定画面にアクセスして、ISPから通知された接続IDとパスワードを設定します。(PPPoE接続を行うため)

あとは、ケース1と同じ手順で、親ルーターのポートを開放すればOKです。

こうすることで、普段使用するPCではV6プラスやDS-Liteの高速通信を維持しながら、フルノード用のPCではポート開放を自由に行うことができます。

そう聞くと、「フルノード用のPCで高速通信ができないなら、稼働してもあまり意味がないのでは?」と思われるかもしれませんが、そんなことはありません。フルノードで重要なのはダウンロード速度よりもアップロード速度です。PPPoE接続のアップロード帯域には十分な余裕があるので、ビットコイン・ネットワークに大きく貢献することができます。


ポートが開放されているか確認する

親ルーターにつないだフルノード用のPCは、子ルーター(V6プラス用ルーター)につないだPCとはIPが異なります。

そのため、親ルーターにつないだPC以外では、上述の「Open Port Check Tool」などでポート開放を確認する際に、異なるグローバルIPが表示されてしまいます。

このケースでは、親ルーターに接続したPCを使って確認するか、親ルーターのグローバルIPをメモしておくと良いでしょう。

ページトップへ

このサイトについて

当サイトは広告フリーで運営しております。
ご支援いただける方は、以下のアドレスにお願い致します。


ビットコイン アドレス
36oqqcnJeD3VZVkHatwfXnB8daxmUSavkF
bitcoin address
モナコイン アドレス
MJZ7aUPGrpeXrP22hRLYZZ9qVUWUNq4Rv6
monacoin address

1 satoshiから受付けております。ご支援、ありがとうございます!