액세스할 수 없는 일부 http 파일 링크가 있지만 해당 링크에 액세스할 수 있는 원격 서버가 있습니다.
이 파일을 내 컴퓨터에 다운로드하기 위해 원격 서버를 "프록시"로 사용합니다. 이것이 내가 한 일입니다:
ssh
원격 서버로- 원격 서버에서 명령을 실행하여
wget
파일 다운로드 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 프록시(예: squid
Apache 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
.