linux使用curl代理和检查及代理脚本sh-泓源视野

linux使用curl代理和检查及代理脚本sh

curl 检测代理

curl https://byy3.com -m 10 -o out.html --socks4 91.99.99.11:1080

说明:

curl   shell 抓取网页命令

-m 10    连接超时时间,最大为10秒

-o out.html    抓取网页输出到 out.html

--socks4 91.99.99.11:1080   代理协议采用 --socks4

 

此外,curl 7.21.7版本以上,还支持代理协议格式如下:

curl https://byy3.com -m 10 -o out.html -x socks4://91.99.99.11:1080

curl https://byy3.com -m 10 -o out.html --proxy socks4://91.99.99.11:1080

 

更多请详见米扑代理的代码示例:

https://proxy.mimvp.com/demo.php   (Shell curl wget)

下面是验证脚本代码proxy.sh添加权限chmod +x proxy.sh
#!/bin/bash
# sudo apt-get install autossh
# byy3.com at 2021-02-09
# remote host and port
REMOTE_PORT=22
# proxy ip addr
IP='91.99.99.11'
# proxy port
PORT=1080
# proxy spider url
CHECK_URL='http://www.baidu.com'
AUTOSSH_MONITOR_PORT=20000
LOG='check_proxy.log'
function __help(){
    echo 'usage:
    proxy [run | show | check | log]
example:
    proxy run       # run proxy
    proxy show      # show proxy information
    proxy check     # check proxy status
    proxy log       # show proxy log'
}
function __show(){
    OUTPUT=`ps -ef | grep -v "grep" | grep "autossh"`
    if [[ -n $OUTPUT ]]; then
        echo $OUTPUT
    else
        echo 'Proxy not working'
    fi
}
# options for autossh:
# -M      specifies the base monitoring port to use.
# -f      run in background (autossh handles this, and does not pass it to ssh.)
#
# options for ssh:
# -q      Quiet mode.
# -T      Disable pseudo-tty allocation.
# -f      Requests ssh to go to background just before command execution.
# -n      Redirects stdin from /dev/null (actually, prevents reading from stdin).  This must be used when ssh is run in the background.
# -N      Do not execute a remote command.  This is useful for just forwarding ports (protocol version 2 only).
# -g      Allows remote hosts to connect to local forwarded ports.
# -D port Specifies a local dynamic application-level port forwarding.
function __start(){
    echo 'try to connect remote host...'
    echo "autossh -M $AUTOSSH_MONITOR_PORT -f -qTnNg -D $REMOTE_PORT $REMOTE_HOST"
    autossh -M $AUTOSSH_MONITOR_PORT -f -qTnNg -D $REMOTE_PORT $REMOTE_HOST
    __show
}
function __check(){
    cmd_4="curl $CHECK_URL -m 10 --socks4 $IP:$PORT"
    cmd_5="curl $CHECK_URL -m 10 --socks5 $IP:$PORT"
    echo "cmd_4 : $cmd_4"
    echo "try to connect proxy $IP:$PORT"
    dtime=$(date +'%Y-%m-%d__%H:%M:%S')
    echo $dtime
    RESPONSE=`$cmd_4`
    echo "RESPONSE: $RESPONSE"
    if [[ -n $RESPONSE ]]; then
        echo $RESPONSE
        echo 'Proxy is working...'
        echo "$dtime -- Proxy is working" >> $LOG
    else
        echo 'Proxy not working...'
        echo "$dtime -- Proxy not working" >> $LOG
    fi
}
if [[ $# -eq 0 ]]; then
    __help
else
    action=$1
    case $action in
        'run')
            __start
            ;;
        'show')
            __show
            ;;
        'check')
            __check
            ;;
        'log')
            tail -n 10 $log
            ;;
        *)
            __help
            ;;
    esac
fi
本文由 泓源视野 作者:admin 发表,其版权均为 泓源视野 所有,文章内容系作者个人观点,不代表 泓源视野 对观点赞同或支持。如需转载,请注明文章来源。
9

发表评论

Protected with IP Blacklist CloudIP Blacklist Cloud
您是第8237863 位访客, 您的IP是:[3.145.63.136]