ssh -D 8080 my server
SOCKS 프록시를 만드는 데 사용 하고 있습니다. 그런 다음 localhost:8080
SOCKS 프록시 로 사용하도록 OS X를 구성하고 있습니다 . 모니터링하지 않고 인터넷에 액세스하기 위해 이것을 사용하고 있습니다.
Google의 DNS 서버 (8.8.8.8)를 사용하고 있지만 DNS 쿼리가 SSH 터널을 통과하도록하려면 어떻게해야합니까?
답변
답이 늦다는 것을 알고 있지만 참조 및 답을 찾고있는 사람들에게는
설정 network.proxy.socks_remote_dns
파이어 폭스 설정에서 속성을 (유형에 대해 : 주소 표시 줄에서 설정) TRUE로 로컬 / 원격 SOCKS5 프록시를 통해 DNS 조회를 활성화하는 (단지 두 배의 값을 전환 할 속성을 클릭).
추신 : 다른 브라우저에 대해서는 잘 모르겠습니다 🙁
답변
그것은 만약 SOCKS 5 프록시 클라이언트 프로그램 지원을, DNS 프록시를 통해 이동합니다. 대부분의 브라우저는 Socks 5 프록시를 통해 DNS를 지원하지만 특별한 구성이 필요할 수 있습니다.
당신의 목표가 웹상의 프라이버시라면, 정말로 privoxy 와 같은 것을 사용해야합니다 . Privoxy는 웹 요청의 헤더를 정리하고 DNS를 포함한 모든 트래픽이 Socks 5 프록시를 통과하도록합니다. privoxy
로컬로 실행 ssh
하면 Socks 5 트래픽을 터널링하는 데 사용할 수 있습니다 .
답변
SSH 터널은 TCP / IP 연결 전용이므로 즉시 사용할 수 없습니다. 특별한 설정 없이는 UDP 트래픽이 해당 터널을 통과 할 수 없습니다. 기본적으로 여기에 설명 된대로 netcat을 사용하여 까다로운 작업을 수행하려면 fifo를 만들어야합니다 . 그러면 파 엔드 박스에서 Google의 DNS를 사용할 수 있습니다.
답변
언급 한 바와 같이 저기 , 당신의
시스템 전체 조회를 터널링되지 않습니다 .
SSH 기반 솔루션을 원한다면 여기 에서 영감을 얻
거나 SSHuttle을 사용할 수
있습니다 (예 :
here ). 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
답변
pfo가 말했듯이 SSH 터널은 TCP 트래픽 전용이며 응용 프로그램은 SOCKS 프록시를 알고 있어야합니다.
모든 것을 터널링하려면 적절한 VPN이 필요합니다. OpenVPN 과 같은 것을 살펴보십시오 .
답변
응용 프로그램에 따라 다릅니다. 예를 들어 Firefox는 호스트 이름을 확인하지 않고 SOCKS 프록시로 보냅니다. 이 경우 개인 정보 보호를 위해 아무것도하지 않아도됩니다. wireshark로 확인할 수 있습니다.
추신. SOCKS5 프록시를 사용한다고 가정하십시오. SOCKS4는 호스트 이름을 지원하지 않습니다.