Как использовать удаленный сервер в качестве прокси для скачивания файла?

Основываясь на инструкциях meuh, вот как была сделана эта "экранная заставка":

#!/bin/bash
evemu-record /dev/input/event2 |
stdbuf -oL egrep 'EV_KEY|REL_WHEEL' |
(
   ./network_saver.sh   
)

Где сеть _saver.sh это:

#!/bin/bash
WAIT=5
while [ 1 ]
do
    echo Waiting for $WAIT seconds of mouse button inactivity
    while read -t $WAIT line
    do
        echo -n.
    done
    echo; echo Disabling networking
    nmcli n off
    echo Waiting for a mouse button press
    while read line
    do
        echo -n.
        break;
    done
    echo; echo Enabling networking
    nmcli n on
    # Connect the main nic as soon as possible
    nmcli conn up "Ethernet connection 1" >/dev/null
done
3
08.11.2020, 11:10
2 ответа

Если на удаленной машине есть прокси-сервер HTTP (, такой как squid, или определенные конфигурации httpd apache ), вы можете отправить запрос через него.env http_proxy=http://server:3128/ wget http://xxxxx/file.zip

Если на удаленной машине есть прокси-сервер SOCKS или SOCKS5, вы можете отправить запрос через него, но может потребоваться что-то другое, кроме wget.

Если ваш логин SSH чист, вы можете сделать что-то вроде:

ssh -n user@server wget -O- http://xxxxx/file.zip >~/Desktop/file.zip

Лично я обычно делал удаленный wget, а затем передавал файл с помощью rsync.

2
18.03.2021, 22:51

ssh обеспечивает удобный режим прокси-сервера TCP SOCKS5 с опцией-D / DynamicForward (давайте использовать порт SOCKS по умолчанию :1080, вы можете использовать любой порт, если на него есть ссылка в более поздних настройках):

ssh -D 1080 someuser@server

Вместо этого вы можете запустить команду ssh в фоновом режиме, чтобы она оставалась доступной без необходимости оставлять ее в терминале на потом:

ssh -f -o ExitOnForwardFailure=yes -D 1080 someuser@server

К сожалению, сам wgetне поддерживает протокол SOCKS. curlподходит либо с:

export http_proxy=socks5h://localhost:1080/ https_proxy=socks5h://localhost:1080/
curl -o ~/Desktop/file.zip http://xxxxx/file.zip

или просто:

curl --socks5-hostname localhost:1080 -o ~/Desktop/file.zip http://xxxxx/file.zip

Если вам действительно нужно wget, вы должны использовать оболочку. Например, есть proxychains, который опирается наLD_PRELOADперехват (, есть и другие, такие как dante клиентская оболочка socksify, работающая аналогичным образом, или redsocks, которая сама полагается на специальный настройка брандмауэра для перехвата ).

mkdir ~/.proxychains
(echo strict_chain; echo proxy_dns; echo '[ProxyList]'; echo socks5 127.0.0.1 1080) > ~/.proxychains/proxychains.conf

proxychains wget http://xxxxx/file.zip ~/Desktop/
3
18.03.2021, 22:51

Теги

Похожие вопросы