루팅되지 않은 Android에서 호스트 대 IP 매핑을 설정하는 방법은 무엇입니까? 싶습니다. 즉,

컴퓨터에서 웹 사이트를 운영하고 있는데 Nexus 7 태블릿에서 웹 사이트를 테스트하고 싶습니다. 즉, 로컬 WiFi LAN을 통해. IP 주소를 입력하면 연결되지만 이름이 지정된 가상 호스팅을 사용하고 있기 때문에 잘못된 웹 사이트가 표시됩니다.

그래서 내가하고 싶은 mysite.local것은 Nexus에서 Chrome / Firefox에 입력하고 해당 10.1.2.3주소 로 변환 하거나 로컬 IP 주소 로 변환 한 다음 10.1.2.3서버를 mysite.local호스트로 요청하여 요청하는 것입니다.

내 질문 : Android 4.x 태블릿에 /etc/hosts편집 할 수 있는 파일이나 동등한 파일이 있습니까? (태블릿 등을 뿌리지 않아도됩니다.)

내 Linux 컴퓨터에서 /etc/hosts다음에 항목을 추가하여이 작업을 수행합니다 .

10.1.2.3  mysite.local

(또는 Windows\System32\drivers\etc\hostsWindows 시스템에서도 동일하게 수행됩니다.)

BTW, 이것은 IP 주소 (예 : / etc / hosts equiv.?)에 대한 호스트 이름을 수동으로 설정하는 것과 중복 되지만 그 질문은 안드로이드 2.2에 대한 것이 었습니다. (대체 아이디어 중 하나는 로컬 라우터에 DNS를 구성하는 것이 제안되었지만 라우터가 로컬에서 DNS를 수행하지 않으므로 해당 옵션이 없다는 것을 알 수있는 한 내 DNS 서버를 설정하여이를 수행 할 수 있지만 그것은 큰 직업 해결책처럼 느껴집니다.)



답변

읽기 전용 파일 시스템에있는 호스트 파일은 Android에서 간단히 편집 할 수 없습니다 /system/etc/hosts.

대안은 다음과 같습니다.

  • 로컬 네트워크에서 DNSMasq와 같은 DNS 서버를 사용하여 “중앙”관리
  • 위에서 설명한대로 “root powers”를 사용하여 시스템 파일을 강제 편집하십시오.
  • 이를 사용하기 위해 Android 기기에 “로컬 DNS 서버”를 설치하십시오 (예 : DNS 서버)

답변

lzzy에서 언급했듯이 DNSMasq 서버를 사용 하여이를 달성 할 수 있습니다 . 그러나 Chrome은 자체 DNS 확인 프로세스를 사용하므로이 방법이 작동하지 않을 수 있습니다.

서버를 시작하려면 다음 명령을 사용하십시오.

sudo /usr/local/sbin/dnsmasq -d \
                             --no-hosts \
                             --no-resolv \
                             --conf-file=/dev/null \
                             --server=8.8.8.8 --server=8.8.4.4 \
                             --address=/example.com/192.168.0.101
  • sudo 포트 53에서 바인딩하는 데 필요
  • -d 포 그라운드에서 서버 시작
  • --no-hosts 로컬 호스트 파일을 사용하지 마십시오
  • --conf-file=/dev/null 구성 파일을 사용하지 마십시오
  • --server=8.8.8.8 --server=8.8.4.4 업스트림 서버 주소 (이 예에서는 Google DNS)
  • --address=/example.com/192.168.0.101무시할 호스트. 이 줄에 호스트를 추가해야합니다. 여러 호스트를 추가 할 수도 있습니다.

그런 다음 장치에서 DNS 서버를 변경하십시오. 이것은 DNS Changer 앱을 사용하여 쉽게 수행 할 수 있습니다 .

이 단계 후에이 호스트에 대한 요청이 사용자의 주소로 전송되어야합니다.


답변

호스트에서 IP 로의 매핑 을 정의하는 가장 간단한 방법 은 hosts파일입니다. 대부분 DNS 확인자가 해당 파일을 사용합니다 . 그러나 다른 답변에서 언급했듯이 /etc/hostsAndroid 기기를 루팅하지 않으면 편집 할 수 없습니다. 가상 호스팅으로 인해 IP 주소로 웹 서버에 액세스해도 작동하지 않습니다. 루팅되지 않은 기기에서 사용할 수있는 몇 가지 옵션은 다음과 같습니다.

  • hosts구성된 업스트림 DNS 서버에 쿼리하기 전에 DNS 트래픽을 가로 채고 사용자 지정 파일을 찾는 VPN 앱을 사용하십시오 .
  • DNS 서버를 실행하십시오. 특정 이름에 대해 사전 정의 된 IP 주소를 반환하도록 구성 할 수 있습니다. 예를 들어 사용하는 경우 dnsmasq, 추가 address=/mysite.local/10.1.2.3“dnsmasq.conf” . 또는에 dnscrypt-proxy추가 mysite.local 10.1.2.3“클로킹 – 규칙 .txt” .
  • 프록시 또는 VPN을 사용하도록 전화기를 구성한 다음 프록시 서버의 파일에 항목 10.1.2.3 mysite.local을 추가하거나 VPN hosts서버에서 로컬 DNS 서버를 실행하십시오.
  • 부트 로더를 잠금 해제 할 수 hosts있으면 사용자 지정 복구에서 파일을 편집 하십시오.

자세한 내용은 루팅하지 않고 항상 도메인 이름을 고정 IP로 확인하는 방법을 참조하십시오.


관련 :


답변