Go: x / net / proxy: ينتج عن غير SOCKS ALL_PROXY وكيل: مخطط غير معروف: http

تم إنشاؤها على ١٦ أغسطس ٢٠١٦  ·  3تعليقات  ·  مصدر: golang/go

إذا تم تعيين متغير البيئة ALL_PROXY على عنوان غير SOCKS ، فإنه ينتج عنه proxy: unknown scheme: http عندما يجب أن يتجاهله بدلاً من ذلك.

  1. ما هو إصدار Go الذي تستخدمه ( go version
    go1.6.3 عبر عامل إرساء
  2. ما هو نظام التشغيل وبنية المعالج الذي تستخدمه ( go env
    نوافذ / amd64
  3. ماذا فعلت؟
    احصل على مجموعة متغيرات بيئة http ALL_PROXY وحاول تشغيل Docker Toolbox ، على سبيل المثال docker run hello-world
  4. ماذا كنت تتوقع أن ترى؟
    يجب أن يعمل Docker بشكل جيد ، يجب أن يتجاهل Go متغير بيئة غير SOCKS ALL_PROXY
  5. ماذا رأيت بدلا من ذلك؟
    لا يعمل Docker لأنه لا يتم تجاهل متغير البيئة غير SOCKS ALL_PROXY . يمكن إرجاع الخطأ إلى https://github.com/golang/net/blob/master/proxy/proxy.go#L93.

الحل: قم بتشغيل unset ALL_PROXY عندما تحصل على خطأ.

التعليق الأكثر فائدة

لا أصدق أن هذا لا يزال مفتوحًا.

ال 3 كومينتر

لست متأكدًا بنسبة 100٪ ، ولكن هل أنت متأكد من أن تعيين ALL_PROXY على بروتوكول http أو https أمر منطقي؟ قد تكون هناك حركة مرور غير HTTP تريد المرور عبر الوكيل.

لا أصدق أن هذا لا يزال مفتوحًا.

nathanleclaire أعتقد أنه يجب عليك تسجيل Dialer اكتب بنفسك: https://godoc.org/golang.org/x/net/proxy#RegisterDialerType

اقرأ المزيد هنا وهنا:
http://blog.ralch.com/articles/network-programming-and-proxies-in-golang/
https://gist.github.com/jim3ma/3750675f141669ac4702bc9deaf31c6b

لكنني لست متأكدًا أيضًا وأقوم بمحاولة إعداد وكيل لمتصلي TCP. تعد تعديلات عميل HTTP سهلة للغاية:
http.DefaultTransport = &http.Transport{Proxy: http.ProxyURL(proxyURL)}

لكن استخدام net.Dial و net.DialTimeout أقل وضوحًا مع نظام وكيل غير SOCKS5.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات