ローカルにSOCKS接続があるとします(によって設定されますssh -D8888
)。私はインターネット検閲を迂回するなど、多くのことにそれを使用します。
しかし、時にはSSHが予期せず中断されることがあります。すると靴下がはがれた。
ローカルSOCKSプロキシがまだ存在することを確認するために使用できるものはありますか?
ありがとう、
答え1
トンネルを介してWebサイトをロードしようとすると、sockプロキシの可用性をテストできます。
curl -sSf --socks5-hostname localhost:8888 www.google.com > /dev/null
上記のコマンドは、curl
エラーが発生しない限り沈黙します。スクリプト内でforループにこのコマンドをラップできます。curl
ソックスプロキシがアクティブで閉じていgoogle.com
ない場合、戻り値は0です。
#!/bin/bash
set -o errexit
set -o nounset
#set -o xtrace
PROGNAME=$(basename $0)
die () {
echo "${PROGNAME}: ${1:-"Unknown Error, Abort."}" 1>&2
exit 1
}
status=0
while [[ 1 ]]; do
curl -sSf --socks5-hostname localhost:8888 www.google.com > /dev/null || status=$?
if [[ $status -ne 0 ]]; then
echo "Trying to reconnect .."
# kill proxy
# reconnect-cmd || die "$LINENO: reconnecting failed"
fi
sleep 100
done