No_proxy এনভায়রনমেন্ট ভেরিয়েবলের মধ্যে একটি নেটওয়ার্ক পরিসর সেট করুন


52

আমি প্রক্সি ব্যবহার করে একটি নেটওয়ার্কে আছি। আমি এখানে প্রচুর স্ক্রিপ্ট ব্যবহার করে মেশিন পেয়েছি এবং এইচটিটিপি-তে একে অপরকে অ্যাক্সেস করতে পারি।

  • নেটওয়ার্কটি 10.0.0.0/8।
  • আমার প্রক্সিটি 10.1.1.1:81 হয়, সুতরাং আমি এটি অনুসারে সেট আপ করেছি:

    export http_proxy=http://10.1.1.1:81/
  • প্রক্সি দিয়ে অ্যাক্সেস পেতে আমি আমার নিজস্ব পরিসরটি বাদ দিতে চাই। আমি উপলব্ধ যে কোনও সংমিশ্রণ চেষ্টা করেছি।

    export no_proxy='10.*'
    export no_proxy='10.*.*.*'
    export no_proxy='10.0.0.0/8'

উপরের কোনটিই কাজ করে না!

আমি এর সাথে পরীক্ষা করছি wgetএবং এটি সর্বদা প্রক্সিটি জিজ্ঞাসা করার চেষ্টা করে, যাই হোক না কেন আমি আইপি ঠিকানার সাথে সংযোগ করতে চাই।

  • যেহেতু প্রচুর স্ক্রিপ্টগুলি সমস্ত সিস্টেমে সর্বত্র থাকে তবে --no-proxyবিকল্পটি আসলে কোনও বিকল্প নয়। আমি এটি সিস্টেম প্রশস্ত করতে চাই।

1
এটি প্রায় 2019 এবং সিআইডিআরকে no_proxyপরিবেশের পরিবর্তনশীলে রাখার কোনও উপায় নেই ? লিনাস টরভাল্ডস কি রে !!
7_R3X

4
@ 7_R3X এটি জিএনইউ উইজেট তাই আমি আশা করি আপনি রিচার্ড স্টলম্যানকে অভিশাপ দিতে চেয়েছিলেন?
জাকুব বোচেনস্কি

উত্তর:


43

আপনি এটিকে ভুল উপায়ে দেখছেন। no_proxyএনভায়রনমেন্ট ভেরিয়েবল ডোমেইন সাফিক্স না উপসর্গ তালিকাবদ্ধ করে। ডকুমেন্টেশন থেকে :

no_proxy: এই ভেরিয়েবলটিতে ডোমেন এক্সটেনশানগুলির একটি কমা-বিচ্ছিন্ন তালিকা থাকা উচিত যাতে প্রক্সি ব্যবহার করা উচিত নয়

আইপিগুলির জন্য, আপনার কাছে দুটি বিকল্প রয়েছে:

1) প্রতিটি আইপি সম্পূর্ণরূপে যুক্ত করুন:

printf -v no_proxy '%s,' 10.1.{1..255}.{1..255};
export no_proxy="${no_proxy%,}";

2) প্রদত্ত URL টির হোস্টের জন্য আইপি সন্ধান করে এমন একটি মোড়ক স্ক্রিপ্ট (নাম দেওয়া হয়েছে ) এর নাম পরিবর্তন wgetকরুন wget-originalএবং লিখুন wgetএবং এটির প্রক্সি ব্যবহার করা উচিত কিনা তা নির্ধারণ করে:

#!/bin/bash
ip='';
for arg; do
   # parse arg; if it's a URL, determine the IP address
done;
if [[ "$ip" =~ ^10\.1\. ]]; then
   wget-original --no-proxy "$@";
else
   wget-original "$@";
fi;

অনেক অনেক ধন্যবাদ, আমি আমার উইজেটটি মোড়াতে যাচ্ছি (এবং আইপি অ্যাড্রেসের পরিবর্তে হোস্টনাম ব্যবহার করব)।
সাম্ক

9
No_proxy ঝুঁকি কর্মক্ষমতা সমস্যাগুলিতে 255 * 255 ঠিকানা থাকবে?
jtpereyda

@ ডাফ্রাজ্জামান: তা বেশ ভালই হতে পারে। সর্বোপরি, এটি প্রায় 800 কিলোবাইট বড়, যা পরিবেশের পরিবর্তনশীলের জন্য কিছুটা চরম। এটি আপনার পরিবেশ কতটা বড় হতে পারে তার উপরও নির্ভর করে। এই চরম ক্ষেত্রে, আমি মোড়ক পদ্ধতির প্রস্তাব করব।
janmoesen

4
প্রতিটি আইপি সম্পূর্ণরূপে যুক্ত করবেন না - এটি খুব দীর্ঘ হবে এবং আপনি ব্যাশে কোনও কমান্ড কার্যকর করতে সক্ষম হবেন না।
রস

5
কখনও এটি করবেন না, এটি কোনও আদেশের জন্য খুব দীর্ঘ কিছু উত্পন্ন করবে এবং আপনি যদি এটি /etc/environmentফাইলটিতে রাখেন তবে এটি আপনার সার্ভারটি ভেঙে দিতে পারে।
থমাস ডেকাউস

15

