प्रॉक्सी वातावरण में योनि का उपयोग कैसे करें?


92

मेरी कंपनी का नेटवर्क प्रॉक्सी का उपयोग कर रहा है। इसलिए जब मैं उपयोग करता हूं vagrant up, तो उसने मुझे 401 अनुमति त्रुटि दिखाई।

मैं योनि का उपयोग करने के लिए कुछ सेटिंग कैसे कर सकता हूं?


1
क्या आपने इसके लिए गुगली की है?
भूत उत्तर

क्षमा करें, मैंने नहीं किया। अब मुझे पता है vagrant plugin install vagrant-proxyconf
ithelloworld

लेकिन उसके बाद मैं स्थापित किया है और कॉन्फ़िग फ़ाइल करने के लिए अपने प्रॉक्सी यूआरएल setted, परिणाम same.401 था
ithelloworld

जवाबों:


103

प्रॉक्सीकोनफ स्थापित करें:

vagrant plugin install vagrant-proxyconf

अपने Vagrantfile को कॉन्फ़िगर करें:

config.proxy.http     = "http://yourproxy:8080"
config.proxy.https    = "http://yourproxy:8080"
config.proxy.no_proxy = "localhost,127.0.0.1"

4
config.env_proxy.*संस्करण 2.0 के रूप में हटा दिया गया है और इसके द्वारा प्रतिस्थापित किया गया है config.proxy.*
तोमलक

config.proxy.https = "https://yourproxy:8080"वह है httpsया httpदूसरी पंक्ति में
eldos

2
यह दोनों हो सकता है। मेरी कंपनी में http और https उसी प्रॉक्सी से गुजरते हैं जो http
एलेजांद्रो मोरेनो

30
ठीक है, जब मैं 'आवारा प्लगइन स्थापित करता हूं तो आवारा-प्रोक्सीकोनफ' यह मेरे प्रॉक्सी को हिट करता है?
मार्क ब्रॉडहर्स्ट

9
उल्लेख करने के लिए सिर्फ एक बात, यदि आप एक प्रॉक्सी के पीछे हैं, तो आप प्लगइन्स स्थापित नहीं कर सकते।
user3426711

87

यदि आपके प्रॉक्सी को प्रमाणीकरण की आवश्यकता है, तो अपने पासवर्ड को Vagrantfile में संग्रहीत करने के बजाय पर्यावरण चर को सेट करना बेहतर है। इसके अलावा आपके Vagrantfile का उपयोग अन्य लोग आसानी से कर सकते हैं जो प्रॉक्सी के पीछे नहीं हैं।

मैक / लिनक्स के लिए (बाश में)

export http_proxy="http://user:password@host:port"
export https_proxy="http://user:password@host:port"
vagrant plugin install vagrant-proxyconf

फिर

export VAGRANT_HTTP_PROXY=${http_proxy}
export VAGRANT_HTTPS_PROXY=${https_proxy}
export VAGRANT_NO_PROXY="127.0.0.1"
vagrant up

निर्यात के बजाय विंडोज उपयोग सेट के लिए।

set http_proxy=http://user:password@host:port
set https_proxy=https://user:password@host:port
vagrant plugin install vagrant-proxyconf

फिर

set VAGRANT_HTTP_PROXY=%http_proxy%
set VAGRANT_HTTPS_PROXY=%https_proxy%
set VAGRANT_NO_PROXY="127.0.0.1"
vagrant up

1
इसके अलावा, यदि आप इसे अपने वातावरण में नहीं रहना चाहते हैं, तो आप केवल एक कमांड पर उस पर्यावरण चर के लिए VAGRANT_HTTP_PROXY = " उपयोगकर्ता: पासवर्ड @ होस्ट: पोर्ट " आवारा (निर्यात या सेट के बिना) कर सकते हैं।
maccam912

4
महान समाधान के रूप में इसे Vagrantfile में प्रॉक्सी सेटिंग्स लगाने की आवश्यकता नहीं है, जहां वे स्पष्ट रूप से संबंधित नहीं हैं
emrass

7
विंडोज पॉवर्सशेल v6.0: $ env: http_proxy = " उपयोगकर्ता: पासवर्ड @ होस्ट: पोर्ट " $ env: https_proxy = " उपयोगकर्ता: पासवर्ड @ होस्ट: पोर्ट " आवारा प्लगइन आवारा- proxyconf
Xolani

1
Windows Git Bash का उपयोग करने वालों के लिए, Mac / Linux (Bash में) निर्देशों का उपयोग करें।: http_proxy = " उपयोगकर्ता: पासवर्ड @ होस्ट: पोर्ट "
Xolani

