Estoy tratando de hacer que geth se sincronice detrás del firewall de mi oficina. Tengo un puerto TCP y UDP abierto (entrante y saliente) como se solicita en otros hilos similares, pero no parece ser suficiente. Específicamente, puedo escuchar a los pares correctamente, pero luego geth intenta conectarse a ellos usando diferentes puertos TCP, que obviamente están bloqueados por el firewall; netstat
muestra que estas conexiones están atascadas en SYN_SENT
, como se muestra a continuación.
netstat -b
[...]
[geth.exe]
TCP xxx.xxx.xxx.xxx:64801 ip2504fbb9:30303 SYN_SENT
[geth.exe]
TCP xxx.xxx.xxx.xxx:64802 185.31.136.69:30303 SYN_SENT
[geth.exe]
TCP xxx.xxx.xxx.xxx:64803 95.85.21.43:30303 SYN_SENT
[geth.exe]
TCP xxx.xxx.xxx.xxx:64804 wallets:30303 SYN_SENT
[...]
¿Realmente tengo razón en que es necesario abrir más puertos para que funcione geth? ¿Hay alguna manera de especificar un rango?
Para descargar solo datos de otros nodos, no necesita abrir ningún puerto de salida. Solo se requiere abrir su :30303 al mundo si desea ejecutar un nodo completo, ayudando a otras personas a usar Ethereum.
Entonces, lo único que necesita es permitir las conexiones entrantes a su host, casi todos los firewalls lo permiten de manera predeterminada (o no le sería posible abrir ningún sitio). Algunos cortafuegos pueden no permitir conexiones entrantes desde puertos no estándar (no 80/443), verifique que las conexiones entrantes como 1.2.3.4:30303 estén permitidas
Hay una solución para esto. Una vez que ejecute su geth
o testrpc
en su http://localhost:8545
, use ngrok para exponer el servicio a la URL de ngrok generada aleatoriamente.
$ ngrok http 8545
genera una url como https://randomNumbers.ngrok.io
. Esta URL se puede utilizar como un archivo web provider
. Pude probar esto en el navegador Remix y funcionó perfectamente bien.
Lee Han Kyeol