임시 DNS가 로컬 IP로 확인됩니다(임시 http 리디렉션용).

임시 DNS가 로컬 IP로 확인됩니다(임시 http 리디렉션용).

이것이 나의 높은 수준의 목표입니다.

저는 무선 클라이언트용 Wi-Fi 핫스팟 역할을 하는 소형 장치에서 Linux를 실행하고 있습니다. 또한 구성을 위해 웹 서버(nginx)를 실행하고 구성이 정확할 때까지 Wi-Fi 클라이언트의 모든 HTML 요청을 이 로컬 웹 서버로 리디렉션하고 싶습니다. 올바르게 구성되면 리디렉션을 중지하고 트래픽 라우팅으로 돌아가야 합니다.

나는 iptables, ip Route 등을 비교적 처음 접했기 때문에 내 접근 방식이 올바른지 확실하지 않습니다.

ATM 방금 "구성 모드"에서 iptables를 사용하여 http 트래픽을 로컬 웹 서버로 리디렉션했습니다(그리고 일반 모드로 돌아갈 때 이러한 규칙을 지웠습니다).

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.42.1
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 192.168.42.1
iptables -t nat -A PREROUTING -p tcp --dport 5000 -j DNAT --to-destination 192.168.42.1

(내 구성 소프트웨어가 구성 웹 페이지용 웹소켓 서버를 실행하기 때문에 포트 5000이 필요합니다)

이 방법은 클라이언트가 DNS 요청을 해결할 수 있는 한(또는 하드 코딩된 IP 주소를 사용하는 한) 잘 작동합니다. 내 DHCP 서버는 Wi-Fi 클라이언트의 DNS 서버로 기본 8.8.8.8/8.8.4.4를 설정하지만 8.8.8.8에 연결할 수 없는 경우(장치가 올바르게 구성되지 않은 경우 발생할 수 있음) 클라이언트가 내 구성 웹 페이지에 액세스하지 않습니다. , Wi-Fi 클라이언트가 먼저 IP 주소를 확인할 수 없기 때문입니다.

그래서 내 생각은 "일반 모드"에서는 DNS 요청만 전달하지만 "구성 모드"에서는 로컬 웹 서버 IP에 대한 모든 요청을 해결하는 DNS 서버를 내 장치에 설정하는 것입니다.

내 질문은: 어떤 소프트웨어(dnsmasq?)를 사용할 것이며, DNS 요청 전달과 로컬 서버에 대한 요청 해결 사이에서 (런타임 시) 전환할 수 있도록 어떻게 설정합니까?

아니면 접근 방식이 잘못되어 일종의 프록시나 다른 방법을 사용하여 리디렉션해야 합니까? 로컬 IP에 대한 요청을 일시적으로 해결하는 DNS 서버에서 발견한 한 가지 단점은 클라이언트가 결과를 캐시할 수 있으므로 구성이 완료된 후에도 여전히 로컬 웹 서버에 접속한다는 것입니다.

관련 정보