1
आप export VAGRANT_HTTPS_PROXY=${https_proxy}Mac / Linux निर्देशों में (?) भूल गए ।
टॉम हंड

53

प्रॉक्सीकोनफ स्थापित करने से यह हल हो जाएगा, लेकिन एक प्रॉक्सी के पीछे आप केवल कमांड का उपयोग करके एक प्लगइन स्थापित नहीं कर सकते vagrant plugin install, बुंडलर एक त्रुटि उठाएगा।

यदि आप सिस्टम जैसे यूनिक्स का उपयोग कर रहे हैं तो अपने वातावरण में अपना प्रॉक्सी सेट करें

export http_proxy=http://user:password@host:port

या यहां अधिक विस्तृत उत्तर प्राप्त करें: प्रॉक्सी के पीछे बंडल का उपयोग कैसे करें?

इसके बाद प्रोक्सीकोनफ की स्थापना करें


10
खिड़कियों पर मैंने वही किया जो आप सुझाते हैं लेकिन "निर्यात" के बजाय "सेट" का उपयोग करते हैं। Vagrantfile में कोई परिवर्तन किए बिना अपेक्षित रूप से कार्य किया गया।
डेनियल वॉट्रस जूल

28

ऑटो आपकी प्रॉक्सी सेटिंग्स का पता लगाता है और उन्हें आपके सभी वीएमएन में इंजेक्ट करता है

प्रॉक्सी प्लगइन स्थापित करें

vagrant plugin install vagrant-proxyconf

निजी / उपयोगकर्ता VagrantFile में इसे जोड़ें।

vi $HOME/.vagrant.d/Vagrantfile

Vagrant.configure("2") do |config|
  puts "proxyconf..."
  if Vagrant.has_plugin?("vagrant-proxyconf")
    puts "find proxyconf plugin !"
    if ENV["http_proxy"]
      puts "http_proxy: " + ENV["http_proxy"]
      config.proxy.http     = ENV["http_proxy"]
    end
    if ENV["https_proxy"]
      puts "https_proxy: " + ENV["https_proxy"]
      config.proxy.https    = ENV["https_proxy"]
    end
    if ENV["no_proxy"]
      config.proxy.no_proxy = ENV["no_proxy"]
    end
  end
end

अब अपने VM!


1
मुझे यह उत्तर पसंद है क्योंकि यह मौजूदा HTTP_PROXY env वैरिएबल का पुनः उपयोग करता है जिसे मैंने अपने होस्ट OS पर पहले ही घोषित कर दिया है। कट-पेस्ट से मौत !!
रिप्लेन जूल

आगे अच्छा रास्ता लगता है। प्रॉक्सी के बाहर जाने पर इसे अक्षम करने के बारे में क्या? पाया गया कि विभिन्न प्लग इन / एप्स को काम करने के लिए आवारा प्लगइन ने कई स्थानों पर गेस्ट लाइनक्स को मुक्का मारा। क्या अक्षम करने का एक सरल तरीका है? ऐसा भी कम से कम कमांड लाइन के ध्वज से फ़्लिप किया vagrant reloadजाएगा और एक सिंगल फिक्स होगा, और नए नेटवर्क से कनेक्ट होने पर स्वचालित रूप से / बाहर प्रॉक्सी सेटिंग्स का पता लगाने के लिए सबसे अच्छा हो सकता है, और या तो उपयोगकर्ता को सतर्क कर सकता है, या इसे मूल रूप से काम कर सकता है। tmatilai.github.io/vagrant-proxyconf ने अक्षमता का उल्लेख किया है, लेकिन निश्चित रूप से यह इन बिंदुओं को संबोधित नहीं करता है।
1933

समझने के लिए निश्चित नहीं है, लेकिन यह स्निपेट प्रॉक्सी प्लगइन सेटअप करने के लिए http_proxy env var के अस्तित्व का परीक्षण करता है। यदि आप उपयोग नहीं करते हैं * _proxy env यह 'सक्रिय नहीं होना चाहिए' (?)
quazardous

11

एक विंडोज होस्ट पर

CMD प्रॉम्प्ट खोलें;

set HTTP_PROXY=http://proxy.yourcorp.com:80
set HTTPS_PROXY=https://proxy.yourcorp.com:443

