Не удается подключиться к локальному серверу с помощью dnsmasq с рельсами - PullRequest
1 голос
/ 31 января 2020

У меня есть приложение rails, которое я пытаюсь запустить в локальной среде с помощью dnsmasq. Когда я запускаю сервер rails, он запускается без каких-либо ошибок, показывая:

[18973] Puma starting in cluster mode...
[18973] * Version 3.12.1 (ruby 2.6.3-p62), codename: Llamas in Pajamas
[18973] * Min threads: 10, max threads: 10
[18973] * Environment: development
[18973] * Process workers: 1
[18973] * Phased restart available
[18973] * Listening on tcp:0.0.0.0:3001
[18973] * Listening on ssl:0.0.0.0:3000 cert=config/ssl.crt&key=config/ssl.key&verify_mode=none
[18973] Use Ctrl-C to stop
[18973] * Starting control server on unix:///tmp/puma-status-1580448227758-18973
[18973] - Worker 0 (pid: 19010) booted, phase: 0

Я запустил службу dnsmasq, и это ее состояние

● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
   Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2020-01-31 11:05:18 IST; 2s ago
  Process: 19529 ExecStop=/etc/init.d/dnsmasq systemd-stop-resolvconf (code=exited, status=0/SUCCESS)
  Process: 19605 ExecStartPost=/etc/init.d/dnsmasq systemd-start-resolvconf (code=exited, status=0/SUCCESS)
  Process: 19596 ExecStart=/etc/init.d/dnsmasq systemd-exec (code=exited, status=0/SUCCESS)
  Process: 19595 ExecStartPre=/usr/sbin/dnsmasq --test (code=exited, status=0/SUCCESS)
 Main PID: 19604 (dnsmasq)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/dnsmasq.service
           └─19604 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -r /run/dnsmasq/resolv.conf -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old

Jan 31 11:05:18 BEAST dnsmasq[19595]: dnsmasq: syntax check OK.
Jan 31 11:05:18 BEAST dnsmasq[19604]: started, version 2.79 cachesize 150
Jan 31 11:05:18 BEAST dnsmasq[19604]: DNS service limited to local subnets
Jan 31 11:05:18 BEAST dnsmasq[19604]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC
Jan 31 11:05:18 BEAST dnsmasq[19604]: no servers found in /run/dnsmasq/resolv.conf, will retry
Jan 31 11:05:18 BEAST dnsmasq[19604]: read /etc/hosts - 7 addresses
Jan 31 11:05:18 BEAST dnsmasq[19604]: reading /run/dnsmasq/resolv.conf
Jan 31 11:05:18 BEAST dnsmasq[19604]: using nameserver 127.0.0.53#53
Jan 31 11:05:18 BEAST dnsmasq[19605]: /etc/resolvconf/update.d/libc: Warning: /etc/resolv.conf is not a symbolic link to /run/resolvconf/resol
Jan 31 11:05:18 BEAST systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.

Я добавил файл dev в папку / etc / resolver / с его содержимым

file: /etc/resolver/dev
nameserver 127.0.0.1

Я также добавил одну строку в конфигурационный файл по адресу /etc/dnsmasq.conf

address=/.dev/127.0.0.1

, но не могу подключиться к сервер из браузера.

Вот мой файл /etc/resolv.conf во время работы dnsmasq

nameserver 172.16.10.1
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 127.0.0.1

И это изменение, которое я сделал в файле /etc/dnsmasq.conf, остальное по умолчанию

address=/.dev/127.0.0.1

Вывод netsatat -na | grep LISTEN, пока мой сервер rails работает вместе с dnsmasq

tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:3001            0.0.0.0:*               LISTEN     
tcp6       0      0 :::53                   :::*                    LISTEN     
tcp6       0      0 ::1:631                 :::*                    LISTEN  

ОБНОВЛЕНИЕ для команд копания:

Выход dig www.example.dev

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> www.example.dev
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 18574
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

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

;; AUTHORITY SECTION:
dev.            300 IN  SOA ns-tld1.charlestonroadregistry.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300

;; Query time: 321 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Feb 03 13:28:54 IST 2020
;; MSG SIZE  rcvd: 146

Выход dig @127.0.0.1 www.example.dev

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> @127.0.0.1 www.example.dev
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48569
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.example.dev.       IN  A

;; ANSWER SECTION:
www.example.dev.    0   IN  A   127.0.0.1

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Feb 03 13:29:50 IST 2020
;; MSG SIZE  rcvd: 53

Выход dig example.dev

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> example.dev
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 27586
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

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

;; AUTHORITY SECTION:
dev.            211 IN  SOA ns-tld1.charlestonroadregistry.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300

;; Query time: 271 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Feb 03 13:38:03 IST 2020
;; MSG SIZE  rcvd: 142

Выход dig @127.0.0.1 example.dev

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> @127.0.0.1 example.dev
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36026
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;example.dev.       IN  A

;; ANSWER SECTION:
example.dev.    0   IN  A   127.0.0.1

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Feb 03 13:38:09 IST 2020
;; MSG SIZE  rcvd: 49

1 Ответ

0 голосов
/ 31 января 2020

Если я правильно понимаю, у вас есть только один компьютер (или виртуальная машина) со средой разработки, на которой запущено приложение Rails и окно браузера. Так что вам вообще не нужно dnsmasq, просто добавьте в ваш /etc/hosts файл

127.0.0.1 www.example.dev

Затем вы указываете браузеру на http://www.example.dev:3001 или https://www.example.dev:3000, потому что вы настроили два порта (3000 для ssl и 3001 для доступа не-ssl - см. puma сообщения о запуске.

ОБНОВЛЕНИЕ

Как вы хотите dnsmasq:

  1. Файл /etc/resolver/dev должен содержать только одну строку (без двоеточия!)
nameserver 127.0.0.1
Похоже, что dnsmasq связывается с 127.0.0.53 (см. Третью строку снизу dnsmasq сообщений статистики), а не с 127.0.0.1
...