Bagaimana cara mengatur host ke pemetaan IP pada Android tanpa akar?

10

Saya memiliki situs web yang berjalan di komputer saya, dan saya ingin mengujinya dari tablet Nexus 7 saya. Yaitu melalui LAN WiFi lokal. Jika saya mengetik alamat IP yang terhubung, tetapi menunjukkan situs web yang salah, karena saya menggunakan hosting virtual bernama.

Jadi, yang ingin saya lakukan adalah dapat mengetik mysite.localdi Chrome / Firefox pada Nexus, minta mereka mengonversinya menjadi 10.1.2.3(atau apa pun alamat IP lokal), lalu panggil 10.1.2.3server yang memberi mysite.localsebagai Host untuk meminta.

Pertanyaan Saya: Apakah tablet Android 4.x memiliki /etc/hostsfile, atau yang setara, yang dapat saya edit? (Tanpa harus me-rooting tablet, atau semacamnya.)

Di komputer Linux saya, saya melakukan ini dengan menambahkan entri di /etc/hosts:

10.1.2.3  mysite.local

(Atau Windows\System32\drivers\etc\hostspada mesin Windows melakukan hal yang sama.)

BTW, ini adalah semi-duplikat Secara manual menetapkan nama host untuk alamat IP (yaitu / etc / hosts equiv.?) , Tapi pertanyaannya adalah untuk Android 2.2, di mana ternyata itu tidak mungkin. (Salah satu ide alternatif menyarankan ada konfigurasi DNS di router lokal, tetapi sejauh yang saya tahu router saya tidak melakukan DNS lokal sehingga tidak memiliki opsi itu. Saya bisa mengatur server DNS saya sendiri untuk melakukan ini, tetapi itu terasa seperti Solusi Pekerjaan Besar.)

Darren Cook
sumber
Itu agak pertanyaan untuk Kesalahan Server atau Pengguna Super . Dan Anda harus mengatur nama host tersebut dengan server lokal Anda (yang disajikan oleh server DHCP Anda sebagai DNS node).
Izzy
1
@Izzy Terima kasih Izzy, tapi saya tahu cara mengkonfigurasi / etc / hosts di server. Apa yang saya tidak tahu bagaimana melakukannya adalah menemukan / mengedit yang setara pada tablet Android 4.x (atau bahkan jika ada yang setara tanpa rooting). (Server DHCP saya, yaitu router wifi, tampaknya tidak menawarkan opsi untuk menambahkan nama kustom: Saya memang memiliki opsi untuk menentukan server DNS khusus tetapi itu adalah kolam berlumpur yang saya tidak benar-benar ingin meletakkan tangan saya di dalamnya. )
Darren Cook
Anda salah /etc/hostspaham, Darren: Saya tidak menyarankan pengeditan , tetapi mengonfigurasi "server nama" Anda (mis. DNSMasq, atau apa pun yang Anda gunakan). Router Anda mungkin memberi Anda tempat untuk itu. /etc/hostsperlu diedit di setiap mesin jika tidak - dan file yang sesuai di Android hanya dapat diedit dengan "kekuatan root" (saya tidak tahu lokasi persisnya di luar kepala saya, tetapi ada di suatu tempat di dalam /data/systemAFAIR). Lihat: Cara mengedit file etc / hosts
Izzy

Jawaban:

6

Anda tidak dapat hanya mengedit file host di Android, karena file tersebut berada pada sistem file read-only:, /system/etc/hostslihat:

Alternatifnya adalah:

  • menggunakan server DNS seperti DNSMasq di jaringan lokal Anda untuk menjaga itu "terpusat"
  • gunakan "kekuatan root" untuk mengedit file sistem secara paksa seperti dijelaskan di atas
  • instal "server DNS lokal" pada perangkat Android Anda untuk menggunakannya, misalnya Server DNS
Izzy
sumber
hei Izzy, saya mencoba menggunakan DNS Server untuk menangani ini karena saya tidak memiliki akses root ke telepon saya; Saya menambahkan aturan sederhana yang mengalihkan nama host ke ip yang dimaksud .. tetapi tidak berhasil .. apa yang saya lakukan salah?
George Katsanos
Server DNS seharusnya melayani perangkat lain di jaringan Anda (seperti yang dijelaskan dalam uraian, Anda juga perlu menggunakan penerusan port untuk itu). Itu selalu membutuhkan perangkat tersebut (termasuk perangkat Android Anda) dikonfigurasikan untuk menggunakannya. Saya tidak menggunakan server DNS semacam itu di perangkat Android saya, jadi saya tidak memeriksa apa yang sebenarnya perlu dilakukan di sini; tetapi kemungkinan besar Anda perlu menyesuaikan entri DNS di pengaturan jaringan Anda (tekan lama entri jaringan WiFi, pilih "Advanced", dan sesuaikan entri DNS pertama - biarkan kedua apa adanya untuk "cadangan").
Izzy
@GeorgeKatsanos Anda mungkin tertarik dengan ini: stackoverflow.com/a/14211550/1768141
Vinayak
2

Seperti yang disebutkan oleh lzzy, Anda dapat menggunakan server DNSMasq untuk mencapai ini. Tetapi Chrome menggunakan proses penyelesaian DNS sendiri dan metode ini mungkin tidak berfungsi.

Untuk memulai server gunakan perintah berikut:

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 diperlukan untuk mengikat pada port 53
  • -d mulai server di latar depan
  • --no-hosts jangan gunakan file host lokal
  • --conf-file=/dev/null jangan gunakan file konfigurasi apa pun
  • --server=8.8.8.8 --server=8.8.4.4 alamat server hulu (Google DNS dalam contoh ini)
  • --address=/example.com/192.168.0.101host untuk menimpa. Anda perlu menambahkan host Anda di baris ini. Anda juga dapat menambahkan beberapa host di sana.

Kemudian ubah server DNS pada perangkat. Ini dapat dengan mudah dilakukan menggunakan aplikasi DNS Changer .

Setelah langkah-langkah ini, permintaan ke host ini harus dikirim ke alamat Anda.

ZeroDivisi0n
sumber
0

Cara paling sederhana untuk mendefinisikan host ke pemetaan IP adalah hostsfile karena sebagian besar penyelesai DNS menghormati file itu . Tetapi seperti yang disebutkan dalam jawaban lain, tidak mungkin mengedit /etc/hoststanpa me-rooting perangkat Android. Mengakses server web dengan alamat IP juga tidak akan berfungsi untuk Anda karena hosting virtual. Berikut adalah beberapa opsi yang dapat Anda gunakan di perangkat yang tidak di-root:

  • Gunakan aplikasi VPN yang memotong lalu lintas DNS dan mencari hostsfile khusus sebelum membuat kueri ke server DNS hulu yang dikonfigurasi.
  • Jalankan server DNS; mereka dapat dikonfigurasi untuk mengembalikan alamat IP yang telah ditentukan untuk nama tertentu. Misalnya jika menggunakan dnsmasq, tambahkan address=/mysite.local/10.1.2.3ke "dnsmasq.conf" . Atau di dnscrypt-proxytambahkan mysite.local 10.1.2.3ke "cloaking-rules.txt" .
  • Konfigurasikan ponsel untuk menggunakan proxy atau VPN dan kemudian tambahkan entri 10.1.2.3 mysite.localke hostsfile di server proxy atau jalankan server DNS lokal di server VPN.
  • Jika bootloader tidak dapat dibuka, edit hostsfile dari pemulihan khusus.

Untuk detail lebih lanjut, lihat: Cara selalu menyelesaikan nama domain ke IP tetap tanpa rooting?


TERKAIT:

Irfan Latif
sumber