쉘 스크립트를 사용하여 로컬 양말 프록시를 실행할 수 있는지 확인할 수 있습니까?

쉘 스크립트를 사용하여 로컬 양말 프록시를 실행할 수 있는지 확인할 수 있습니까?

로컬로 SOCKS 연결이 있다고 가정해 보겠습니다( 에 의해 설정됨 ssh -D8888). 나는 인터넷 검열을 우회하는 것과 같은 많은 일에 그것을 사용합니다.

그러나 때로는 SSH가 예기치 않게 중단되는 경우가 있습니다. 그러자 양말이 벗겨졌습니다.

로컬 SOCKS 프록시가 여전히 존재하는지 확인하는 데 사용할 수 있는 것이 있습니까?

감사해요,

답변1

터널을 통해 웹사이트 로드를 시도하여 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

관련 정보