1

Я пытался найти решение этой проблемы и следил за многими статьями онлайн. Тем не менее я не могу достичь цели. Вот что я хотел открыть rpi.dev в браузере любого устройства, подключенного к моей локальной сети. Вот мой сценарий:

У меня есть Wi-Fi роутер (MI роутер 3C)

Я назначил статические IP-адреса следующим устройствам

Raspberry pi (web server): 192.168.31.164
Ubuntu Laptop: 192.168.31.169
android phone 1: 192.168.31.128

Кроме устройств со статическим IP-адресом, существуют некоторые другие устройства, такие как ПК (работающий в окне 7) и другие смартфоны (андроиды), которым динамически назначаются IP-адреса маршрутизатором (т.е. их IP-адрес постоянно меняется).

Я использую Wi-Fi ключ в Raspberry Pi, и я могу получить к нему доступ через SSH из терминала Ubuntu

Я установил сервер LAMP в Raspberry pi, я добавил собственный домен rpi.dev в /etc /hosts и смог видеть веб-страницы (я также установил wordpress в rpi.dev).

Содержимое /etc /hosts выглядит следующим образом:

127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       raspberrypi
192.168.31.164  rpi.dev

Далее, когда в системе Ubuntu я добавил домен rpi.dev с IP-адресом Raspberry Pi, т.е.

192.168.31.164    rpi.dev

Таким образом, я могу видеть сайт WordPress устройства rspberry pi rpi.dev в системном браузере Ubuntu.

Так как мы не сможем редактировать файл hosts в системе Android, пока мы не будем его рутировать, чего я не хочу делать. Поэтому в этом случае я не могу открыть домен rpi.dev в браузере смартфонов. Таким образом, я следовал за этой статьей и впоследствии другой ссылкой на статью из первой статьи.

Следуя приведенным выше 2 ссылкам, я установил Bind9, и содержимое следующих файлов выглядит следующим образом:

файл /etc/bind/named.conf.local

/
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

#raspberry pi domain zone
zone "rpi.dev"{
        type master;
        file "/etc/bind/zones/rpi.dev.db";
};

#for reverse DNS
zone "31.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/zones/rev.31.168.192.in-addr.arpa";
};

/etc/bind/zones/rpi.dev.db

$TTL 3D
@ IN SOA ns.rpi.dev. admin.rpi.dev. (
   2007062001
   28800
   3600
   604800
   38400
);
rpi.dev.  IN      NS         ns.rpi.dev.
ubuntudesktop  IN      A          192.168.31.169
www            IN      CNAME      ubuntudesktop
miphone        IN      A          192.168.31.128
gw             IN      A          192.168.31.1
                       TXT        "Network Gateway"

/etc/bind/zones/rev.31.168.192.in-addr.arpa

$TTL 3D
@       IN      SOA     ns.rpi.dev. admin.rpi.dev. (
                2007062001
                28800
                604800
                604800
                86400
)
         IN      NS      ns.rpi.dev.
1        IN      PTR     gw.rpi.dev.
169      IN      PTR     ubuntudesktop.rpi.dev.
129      IN      PTR     miphone.rpi.dev.

/etc/bind/named.conf.options

options {
        directory "/var/cache/bind";

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

         forwarders {
         //     0.0.0.0;
         202.53.9.2;
         202.53.9.3;
         };
//=======
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys

//=======
        dnssec-validation auto;

        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
};

Где 202.53.9.2, 202.53.9.3 - мой IP-адрес DNS-провайдера

/etc/resolv.conf

# Generated by resolvconf
nameserver 192.168.31.1

Search rpi.dev
nameserver 192.168.31.164

после этого я перезапустил Bind, выполнив следующую команду в raspberry pi:

sudo /etc/init.d/bind9 restart

Теперь я сделал это в Raspberry Pi

dig rpi.dev

Я получил следующий результат

; <<>> DiG 9.9.5-9+deb8u13-Raspbian <<>> rpi.dev
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27640
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;rpi.dev.           IN  A

;; ANSWER SECTION:
rpi.dev.        30  IN  A   127.0.53.53

;; Query time: 16 msec
;; SERVER: 192.168.31.1#53(192.168.31.1)
;; WHEN: Wed Oct 04 19:30:25 UTC 2017
;; MSG SIZE  rcvd: 52

Потом сделал это

nslookup gw

Я получил следующий вывод

Server:     192.168.31.1
Address:    192.168.31.1#53

Non-authoritative answer:
*** Can't find gw: No answer

Затем я попытался открыть rpi.dev в своем смартфоне, и я получил следующий вывод: *** Этот сайт не может быть достигнут "

От убунту ноутбука / и т.д. / файл хостов, я заметил линию , где я вошел IP - адрес с rpi.dev т.е. # 192.168.31.164 rpi.dev, после этого я пингуется rpi.dev на Ubuntu терминал и возвращает этот IP - адрес: * 127.0.53.53

64 bytes from 127.0.53.53: icmp_seq=1 ttl=64 time=0.014 ms

Есть ли что-то, чего мне не хватает, или мне нужно делать больше действий? Пожалуйста помоги.

0