หากฉันใช้ SSH สำหรับพร็อกซี SOCKS การเชื่อมต่อ DNS จะผ่านได้หรือไม่


14

ฉันกำลังใช้ssh -D 8080 my serverเพื่อสร้าง SOCKS proxy ฉันจะกำหนดค่า OS X ให้ใช้localhost:8080เป็นพร็อกซี SOCKS ฉันใช้สิ่งนี้เพื่อเข้าถึงอินเทอร์เน็ตโดยไม่ถูกตรวจสอบ

ฉันใช้เซิร์ฟเวอร์ DNS ของ Google (8.8.8.8) แต่ฉันจะแน่ใจได้อย่างไรว่าคำสั่ง DNS กำลังผ่านอุโมงค์ SSH


1
"โดยไม่ถูกตรวจสอบ" เป็นภาพลวงตา
machineaddict

คำตอบ:


22

ฉันรู้ว่าคำตอบนั้นช้าไปหน่อย แต่สำหรับการอ้างอิงและสำหรับผู้ที่ยังคงมองหาคำตอบอยู่

ตั้งค่าnetwork.proxy.socks_remote_dnsคุณสมบัติในการกำหนดค่าfirefox (พิมพ์ about: config ในแถบที่อยู่) เป็น TRUE (คลิกสองครั้งที่คุณสมบัติเพื่อสลับค่า) เพื่อเปิดใช้งานการค้นหา dns ผ่านพร็อกซีถุงเท้าของคุณ / ระยะไกล

PS: ฉันไม่แน่ใจเกี่ยวกับเบราว์เซอร์อื่น :(


1
สำหรับผู้ที่ชื่นชอบ UI นี่คือในการตั้งค่า→ขั้นสูง→แท็บเครือข่าย→ปุ่มการตั้งค่า (สำหรับ "การเชื่อมต่อ") → "พร็อกซี DNS เมื่อใช้ SOCKS v5"
jwd

ฉันพบว่า DNS ไม่ผ่านพร็อกซีสำหรับ HTTP แต่ใช้งานได้กับ HTTPS กรณีนี้เป็นเช่นไร? มันถูกออกแบบมาหรือไม่? (ฉันใช้ Firefox)
Eugene D. Gubenkov

8

หากเป็นพร็อกซีSOCKS 5และโปรแกรมไคลเอนต์รองรับ DNS จะผ่านพร็อกซี เบราว์เซอร์ส่วนใหญ่รองรับ DNS ผ่านพร็อกซีถุงเท้า 5 แต่อาจต้องการการกำหนดค่าพิเศษเพื่อดำเนินการ

ถ้าเป้าหมายของคุณคือความเป็นส่วนตัวบนเว็บที่คุณควรใช้สิ่งที่ต้องการPrivoxy Privoxy จะทำความสะอาดส่วนหัวของคำขอเว็บของคุณและตรวจสอบการรับส่งข้อมูลทั้งหมดรวมถึง DNS ผ่านพร็อกซีถุงเท้า 5 เรียกใช้privoxyในพื้นที่และคุณสามารถใช้sshเพื่ออุโมงค์การจราจรถุงเท้า 5


2

คุณไม่สามารถทำได้นอกกรอบเนื่องจากอุโมงค์ SSH ใช้สำหรับการเชื่อมต่อ TCP / IP เท่านั้น - การรับส่งข้อมูล UDP จะไม่สามารถข้ามอุโมงค์นั้นได้โดยไม่ต้องตั้งค่าพิเศษ โดยทั่วไปคุณต้องสร้าง FIFO ที่จะทำกลอุบายบางอย่างกับ netcat ตามที่อธิบายไว้ที่นี่ คุณสามารถใช้ DNS ของ google ได้จากกล่องไกลสุดแล้ว


1

ดังที่กล่าวไว้ที่นั่นการค้นหาทั่วทั้งระบบของคุณ จะไม่ถูกปรับ

หากคุณต้องการโซลูชันที่ใช้ SSH คุณสามารถรับแรงบันดาลใจจาก ที่นี่หรือใช้ SSHuttle (เช่นที่กล่าวถึง ที่นี่ ) มีโปรแกรมแก้ไขเพื่อส่งต่อการสืบค้น DNS ได้อย่างง่ายดาย

YMMV แต่ฉันประสบความสำเร็จดังต่อไปนี้:

#!/bin/bash
# Taken from http://stackoverflow.com/questions/4594319/shell-replace-cr-lf-by-comma
DNSSERVERS=$(nmcli d show | grep DNS | awk '{print $2}' | sed -e 'H;${x;s/\n/,/g;s/^,//;p;};d' )
sshuttle  \
    -vvv                \
     --dns-hosts ${DNSSERVERS}   \
    -r server   \
    254.254.254.254/32

0

ตามที่ pfo กล่าวว่าช่องสัญญาณ SSH นั้นมีไว้สำหรับทราฟฟิก TCP เท่านั้นและแอปพลิเคชันจะต้องตระหนักถึงพร็อกซี SOCKS

หากคุณต้องการให้ทุกอย่างถูกอุโมงค์คุณจำเป็นต้องมี VPN ที่เหมาะสม มีลักษณะที่บางอย่างเช่นOpenVPN


0

ขึ้นอยู่กับใบสมัครของคุณ ตัวอย่างเช่น Firefox ส่งชื่อโฮสต์ไปยังพร็อกซี SOCKS โดยไม่ต้องแก้ไข ในกรณีนี้คุณไม่ต้องทำอะไรเพื่อความเป็นส่วนตัว คุณสามารถยืนยันได้โดย wireshark

PS สมมติว่าคุณใช้พร็อกซี SOCKS5 SOCKS4 ไม่รองรับชื่อโฮสต์

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