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
実行中です。
スクリプトを呼び出す別の方法を見つける必要があります。