अपनी स्थिति के लिए जो भी उपयुक्त हो, उपरोक्त स्निपेट्स में पते और पोर्ट को बदलें। जब तक आप CMD प्रॉम्प्ट को बंद नहीं करेंगे तब तक ऊपर सेट रहेगा। यदि यह आपके लिए काम करता है, तो उन्हें अपने पर्यावरण चर में स्थायी रूप से जोड़ने पर विचार करें ताकि आपको हर बार नया सीएमपी प्रॉम्प्ट खोलने पर उन्हें सेट न करना पड़े।


9

खिड़कियों पर , आपको प्रॉक्सी सेटिंग्स निर्दिष्ट करने के लिए एक चर सेट करना होगा, योनि-प्रोक्सीकोनॉफ प्लगइन डाउनलोड करें: ({PROXY_SCHEME} (http: // या https: //), {PROXY_IP} और {PROXY_PORT} को सही मानों से बदलें)

set http_proxy={PROXY_SCHEME}{PROXY_IP}:{PROXY_PORT}
set https_proxy={PROXY_SCHEME}{PROXY_IP}:{PROXY_PORT}

उसके बाद, आप योनि फ़ाइल में अपनी प्रॉक्सी सेटिंग्स को हार्डकोड करने के लिए प्लगइन जोड़ सकते हैं

vagrant plugin install vagrant-proxyconf --plugin-source http://rubygems.org

और फिर आप पर्यावरण सेटिंग्स चर के खिलाफ स्वतंत्र होने के लिए अपने Vagrantfile में config.proxy.xxx सेटिंग्स प्रदान कर सकते हैं


एसएसएल प्रमाणपत्रों की पुष्टि करते समय त्रुटि से बचने के लिए बस एक अतिरिक्त पैरामीटर (https से http तक माणिक्य): vagrant plugin install vagrant-proxyconf --plugin-source http://rubygems.org src
boly38

यह पिछले वाले की तुलना में बेहतर समाधान है, क्योंकि इसे किसी और चीज की आवश्यकता नहीं है। अन्य समाधान (एक प्लगइन स्थापित करें) ऐसा करने के लिए पहले मुफ्त इंटरनेट का उपयोग सेट करने की आवश्यकता है।
राऊल लूना

5

आप प्लगइन proxyconf स्थापित करना चाहते हैं क्योंकि इससे अतिथि मशीनों के लिए प्रॉक्सी को कॉन्फ़िगर करना बहुत सीधा आगे Vrrantidile में हो जाएगा

config.proxy.http     = "http://proxy:8888"
config.proxy.https    = "http://proxy:8883"
config.proxy.no_proxy = "localhost,127.0.0.1"

हालाँकि, अभी भी कुछ चीजें हैं जो अभी भी गलत हो सकती हैं। सबसे पहले, आप शायद प्रॉक्सी के पीछे योनि प्लग इन स्थापित नहीं कर सकते। अगर ऐसा है तो आपको rubygems.org से स्रोत डाउनलोड करना चाहिए और स्रोत से इंस्टॉल करना चाहिए

$ vagrant plugin install vagrant-proxyconf --plugin-source file://fully/qualified/path/vagrant-proxyconf-1.x.0.gem

यदि आप उस समस्या को हल करते हैं, तो आपके पास NTLM प्रॉक्सी के पीछे होने का सौभाग्य हो सकता है, जिसका अर्थ है कि यदि आप अपनी अतिथि मशीनों पर * nix का उपयोग कर रहे हैं, तो आपके पास अभी भी कुछ रास्ता है, क्योंकि NTLM प्रमाणीकरण मूल रूप से समर्थित नहीं है, कई तरीके हैं। उस को हल करने में। मैंने CNTLM का उपयोग पहेली के tht भाग को हल करने के लिए किया है। यह मानक प्राधिकरण प्रोटोकॉल और NTLM के बीच गोंद के रूप में कार्य करता है

पूरी तरह से टहलने के लिए, एक कॉर्पोरेट प्रॉक्सी के पीछे योनि सेट करने के बारे में इस ब्लॉग प्रविष्टि पर एक नज़र डालें


मुझे यह जानने में दिलचस्पी होगी कि यह मतदान क्यों हुआ। यह बताता है कि समस्या को कैसे हल किया जाए और संभावित अन्य मुद्दों को कैसे हल किया जाए
Rune FS

क्या यह बहुत समान उत्तर पहले से ही कई बार प्रदान नहीं किया गया है? इसके अलावा, यह नहीं कहता है कि अगर आप कॉर्पोरेट प्रॉक्सी से आगे निकलते हैं तो योनि प्लगइन्स प्राप्त करने के लिए क्या करना चाहिए, यह सिर्फ यह बताता है कि यह एक समस्या होगी और फिर कहीं और लिंक करना होगा।
eis

लगता है अब ऐसा ही होना चाहिए vagrant plugin install file://fully/qualified/path/vagrant-proxyconf-1.x.0.gemस्रोत
मार्टिन

plugin-sourceएक स्थानीय GEM से स्थापित करने के लिए उपयोग करने के लिए बहुत अच्छा विचार है , लेकिन मैं इस काम को अभी तक विंडोज पर प्राप्त करने में कामयाब नहीं हुआ हूं। मुझे यकीन नहीं है कि अगर मेरा वाक्यविन्यास गलत है, जैसे file://C:/path1/path2/vagrant-proxyconf-1.5.2.gem? मैंने उस दृष्टिकोण की भी कोशिश की है जो @Martin ने ऊपर उल्लेख किया है, यह भी काम नहीं कर रहा है क्योंकि यह अभी भी उस मामले में माणिक से संपर्क करने की कोशिश कर रहा है
एडम बेली

2
यह मेरे लिए काम कर रहा है: vagrant plugin install C:/folder1/folder2/vagrant-proxyconf-1.5.2.gem --plugin-clean-sourcesवह कुंजी --plugin-clean-sourcesजिसके कारण यह रूबीज तक पहुंचने की कोशिश नहीं करता है
एडम बर्ले

2

प्रश्न वीएम प्रदाता का उल्लेख नहीं करता है लेकिन मेरे मामले में, मैं उसी वातावरण के तहत वर्चुअल बॉक्स का उपयोग करता हूं। वर्चुअल बॉक्स जीयूआई में एक विकल्प है जिसे मुझे काम करने के लिए सक्षम करने की आवश्यकता है। वर्चुअल बॉक्स एप्लिकेशन प्राथमिकताओं में स्थित है: फ़ाइल >> प्राथमिकताएँ ... >> प्रॉक्सी । एक बार जब मैंने इसे कॉन्फ़िगर किया, तो मैं समस्याओं के बिना काम करने में सक्षम था। आशा है कि यह टिप भी आप लोगों की मदद कर सकती है।


1

यदि आप वास्तव में चाहते हैं कि आपके प्रॉक्सी कॉन्फ़िगरेशन और प्लगइन इंस्टॉलेशन आपके Vagrantfile में हों, उदाहरण के लिए यदि आप अपने कॉरपोरेट वातावरण के लिए Vagrantfile बना रहे हैं और आपके पास उपयोगकर्ताओं के पर्यावरण चर का संपादन नहीं हो सकता है, तो यह मेरे लिए जवाब था:

ENV['http_proxy']  = 'http://proxyhost:proxyport'
ENV['https_proxy'] = 'http://proxyhost:proxyport'

# Plugin installation procedure from http://stackoverflow.com/a/28801317
required_plugins = %w(vagrant-proxyconf)

plugins_to_install = required_plugins.select { |plugin| not Vagrant.has_plugin? plugin }
if not plugins_to_install.empty?
  puts "Installing plugins: #{plugins_to_install.join(' ')}"
  if system "vagrant plugin install #{plugins_to_install.join(' ')}"
    exec "vagrant #{ARGV.join(' ')}"
  else
    abort "Installation of one or more plugins has failed. Aborting."
  end
end

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.proxy.http     = "#{ENV['http_proxy']}"
  config.proxy.https    = "#{ENV['https_proxy']}"
  config.proxy.no_proxy = "localhost,127.0.0.1"
  # and so on

(यदि आप ऐसा नहीं करते हैं, तो उन्हें पर्यावरण चर के रूप में सेट करें जैसे अन्य उत्तर कहते हैं और उन्हें config.proxy.http (s) निर्देशों में env से संदर्भित करते हैं।)


1

पासवर्ड में कुछ विशेष अक्षर प्रॉक्सी में समस्या पैदा करते हैं। या तो उनसे बच जाएं या पासवर्ड में विशेष वर्ण रखने से बचें।


1

PowerShell में, आप http_proxy और https_proxy वातावरण चर जैसे सेट कर सकते हैं :

$env:http_proxy="http://proxy:3128"
$env:https_proxy="http://proxy:3128"

0

MS Windows में यह हमारे लिए काम करता है:

set http_proxy=< proxy_url >
set https_proxy=< proxy_url >

और * nix के लिए बराबर:

export http_proxy=< proxy_url >
export https_proxy=< proxy_url >
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.