curl não recebe JSON em vpn aberta

1

Roteador Netgear R7000 executando o Tomato v1.28.0000 -2017.2-kille72-K26ARM USB AIO-64K

Objetivo: receber o número da porta do JSON usando o curl

Quando executo este script no shell ele funciona, mas não quando eu chamo o script na configuração do OpenVPN.

#!/opt/bin/bash
#
# Enable port forwarding when using Private Internet Access
#
# Usage:
#  ./port_forwarding.sh
set -x
exec 5>/etc/openvpn/mylog
BASH_XTRACEFD="5"

sleep 10

  client_id_file="/etc/openvpn/pia_client_id"
  client_id=$(/bin/cat "$client_id_file")
  json=$(/opt/bin/curl "http://209.222.18.222:2000/?client_id=$client_id" 2>/dev/null)
  /bin/echo server returned message: "$json"

Saída do shell:

+ sleep 10
+ client_id_file=/etc/openvpn/pia_client_id
++ /bin/cat /etc/openvpn/pia_client_id
+ client_id=080db0a6e936918d405683447a78bf426273e9a1ea2ecce744722ac3241d4232
++ /opt/bin/curl 'http://209.222.18.222:2000/?client_id=080db0a6e936918d405683447a78bf426273e9a1ea2ecce744722ac3241d4232'
+ json='{"port":44257}'
+ /bin/echo server returned message: '{"port":44257}'

Saída do OpenVPN:

+ sleep 10
+ client_id_file=/etc/openvpn/pia_client_id
++ /bin/cat /etc/openvpn/pia_client_id
+ client_id=080db0a6e936918d405683447a78bf426273e9a1ea2ecce744722ac3241d4232
++ /opt/bin/curl 'http://209.222.18.222:2000/?client_id=080db0a6e936918d405683447a78bf426273e9a1ea2ecce744722ac3241d4232'
+ json=
+ /bin/echo server returned message: ''

Mais detalhes da pergunta anterior: Abrir chamadas VPN um script: opção não reconhecida: [AF_INET]

    
por Dodgexander 30.10.2017 / 02:52

1 resposta

0

O motivo pelo qual json está vazio é porque curl falha.

A razão pela qual curl falha é porque; como uma medida de segurança (portanto por design ), o OpenVPN não permitirá que nenhum pacote atravesse o encapsulamento enquanto qualquer script que foi iniciado pelo binário openvpn ainda está sendo executado.

Você precisará encontrar outro método para invocar seu script.

    
por 31.10.2017 / 12:06