![쉘 스크립트를 사용하여 로컬 양말 프록시를 실행할 수 있는지 확인할 수 있습니까?](https://linux55.com/image/72475/%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%A1%9C%EC%BB%AC%20%EC%96%91%EB%A7%90%20%ED%94%84%EB%A1%9D%EC%8B%9C%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%8A%94%EC%A7%80%20%ED%99%95%EC%9D%B8%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
로컬로 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