공개 VPN에서 컬이 JSON을 수신하지 못함

공개 VPN에서 컬이 JSON을 수신하지 못함

Tomato v1.28.0000 -2017.2-kille72- K26ARM USB AIO-64K를 실행하는 Netgear R7000 라우터

목표: 컬을 사용하여 JSON에서 포트 번호 수신

이 스크립트를 셸에서 실행하면 작동하지만 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"

쉘 출력:

+ 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}'

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: ''

이전 질문에 대한 자세한 내용은 다음과 같습니다.VPN 호출 스크립트 열기: 인식할 수 없는 옵션: [AF_INET]

답변1

비어있는 이유는 실패 json때문이다 curl.

실패 이유는 curl보안 조치 때문입니다.디자인에 의해), OpenVPN은 어떤 패킷도 터널을 통과하는 것을 허용하지 않습니다.어느바이너리로 시작된 스크립트는 openvpn계속 실행 중입니다.

스크립트를 호출하는 다른 방법을 찾아야 합니다.

관련 정보