특정 프록시 서버를 사용하여 명령을 호출하는 방법은 무엇입니까?


12

일부 응용 프로그램은 프록시 (http 프록시 또는 socks 프록시)를 지원하지만 일부는 지원하지 않습니다.

브라우저의 경우 환경 설정 / 옵션 대화 상자에서 프록시 서버를 지정할 수 있으며 다른 응용 프로그램은 구성 파일에서 프록시 서버를 구성 할 수 있습니다.

일반적인 목적으로 특정 프록시를 사용하여 명령을 호출 할 수 있습니까? 다음과 같이 :

$ proxy-exec --type sock5 --server 1.2.3.4:8000 -- wget/ftp ...

우분투 매버릭을 사용하고 있습니다.

추신

win32에서는 소켓 dll을 하이재킹하여 구현할 수 있습니다 .Linux 프로그래밍에 익숙하지 않지만 Linux에서는 가능할 것입니다. 그러나.

답변:


17

대부분의 리눅스는 접근에게의 인터넷 모습 명령 HTTP_PROXY, FTP_PROXYSOCKS_SERVER프록시 정보에 대한 환경 변수를. 따라서 예제와 같은 작업을 수행하려면 다음을 실행하십시오.

export SOCKS_SERVER=1.2.3.4:8000
wget http://superuser.com/q/262956/66003

HTTP_PROXY및 구문 FTP_PROXY은 약간 다릅니다.

export HTTP_PROXY=http://1.2.3.4:3128/
export FTP_PROXY=ftp://1.2.3.4:25/

Ubuntu의 프록시 설정에 포함 된 기본 그놈 데스크탑 환경에는 시스템 전체 적용 버튼이 있으며,이 환경 변수가 자동으로 설정됩니다. 그렇지 않으면 파일에 export줄을 추가하여 ~/.bashrc모든 로그인에서 적용되도록 할 수 있습니다.

불행히도, wgetSOCKS를 전혀 지원하지 않습니다. curl우분투에 포함 된를 사용 하면 많은 일을 할 wget수 있습니다. 불행히도, 확인 SOCKS_SERVER하지는 않지만 확인합니다 HTTP_PROXY( wget). curl을 사용하여 SOCKS5 서버 (해당 서버에서 DNS 확인 수행)로이 페이지를 다운로드하고로 저장하려면 다음을 superuser.html실행하십시오.

curl --socks5-hostname 1.2.3.4:8000 http://superuser.com/q/262956/66003 > superuser.html

당신이 확인하려면 curl항상 SOCKS 프록시를 사용, 당신은 쉘 별칭을 만들 수 있습니다. 에 다음 줄을 추가하십시오 ~/.bashrc.

alias curl='curl --socks5-hostname 1.2.3.4:8000'

변경 사항을 적용하기위한 명령 인 것처럼 터미널을 다시 시작하거나 해당 라인을 실행해야합니다.


나는 해봤 wget와 함께 SOCKS_SERVER,하지만 작동하지 보인다. wget에서 프록시 설정 만 읽습니다 /etc/wgetrc. 나도 시도했지만 links을 지정할 수 links -socks-proxy 127.0.0.1:7878 <url>는 있지만 사용하지 못했습니다 export SOCKS_SERVER=...; links <url>.
Xiè Jìléi

@ 谢 继 雷 : 불행히도 일부 프로그램은 읽지 SOCKS_SERVER못하지만 많은 인기있는 프로그램은 그렇지 않습니다 ssh. 또한 wgetSOCKS를 전혀 지원하지 않는 것 같습니다. 그러나을 사용할 수 있습니다 curl. 이에 대한 정보를 답변에 추가하겠습니다.
패치

또한 youtube-dl읽지 않습니다 SOCKS_SERVER그것을 읽고, http_proxy대신. 그리고 양말 프록시를 지원하지 않습니다. 음 ... 프로그램 목록과 지원되는 프록시 환경 변수는 매우 유용 할 수 있습니다.
Xiè Jìléi

BXR.SU 를 검색하면 OpenSSH가 아닌 SOCKS_SERVER를 전혀 지원하지 않는 것처럼 보입니다 . 가장 확실한 socksify것은 보안 / dante 패키지 의 유틸리티가 지원하는 옵션 일뿐 입니다.
cnst

wget(1)패키지 버전에서는 빌드와 거의 일치 하지 않는 경우 버전 1.4.0 (1999 년경) 부터 SOCKS 프록시를 지원할 수 있습니다 . --with-socks
bufh

10

proxychains 사용해보십시오 .

로 설치할 수 있습니다 apt-get. 그런 다음 다음 중 하나에 구성 파일을 작성해야합니다.

1) ./proxychains.conf
2) $(HOME)/.proxychains/proxychains.conf
3) /etc/proxychains.conf **

그리고 당신처럼 다른 명령을 호출 할 수 있습니다 proxychains wget google.com연결이 프록시를 통해 이동합니다 -. 한 번에 또는 임의의 순서로 사용되는 여러 프록시를 지정할 수 있습니다.

예를 들면 다음과 같습니다.

➜  ssh -ND 4000 sockshost &
[1] 3446
➜  wget whoer.net -q -O- | grep remote_addr
89.71.*.*
➜  cat proxychains.conf 
[ProxyList]
socks5 127.0.0.1 4000
➜  proxychains wget whoer.net -q -O- | grep remote_addr
|D-chain|-<>-127.0.0.1:4000-<><>-95.211.121.18:80-<><>-OK
78.98.*.*

HTML 태그와 IP를 제거했지만 프록시가 사용되고 IP 주소가 변경되었음을 알 수 있습니다.


3
원래 프록시 체인 은 유지 관리되지 않으므로 proxychains-ng를 대신 사용할 수 있습니다 .
Denilson Sá Maia

1

패치가 말한 것처럼 wget은 양말을 지원하지 않습니다 .

curl --socks5-hostname 1.2.3.4:8000 /superuser//q/262956/66003

wget이 필요한 경우 설치할 수 있습니다 tsocks.

설치 sudo aptitude install tsocks및 설정 :

$ sudo vim /etc/tsocks.conf
server = 1.2.3.4
server_type = 5
server_port = 8000

용법:

tsocks wget /superuser//q/262956/66003

1
torsocks는 tsocks의 업데이트 된 버전이 될 것 같다 : superuser.com/a/1000811/128124
치로 틸리冠状病毒审查六四事件法轮功
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.