iptables를 사용하여 DNS(tcp/udp) 요청을 불투명 모드(3128)에서 Squid 프록시로 리디렉션할 수 있나요? (오징어대리인이 이를 이해하고 처리해 줄 것인가?)
tcp 53을 리디렉션하는 규칙 예(다른 유사한 규칙일 수도 있음):
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -i eth1 -p tcp --dport 53 -j REDIRECT --to-port 3128
udp 53을 리디렉션하는 규칙 예(다른 유사한 규칙일 수도 있음):
참고: Squid는 높은 UDP 포트에서 "수신"합니다. 예: 36352, 명령: netstat -trunp grep squid |
인용하다:http://linuxplayer.org/2012/02/why-squid-listen-on-high-udp-port-number
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -i eth1 -p udp --dport 53 -j REDIRECT --to-port 36352
PD: 이것은 DNS 관련 Squid 지침의 예일 뿐입니다. 나는 그것이 내 목적에 적합하다고 말하는 것이 아닙니다.
positive_dns_ttl
negative_dns_ttl
dns_nameservers 8.8.8.8 8.8.4.4
udp_incoming_address
이것이 불가능할 경우 대안을 받아들입니다.
답변1
Squid는 DNS 프록시가 아니며 DNS 요청을 수락하지 않습니다.
강조표시한 지시문에 대한 문서를 보면 이러한 지시문은 내부 설정을 위한 것이며 외부 클라이언트 액세스와는 아무런 관련이 없음이 분명합니다.
마지막 문장/질문에 대한 명확한 응답으로, Squid는 DNS 트래픽을 프록시하지 않기 때문에 DNS 트래픽을 Squid 프록시로 보내는 다른 방법은 없습니다.
추가 읽기
나는 이것에 대해 많이 생각했고 실제로 해결하려는 문제가 무엇인지 추측하려고 노력했습니다. Squid가 DNS 요청을 프록시하지는 않지만 모든 표준 DNS 서버는 프록시를 수행한다는 사실을 알고 계셨습니까? 제가 인용할 수 있는 예로는 Dnsmasq와 Bind가 있습니다.