Bitcoin: Поведение по умолчанию привязки ко всем интерфейсам для RPC-сервера не работает

Созданный на 4 дек. 2016  ·  3Комментарии  ·  Источник: bitcoin/bitcoin

Опишите проблему

--help для rpcbind предполагает, что поведение по умолчанию - привязка ко всем интерфейсам. Однако в Core 0.13.1 я заметил, что если rpcbind не включен в конфигурацию, сервер RPC либо привязан только к интерфейсу обратной связи, либо только к порту IPv6.

Сможете ли вы достоверно воспроизвести проблему?

да. Это не удается по-разному, в зависимости от того, поставили ли вы rpcallowip

Сценарий воспроизведения 1

Сбой без уведомления, привязывается только к интерфейсу обратной связи.

server=1
rpcuser=something
rpcpassword=somethingelse
  • Связывается с 127.0.0.1:8332
  • Связывается с [fe80 :: 1% lo0]: 8332

Сценарий воспроизведения 2

Сообщение об ошибке в журнале, привязывается только ко всем интерфейсам для IPv6.

server=1
rpcuser=something
rpcpassword=somethingelse
rpcallowip=0.0.0.0/0
rpcallowip=::/0
  • Binding RPC on address 0.0.0.0 port 8332 failed. сообщается в _debug.log_.
  • Привязан к [::]: 8332

Какую версию биткойн-ядра вы используете?

0,13,1

Технические характеристики машины:

  • ОС: Apple OS X 10.11.6 (15G1108)
  • Процессор: 12-ядерный Intel Xeon E5 с тактовой частотой 2,7 ГГц
  • Оперативная память: 64 ГБ 1866 МГц DDR3 ECC
  • Размер диска: 1 ТБ
  • Тип диска (HD / SDD): SSD
RPRESZMQ

Самый полезный комментарий

Я только что столкнулся с той же проблемой. Может стоит отметить такое поведение в справке по bitcoind?

Потому что, хотя поведение всегда было таким, недвусмысленно описана опция, по умолчанию она привязывается ко всем интерфейсам:

  -rpcbind=<addr>
       Bind to given address to listen for JSON-RPC connections. Use
       [host]:port notation for IPv6. This option can be specified
       multiple times (default: bind to all interfaces)

Пришлось погуглить еще немного, чтобы найти ответ.

Все 3 Комментарий

Вы уверены, что это действительно так?

Это сообщение:

Привязка RPC к адресу 0.0.0.0 порта 8332 не удалась. сообщается в debug.log.

Означает, что он не может привязаться к 0.0.0.0 - что обычно означает, что любой IPv6-адрес работает как «перехватывающий» как для входящих подключений IPv4, так и для IPv6. Так обстоит дело с некоторыми ОС, поэтому нет необходимости использовать две привязки.

Вы пробовали подключиться к порту?

Кстати: поведение по умолчанию - и всегда было - привязка ко всем интерфейсам, если установлено -rpcallowip . Если нет привязки только на localhost [оба не имеют явных привязок]. Это функция безопасности.

Я только что столкнулся с той же проблемой. Может стоит отметить такое поведение в справке по bitcoind?

Потому что, хотя поведение всегда было таким, недвусмысленно описана опция, по умолчанию она привязывается ко всем интерфейсам:

  -rpcbind=<addr>
       Bind to given address to listen for JSON-RPC connections. Use
       [host]:port notation for IPv6. This option can be specified
       multiple times (default: bind to all interfaces)

Пришлось погуглить еще немного, чтобы найти ответ.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги