Как я могу открыть сервер RPC Geth для внешних подключений?

Я хочу настроить частную сеть приложений, которые могут подключаться к одному узлу Geth. Какие параметры у меня есть для публикации сервера RPC?

Я запускаю это: geth --rpc --testnet (иногда я использую --dev)

Как я могу добиться следующего:

  • Разрешить специальные общедоступные /закрытые ключи для доступа к узлу
  • Разрешить любому пользователю доступ к узлу
  • Разрешить диапазон IP для доступа к узлу

Возможное решение?

Для этого просто нужно запустить обратный прокси с сервером вроде Nginx?

18 голосов | спросил Karl Floersch 18 PMpMon, 18 Apr 2016 20:11:04 +030011Monday 2016, 20:11:04

3 ответа


20

Вы можете легко и безопасно создать SSH-туннель для вашего ETH-узла с сервера приложений. Таким образом, узел ETH обманут, полагая, что соединение связано с localhost, и вы можете обеспечить доступ только к обладателю закрытого ключа.

  

Это ссылка на инструкции по настройке проверки подлинности на основе сертификатов

     

Важно настроить проверку подлинности сертификатов, потому что иначе вы не сможете автоматизировать процесс.

После того, как вы установили это, вы можете создать туннель, выполнив команду типа:

ssh -f -N -L 9545:localhost:8545 [email protected]
  

Номера портов в моем примере различны, чтобы читатель мог их отличить. Нет никакой другой причины, чтобы сделать их разными.

После выполнения этой команды весь трафик на port 9545 на localhost будет перенаправлен на remotehost.remotedomain.tld:8545, который будет предположите, что он произошел из localhost и был нацелен на localhost:8545

Таким образом, вы можете сохранить свой узел ETH за брандмауэром и не открывать его в мир, но все же централизовать функциональность.

Чтобы использовать это в процессе производства, вам придется решить вопрос об отключении сеансов SSH.

ответил Dr Gorb 20 AMpWed, 20 Apr 2016 11:49:53 +030049Wednesday 2016, 11:49:53
16

предупреждение: я не рекомендую это

По умолчанию узел будет принимать соединения только из localhost . Вы можете изменить это, чтобы принимать подключения от кого-либо с помощью: --rpcaddr "0.0.0.0".

Обратите внимание, что секретный ключ в любое время разблокирован, any в Интернете может использовать этот ключ, запрашивая ваш сервер rpc и отправляя транзакции.

ответил Jeffrey W. 20 AMpWed, 20 Apr 2016 11:06:01 +030006Wednesday 2016, 11:06:01
1
--rpc --rpcport "8545" --rpcaddr "127.0.0.1" --rpccorsdomain "*"

- rpccorsdomain "*" позволяет любому подключиться к узлу на заданном --rpcport

ответил 0mkar 19 PMpTue, 19 Apr 2016 21:20:42 +030020Tuesday 2016, 21:20:42

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132