วิธีเชื่อมต่ออินเทอร์เน็ตจากเทอร์มินัลเมื่อใช้พร็อกซีที่มีการตรวจสอบสิทธิ์


14

ฉันต้องใช้พร็อกซีเซิร์ฟเวอร์เพื่อเชื่อมต่ออินเทอร์เน็ต ฉันได้ตั้งค่าพรอกซีทั้งหมดในการตั้งค่าพร็อกซีระบบของฉัน ตอนนี้ฉันสามารถเชื่อมต่ออินเทอร์เน็ตโดยใช้เบราว์เซอร์และแอปพลิเคชันของฉัน

แต่ฉันไม่สามารถเชื่อมต่ออินเทอร์เน็ตจากเทอร์มินัลของฉัน

ฉันเหนื่อย

export http_proxy="http://username:password@proxyserver:port/" 

แต่แอปพลิเคชั่นเทอร์มินัลยังไม่สามารถเชื่อมต่ออินเทอร์เน็ตได้


1
คุณใช้คำสั่งใดใน Terminal เพื่อ "เชื่อมต่ออินเทอร์เน็ต" หรือคุณเห็นว่าคุณไม่สามารถเชื่อมต่อได้อย่างไร
nohillside

1
พร็อกซีเซิร์ฟเวอร์ (ที่ไม่มี) ที่คุณกำลังพูดถึงอยู่นี้กำลังถ่ายทอดการwebเชื่อมโยงของคุณไม่ใช่การเชื่อมต่ออินเทอร์เน็ตทั้งหมดของคุณ webการเชื่อมต่อกำลังใช้พอร์ต 80, 443 …. การเชื่อมต่ออินเทอร์เน็ตอาจใช้พอร์ตที่เหลือทั้งหมดของชุด 65536 ตัวอย่างเช่นการsshเชื่อมต่อจะใช้พอร์ต 22 ซึ่งจะไม่ผ่านhttpพร็อกซีเซิร์ฟเวอร์ของคุณ ดังนั้นคำถามของ Patrix ที่จะช่วยให้คุณได้คำตอบที่ดีขึ้น
และ

@patrix ping google.com
TLE

@TLE Ping เป็นข้อยกเว้นของกฎและจริง ๆ แล้วไม่ได้ใช้พรอกซีเลยแม้ว่าhttp_proxyจะมีการตั้งค่าไว้ก็ตาม Ping คาดว่าจะมีการเชื่อมต่อโดยตรงและในหลายกรณีเมื่อมีการใช้พรอกซี ping จะล้มเหลวแม้ว่าพร็อกซีจะยังคงเชื่อมต่อได้สำเร็จ
BinaryMisfit

3
ลองcurl -o /dev/null www.google.comแทนping
nohillside

คำตอบ:


12

เทอร์มินัลไม่ใช้การตั้งค่าพร็อกซีที่กำหนดค่าในบานหน้าต่างการตั้งค่าเครือข่ายเนื่องจากไม่ได้ทำการเชื่อมต่อใด ๆ เทอร์มินัลเพียงแค่ให้คุณยิงคำสั่งซึ่งจะใช้เครือข่ายในรูปแบบที่แตกต่างกัน

เมื่อตั้งค่าตัวแปรของคุณhttp_proxyและhttps_proxyสภาพแวดล้อมไม่ควรรวมhttp:หรือhttps:คำนำหน้า

ดังนั้นตัวแปรสภาพแวดล้อมในกรณีของคุณควรอ่าน:

http_proxy=username:password@proxyserver:port

หมายเหตุ: โปรแกรมเก่าหลายโปรแกรมมีปัญหาในการเชื่อมต่อผ่านพร็อกซีเซิร์ฟเวอร์ซึ่งต้องมีการตรวจสอบสิทธิ์ก่อนทำการเชื่อมต่อ

เคล็ดลับเพิ่มเติม:

เนื่องจากโครงสร้างพื้นฐานของเราเราพบว่ามันง่ายกว่าที่จะให้ผู้ใช้เรียกใช้SquidManในพื้นที่และกำหนดค่าให้เชื่อมต่อกับพร็อกซีหลักของเรา สิ่งนี้ทำให้เครื่องท้องถิ่นทำหน้าที่เป็นพร็อกซีโดยตรงและกำจัดปัญหาการตรวจสอบสิทธิ์จำนวนมาก ฯลฯ เมื่อใช้พร็อกซีเซิร์ฟเวอร์บนเครื่อง Mac โดยเฉพาะในสภาพแวดล้อมแบบผสมและ AD

ในกรณีที่ใช้วิธีนี้ของเราhttp_proxyและhttps_proxyจะเป็น:

http_proxy=localhost:3128

คุณหมายถึงฉันต้องเขียน export http_proxy = "ชื่อผู้ใช้: รหัสผ่าน @ proxyserver: พอร์ต"
TLE

@TLE ถูกต้อง เทอร์มินัลไม่จำเป็นต้องรู้โปรโตคอลเพราะมันรู้แล้วว่ามันคือการเชื่อมต่อ HTTP
BinaryMisfit

แต่ฉันก็ยังไม่สามารถเชื่อมต่ออินเทอร์เน็ตได้
TLE

@TLE จากนั้นปัญหาน่าจะเกิดกับการตรวจสอบ ลองตั้งค่าพร็อกซีโดยไม่รวมชื่อผู้ใช้และรหัสผ่านซึ่งหมายความว่าคุณจะได้รับแจ้งข้อมูลเมื่อพยายามเชื่อมต่อ โดยปกติจะระบุว่าพร็อกซีนั้นไม่รองรับการเชื่อมต่อจากเทอร์มินัล เราพบปัญหาที่คล้ายกันภายในซึ่งเป็นสาเหตุที่ฉันแนะนำวิธีแก้ปัญหา SquidMan
BinaryMisfit

ยังไม่ทำงาน ??
TLE

0

ฉันเพิ่งพบปัญหานี้และในการค้นหาพบโพสต์นี้ การเพิ่มบางจุดที่ประสบความสำเร็จสำหรับฉัน (สำหรับ Mac โดยใช้ Terminal):

export http_proxy=http://username:password@proxyserver:port
export HTTP_PROXY=${http_proxy}

และสำหรับ https:

export https_proxy=https://username:password@proxyserver:port
export HTTPS_PROXY=${https_proxy}

จากนี้ฉันสามารถใช้gitและbrewไม่มีปัญหาใด ๆ (และตรวจสอบผ่านพร็อกซี)


-1

คุณสามารถใช้คำสั่งต่อไปนี้ในหน้าต่างเทอร์มินัล

networksetup -setairportnetwork $Interface $ssID $Password

นี่ $Interfaceคือตัวระบุลักษณะ "enX" สำหรับการ์ด AirPort ของคุณ (ปกติคือ en1 แต่เป็น en0 บน MacBook Airs และ en2 บน Mac Pros และสามารถเปลี่ยนแปลงได้ด้วยเหตุผลอื่นเช่นกัน)

$ssIDเป็นชื่อเครือข่ายของคุณเช่น "Simon's SSID" ใส่ไว้ในเครื่องหมายคำพูดหากมีช่องว่าง

$Password คือรหัสผ่าน WEP, WPA-PSK หรือ WPA2-PSK ของคุณ


1
การกำหนดค่าเครือข่ายนี้ไม่อนุญาตให้เทอร์มินัลเชื่อมต่อผ่านพร็อกซี
BinaryMisfit
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.