เหตุใดเบราว์เซอร์จึงไม่สนใจ / etc / hosts ที่อยู่หลังพร็อกซี SOCKS


6

MacBook ในออฟฟิศของฉันไม่มีอินเทอร์เน็ต ดังนั้นฉันจึงตั้งค่า SOCKS Proxy ทันทีผ่าน SSH เพื่อท่องเว็บ

อย่างไรก็ตามเมื่อฉันพยายามเพิ่มรายการ /etc/hostsเบราว์เซอร์ไม่ไปที่ไซต์ที่ฉันคาดไว้ ...

WIFI ของ MacBook ของฉันปิดและเชื่อมต่อกับ LAN ของ บริษัท :

 IP address:  192.168.8.250
 Subnet mask: 255.255.255.0
 Router:      192.168.8.1
 DNS server:  8.8.8.8

เป็นค่าเริ่มต้นไม่มีการเข้าถึงอินเทอร์เน็ต

มีกล่องพัฒนา Linux (192.168.12.128) ซึ่งสามารถเข้าถึงอินเทอร์เน็ตได้ดังนั้นฉันจึงตั้งค่า SOCKS proxy ทันทีเพื่อเข้าใช้งานอินเทอร์เน็ตสำหรับ MacBook ของฉัน:

 ssh -fND localhost:30000 ohho@192.168.12.128

จากนั้นในการตั้งค่าระบบของ MacBook & gt; เครือข่าย & gt; ผู้รับมอบฉันทะ

 (Enable) SOCKS Proxy
 SOCKS Proxy sever: 127.0.0.1:30000
 Bypass proxy settings for these Hosts & Domains:
   *.local, 169.254/16, 127.0.0.1

ตอนนี้ฉันสามารถท่องเว็บได้ดีมาก

สำหรับการพัฒนาฉันตั้งค่ารายการไม่กี่รายการ /etc/hosts สำหรับโฮสต์เสมือน:

 127.0.0.1 air.company.com

ใน bash:

 $ ping air.company.com
 PING air.ohho.es (127.0.0.1): 56 data bytes
 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.046 ms

 $ curl air.company.com
 <html>OK</html>

มันดูดีและ curl ส่งคืนเนื้อหาของ index.html อย่างดี

อย่างไรก็ตามหากฉันพยายามเปิดเว็บไซต์: http://air.company.com ในเบราว์เซอร์ (Safari / Chrome / Firefox) ไม่มีสิ่งใดที่ให้ผลลัพธ์เช่น curl ไม่ Chrome ให้ข้อผิดพลาด:

หน้าเว็บนี้ไม่พร้อมใช้งานหน้าเว็บที่ http://air.company.com/ อาจหยุดชั่วคราวหรืออาจถูกย้ายไปที่ใหม่อย่างถาวร   ที่อยู่เว็บ ข้อผิดพลาด 120 (สุทธิ :: ERR_SOCKS_CONNECTION_FAILED): ไม่ทราบ   ความผิดพลาด

ถ้าฉันเพิ่มรายการอื่นใน /etc/hosts:

 127.0.0.1 www.microsoft.com

ใน bash:

 $ ping www.microsoft.com
 PING www.microsoft.com (127.0.0.1): 56 data bytes
 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.047 ms
 64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.128 ms
 ^C
 --- www.microsoft.com ping statistics ---
 2 packets transmitted, 2 packets received, 0.0% packet loss
 round-trip min/avg/max/stddev = 0.047/0.087/0.128/0.041 ms

 $ curl www.microsoft.com
 <html>OK</html>

อย่างไรก็ตามเบราว์เซอร์ส่งคืนเนื้อหาจากเว็บเซิร์ฟเวอร์ของไซต์ Microsoft จริงแทนที่จะเป็นเนื้อหาจาก MacBook ของฉัน (127.0.01) ทำไม?

ป.ล.

หากฉันปิดใช้งานพร็อกซี SOCKS เบราว์เซอร์จะส่งคืนเนื้อหาจาก 127.0.0.1 อย่างถูกต้อง

หากฉันตัดการเชื่อมต่อสาย LAN เบราว์เซอร์จะส่งคืนเนื้อหาจาก 127.0.0.1 อย่างถูกต้อง


เจ้าหน้าที่รักษาความปลอดภัยข้อมูลในตัวฉันต้องถามว่ามีสำนักงานของคุณที่ไม่มีบริการอินเทอร์เน็ตสาธารณะมิสเตอร์สโนว์เดนหรือไม่? ;)
8None1

ถ้าคุณไม่ใส่ 127.0.0.1 ลงในบายพาสล่ะ? ยังคงเป็นโลคัลโฮสต์และไม่ควรใช้พรอกซีอยู่ดี อาจเป็นฟังก์ชันบายพาสที่เพิ่มจำนวนเบราว์เซอร์
8None1

คำตอบ:


6

เบราว์เซอร์ของคุณกำลังขอพร็อกซี SOCKS สำหรับเว็บไซต์ซึ่งไม่ได้เชื่อมต่อโดยตรง ดังนั้นการวางที่อยู่ IP ในรายการข้อยกเว้นไม่ทำงานเนื่องจากคอมพิวเตอร์ของคุณไม่ได้ทำการค้นหา air.company.com เป็น 127.0.0.1 พร็อกซี SOCKS คือ

เพื่อหลีกเลี่ยงปัญหานี้ให้ใส่ชื่อโดเมนแบบเต็มของสิ่งที่คุณกำลังเข้าถึงในเครื่องในรายการข้อยกเว้นในการตั้งค่าระบบ & gt; เครือข่าย & gt; ผู้รับมอบฉันทะ

ดังนั้นสำหรับ air.company.com คุณจะเห็นรายการข้อยกเว้น (จากตัวอย่างด้านบน) ของ:

  *.local, 169.254/16, 127.0.0.1, air.company.com

คอมพิวเตอร์ของคุณจะเชื่อมต่อกับ air.company.com โดยตรงและใช้ประโยชน์จาก / etc / hosts

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