원격 서버를 프록시로 사용하여 파일을 다운로드하는 방법은 무엇입니까?

원격 서버를 프록시로 사용하여 파일을 다운로드하는 방법은 무엇입니까?

액세스할 수 없는 일부 http 파일 링크가 있지만 해당 링크에 액세스할 수 있는 원격 서버가 있습니다.

이 파일을 내 컴퓨터에 다운로드하기 위해 원격 서버를 "프록시"로 사용합니다. 이것이 내가 한 일입니다:

  1. ssh원격 서버로
  2. 원격 서버에서 명령을 실행하여 wget파일 다운로드
  3. scp다운로드한 파일을 명령을 통해 내 컴퓨터로 전송합니다.

이를 달성하는 더 편리한 방법이 있는지 묻고 싶습니다. 좋다:

some_command root@server http://xxxxx/file.zip ~/Desktop/

감사해요:)

답변1

SSH편리한 TCP SOCKS5 프록시 모드와 그 기능을 제공합니다.-디/동적 전달옵션(기본 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가로채기(다음과 같은 다른 방법도 있습니다.단테~의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/

답변2

원격 컴퓨터에 HTTP 프록시(예: squidApache httpd의 일부 구성)가 있는 경우 해당 프록시를 통해 요청할 수 있습니다. 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.

관련 정보