info wget বলেছেন:

 `no_proxy'
     This variable should contain a comma-separated list of domain
     extensions proxy should _not_ be used for.  For instance, if the
     value of `no_proxy' is `.mit.edu', proxy will not be used to
     retrieve documents from MIT.

সুতরাং ভেরিয়েবলের আইপি রেঞ্জ নয়, ডোমেনের একটি তালিকা থাকা উচিত । আপনার স্থানীয় মেশিনগুলির জন্য ফাইল (গুলি) এর জন্য স্থানীয় স্থানীয় উপকরণ স্থাপন করতে হবে ।/etc/hosts

এগুলি ছাড়াও, মনে রাখবেন যে পরিবেশের ভেরিয়েবল নির্ধারণ করা কোনও প্রক্সি ব্যবহার করবে বা ব্যবহৃত হবে না তার গ্যারান্টি দেয় না । এটি কেবলমাত্র এমন একটি তথ্য যা এটি সমর্থন করে এমন প্রোগ্রামগুলি দ্বারা ব্যবহৃত হতে পারে।


যদি উইজেট কার্লের মতো একইভাবে প্রয়োগ করে - এবং আমার সন্দেহ হয় যে এটি ঘটে - তবে এটির কোনও আইপি ঠিকানা বা ডোমেন নাম যদি উভয়কেই স্ট্রিং হিসাবে বিবেচনা করা হয় - তবে github.com/curl/curl/issues/1208 দেখুন
পাইওটর ডব্রোগস্ট

12

ঠিক কোনও সঠিক সমাধান নয় তবে এটি আপনার জন্য সমস্যার সমাধান করতে পারে। যদি আপনি ধরে নেন যে প্রক্সিটির বাইরে থেকে যে কোনও কিছু অ্যাক্সেস করা ডিএনএস-নাম ব্যবহার করবে এবং সরাসরি আইপি-ঠিকানা ব্যবহার করবে না, আপনি এটি সেট করতে পারেন:

export no_proxy=0,1,2,3,4,5,6,7,8,9

যতদূর আমি জানি, কোনও শীর্ষ ডোমেন কোনও সংখ্যার সাথে শেষ হয় না যদি এটি হয় তবে এটি অবশ্যই একটি আইপি ঠিকানা হবে।


7
এটি একটি খুব স্মার্ট সমাধান :) দুর্ভাগ্যক্রমে, এটি কোনও স্থানীয় আইপি-র জন্যই নয়, কোনও আইপি-র জন্য প্রক্সিটি বাইপাস করবে ... :( "নোপ্রোক্সি" ভেরিয়েবলে আইপি রেঞ্জ বা সিআইডিআর নির্দিষ্ট করার কোনও উপায় নেই (2018)?
সোরিন পোষ্টেলনিকু

ডেটা সেন্টার সার্ভারের জন্য এটি খুব চালাক কৌশল। পার্শ্ব প্রতিক্রিয়া আছে, কিন্তু গ্রহণযোগ্য।
নোট-জেজে

এটি আমার পক্ষে কার্যকর হয়নি .. @iconoclast সমাধানটি ব্যবহার করতে হয়েছিল
এরিক

12

জানমোসেনের সমাধানের উপর ভিত্তি করে এখানে একটি সামান্য সরল (এক-লাইন) পদ্ধতির উপায়।

export no_proxy=`echo 10.1.1.{1..255} | sed 's/ /,/g'`

কোরি রিংডাহলের ইনপুট এর ভিত্তিতে যা আরও উন্নত করা হয়েছে:

export no_proxy="`echo 10.1.1.{1..254},` 10.1.1.255"

সেড 10.1.{1..255}.{1..255}তার কোড বা খনিতে প্রসারণ থেকে পাস হওয়া সমস্ত আর্গুমেন্টের উপরে চাপ দেয় । সুতরাং আপনার যদি সত্যই 256 * 256 আইপি ঠিকানাগুলিতে প্রসারিত করতে হয় তবে আপনি হয়ত কোরি রিংডাহলের পদ্ধতির সাথে খাপ খাইয়ে নিতে সক্ষম হতে পারেন, তবে আপনার যদি কেবল 256 বা তার বেশি প্রয়োজন হয় তবে এগুলির উভয়টিই আপনার জন্য পুরোপুরি কাজ করা উচিত।

আমি এমন সংস্করণটি অনুমান করছি যেখানে 2 টি অক্টেটগুলি প্রসারিত হবে এর মতো দেখতে কিছুটা লাগবে:

export no_proxy="`echo 10.1.{1..255}.{1..254},` 10.1.255.255"

তবে আইটির্ম আমাকে যুক্তি তালিকার তালিকা দীর্ঘ হওয়া সম্পর্কে ত্রুটি দিচ্ছে, তাই এই কাজটি করার কোনও সমাধান আছে কিনা তা আমি নিশ্চিত করে বলতে পারি না ...


1
"export no_proxy=`echo 10.1.1.{1..254},`10.1.1.255"
করণ দিয়ে সেড

ভাল ... আমি কমাগুলির পরে ব্যবধানটিকে সামঞ্জস্য করার জন্য এটি কিছুটা টুইট করছি এবং আমি এটি যুক্ত করব।
আইকনোক্লাস্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.