公開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実行中です。

スクリプトを呼び出す別の方法を見つける必要があります。

おすすめ記事