Belirli bir proxy sunucusunu kullanarak bir komut nasıl çağrılır?


12

Bazı uygulamalar proxy'yi (http proxy veya socks proxy) destekler, bazıları desteklemez.

Tarayıcılar için, tercihler / seçenekler iletişim kutusunda proxy sunucusu belirtebilirim ve diğer uygulamalar proxy sunucularını yapılandırma dosyalarında yapılandırabilir.

Genel amaçlı olarak, belirli bir proxy kullanarak bir komut çağırabilir miyim? Aşağıdaki gibi:

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

Ubuntu Maverick kullanıyorum.

PS

Win32'de, soket dll'lerini ele geçirerek uygulanabilir, belki de Linux programlarına aşina değilim, ama sanırım Linux'ta mümkün. rağmen.

Yanıtlar:


17

Çoğu Linux bu erişim internet görünüm komutları HTTP_PROXY, FTP_PROXYve SOCKS_SERVERvekil bilgiler için ortam değişkenleri. Örneğin, örneğiniz gibi bir şey yapmak için şunu çalıştırın:

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

Sözdizimi HTTP_PROXYve FTP_PROXYbiraz farklıdır:

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

Ubuntu'nun proxy ayarlarında bulunan varsayılan GNOME masaüstü ortamında , bu ortam değişkenlerini sizin için otomatik olarak ayarlayan Sistem Çapında Uygula düğmesi vardır. Aksi takdirde, her girişte etkili olmaları için exportsatırları ~/.bashrcdosyanıza ekleyebilirsiniz .

Ne yazık ki, wgetSOCKS'i hiç desteklemiyor. Sen kullanabilirsiniz curlbirçok şeyi başarmak için, Ubuntu ile dahil edildiği, wgetyok. Ne yazık ki, kontrol SOCKS_SERVERetmiyor, kontrol ederken HTTP_PROXY(olduğu gibi wget). Bu sayfayı bir SOCKS5 sunucusuyla (bu sunucuyla DNS çözümlemesi gerçekleştirerek) indirmek ve kıvrım olarak kullanmak için şu şekilde superuser.htmlçalıştırın:

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

Her curlzaman bu SOCKS proxy'sini kullanmak istiyorsanız, bir kabuk takma adı oluşturabilirsiniz. Sadece aşağıdaki satırı ekleyin ~/.bashrc:

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

Terminalinizi yeniden başlatmanız veya bu satırı değişikliklerin geçerli olması için bir komutmuş gibi çalıştırmanız gerekir.


Denedim wgetile SOCKS_SERVER, ama bir işe değil gibi görünüyor. wgetyalnızca proxy ayarlarını oku /etc/wgetrc. Ben de denedim links, belirtmek tamam links -socks-proxy 127.0.0.1:7878 <url>, ama kullanarak başarısız oldu export SOCKS_SERVER=...; links <url>.
Xiè Jìléi

@ 谢 继 雷: Ne yazık ki bazı programlar okumaz SOCKS_SERVER, ancak birçok popüler program bunu sever ssh. Ayrıca, wgetSOCKS'i hiç desteklemiyor gibi görünüyor. Ancak kullanabilirsiniz curl. Bu konudaki cevabıma bilgi ekleyeceğim.
Yamalar

Ayrıca youtube-dlokumuyor SOCKS_SERVER, bunun http_proxyyerine okuyor . Ve çorap proxy'sini desteklemiyor. Umm ... Programların listesi ve desteklenen proxy ortamları çok yardımcı olabilir.
Xiè Jìléi

BXR.SU'da arama yaparsanız , SOCKS_SERVER'ı hiç desteklemiyor gibi görünüyor, kesinlikle OpenSSH değil . Kesinlikle sadece güvenlik / dante paketinden socksifyyardımcı program tarafından desteklenen bir seçenektir .
cnst

wget(1)paket sürümlerinde hemen hemen hiç böyle bir durum yoksa derleme 1.4.0 (1999 dolaylarında) beri SOCKS proxy destekleyebilir . --with-socks
bufh

10

Proxy zincirlerini deneyin .

İle kurulabilir apt-get. Ardından, şunlardan birinde bir yapılandırma dosyası oluşturmanız gerekir:

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

ve başka komutlar çağırabileceksiniz proxychains wget google.com- bağlantılar proxy üzerinden yapılacaktır. Bir defada veya rastgele sırada kullanılan birden çok proxy belirtebilirsiniz.

Örneğin:

➜  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.*.*

Bazı HTML etiketlerini ve IP'leri çıkardım, ancak görebildiğiniz gibi proxy kullanıldı ve IP adresi değişti.


3
Orijinal proxy zincirleri korunmadığından , bunun yerine proxychains-ng kullanabilirsiniz .
Denilson Sá Maia

1

wget çorapları desteklemez, kıvrımlar Yamaların söylediği gibi çalışır :

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

Eğer wget gerekiyorsa yükleyebilirsiniz tsocks.

Yükleme sudo aptitude install tsocksve kurulum:

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

Kullanımı:

tsocks wget /superuser//q/262956/66003

1
torsocks, tsocks'un güncellenmiş versiyonu gibi görünüyor: superuser.com/a/1000811/128124
Ciro Santilli :0 病毒 审查 六四 事件 法轮功
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.