# L'indirizzo IPv6 degli utenti remoti viene visualizzato come localhost

**URL:** https://meta.discourse.org/t/remote-users-ipv6-address-shows-as-localhost/79861
**Category:** Support
**Created:** [5 Febbraio 2018, 8:44pm UTC](https://meta.discourse.org/t/remote-users-ipv6-address-shows-as-localhost/79861 "2018-02-05T20:44:02Z")
**Posts on this page:** 11
**Page:** 2

<div class="post-metadata">

### Author: ![Dannii](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dannii/32/129087_2.png) [@Dannii](https://meta.discourse.org/u/Dannii)
#### Post date: [24 Agosto 2020, 11:21pm UTC](https://meta.discourse.org/t/remote-users-ipv6-address-shows-as-localhost/79861/21 "2020-08-24T23:21:50Z")

</div>

Ho appena notato che gli indirizzi IP di molti membri del mio forum vengono memorizzati come `172.17.0.1`. Non sto utilizzando un reverse proxy o altro: non c’è nulla tra te e Docker di Discourse. Avete qualche idea?

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [24 Agosto 2020, 11:53pm UTC](https://meta.discourse.org/t/remote-users-ipv6-address-shows-as-localhost/79861/22 "2020-08-24T23:53:19Z")

</div>

Stai usando CloudFlare o qualcosa di simile?

---

<div class="post-metadata">

### Author: ![Dannii](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dannii/32/129087_2.png) [@Dannii](https://meta.discourse.org/u/Dannii)
#### Post date: [25 Agosto 2020, 12:23am UTC](https://meta.discourse.org/t/remote-users-ipv6-address-shows-as-localhost/79861/23 "2020-08-25T00:23:00Z")

</div>

Solo per DNS (modalità grigia). (Tecnicamente, penso di avere la modalità arancione per [www.intfiction.org](http://www.intfiction.org), ma verrà reindirizzata all’apice [intfiction.org](http://intfiction.org) prima di raggiungere il mio server.) Nel mio file app.yml ho quanto segue, anche se non pensavo che nessuna delle due parti fosse rilevante:

```plaintext
  after_web_config:
    - replace:
        filename: /etc/nginx/nginx.conf
        from: /sendfile.+on;/
        to: |
          server_names_hash_bucket_size 64;
          sendfile on;
    - file:
        path: /etc/nginx/conf.d/discourse_redirect_1.conf
        contents: |
          server {
            listen 80;
            server_name www.intfiction.org;
            return 301 $scheme://intfiction.org$request_uri;
          }

```

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [25 Agosto 2020, 12:51am UTC](https://meta.discourse.org/t/remote-users-ipv6-address-shows-as-localhost/79861/24 "2020-08-25T00:51:36Z")

</div>

Vedi [Last IP address and action\_dispatch.trusted\_proxies - #3 by mpalmer](https://meta.discourse.org/t/last-ip-address-and-action-dispatch-trusted-proxies/50098/3?u=pfaffman)

---

<div class="post-metadata">

### Author: ![Dannii](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dannii/32/129087_2.png) [@Dannii](https://meta.discourse.org/u/Dannii)
#### Post date: [25 Agosto 2020, 4:39am UTC](https://meta.discourse.org/t/remote-users-ipv6-address-shows-as-localhost/79861/25 "2020-08-25T04:39:42Z")

</div>

Non sarà rilevante solo se c’è un proxy davanti al mio server?

---

<div class="post-metadata">

### Author: ![ashs](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ashs/32/223132_2.png) [@ashs](https://meta.discourse.org/u/ashs)
#### Post date: [31 Agosto 2020, 10:55am UTC](https://meta.discourse.org/t/remote-users-ipv6-address-shows-as-localhost/79861/26 "2020-08-31T10:55:10Z")

</div>

Anche io sto riscontrando questo problema, dopo aver migrato il mio Discourse su un nuovo server e deciso di NON utilizzare Cloudflare.

Ho reinstallato Discourse da zero e poi ripristinato il mio backup.  
Non ho mai riaggiunto l’opzione del template di Cloudflare da app.yml.

Ho anche provato ad aggiungere il codice dall’altro thread:

```
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: "types {"
to: |
  set_real_ip_from 10.0.0.0/24;
  set_real_ip_from 172.17.0.0/24;
  real_ip_header X-Forwarded-For;
  real_ip_recursive on;
  types {

```

in app.yml, ma il problema persiste:

Tutti gli utenti IPv6 mostrano il loro ultimo IP come 172.17.0.1.

Gli indirizzi degli utenti IPv4 vengono visualizzati correttamente.

Non è in uso alcun reverse proxy o altro su questo server: solo l’installazione standard di Discourse come descritto nella [documentazione](https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md), che gestisce il traffico sulle porte 80/443.

---

<div class="post-metadata">

### Author: ![ppiixx](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ppiixx/32/67460_2.png) [@ppiixx](https://meta.discourse.org/u/ppiixx)
#### Post date: [2 Settembre 2020, 1:49pm UTC](https://meta.discourse.org/t/remote-users-ipv6-address-shows-as-localhost/79861/27 "2020-09-02T13:49:40Z")

</div>

Penso di sapere perché sta succedendo.

Per IPv4, Docker inserisce regole del firewall in iptables per eseguire il reverse NAT dall’indirizzo/porta esposta dell’host alla porta/indirizzo del contenitore. Questo permette al contenitore di vedere l’indirizzo sorgente originale.  
Per IPv6, Docker utilizza un proxy in userland (docker-proxy) che si limita a inoltrare da una porta all’altra. Questo fa sì che il contenitore veda l’indirizzo sorgente come localhost. Non si tratta di un proxy consapevole di HTTP, ma di un semplice inoltro di porte, quindi non è in grado di inserire gli header X-Forwarded-For.

Il progetto Docker principale non ha aggiunto il supporto per il NAT su IPv6, sia perché ritengono che il NAT IPv6 sia poco elegante, sia perché non hanno ancora avuto modo di implementarlo.

Tuttavia, puoi risolvere il problema abilitando IPv6 per Docker e poi eseguendo un contenitore che inserisce automaticamente le regole NAT IPv6 corrette.

Consulta [https://medium.com/@skleeschulte/how-to-enable-ipv6-for-docker-containers-on-ubuntu-18-04-c68394a219a2](https://medium.com/@skleeschulte/how-to-enable-ipv6-for-docker-containers-on-ubuntu-18-04-c68394a219a2) per una guida su come configurarlo.

TLDR: Assicurati che IPv6 funzioni nei tuoi contenitori e poi esegui [GitHub - robbertkl/docker-ipv6nat: Extend Docker with IPv6 NAT, similar to IPv4 · GitHub](https://github.com/robbertkl/docker-ipv6nat)

---

<div class="post-metadata">

### Author: ![Terrapop](https://avatars.discourse-cdn.com/v4/letter/t/ecd19e/32.png) [@Terrapop](https://meta.discourse.org/u/Terrapop)
#### Post date: [2 Settembre 2020, 4:27pm UTC](https://meta.discourse.org/t/remote-users-ipv6-address-shows-as-localhost/79861/28 "2020-09-02T16:27:35Z")

</div>

Questa è una modifica che deve essere effettuata all’interno dell’app/contenitore Docker, esternamente o in entrambi i casi? Immagino entrambi… ma sembra una questione amministrativa di alto livello. Se confermato, sarebbe molto apprezzata una guida semplice da seguire su come abilitare IPv6 per Discourse (Docker).

---

<div class="post-metadata">

### Author: ![ashs](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ashs/32/223132_2.png) [@ashs](https://meta.discourse.org/u/ashs)
#### Post date: [2 Settembre 2020, 4:48pm UTC](https://meta.discourse.org/t/remote-users-ipv6-address-shows-as-localhost/79861/29 "2020-09-02T16:48:16Z")

</div>

Proverò a implementarlo sul mio sito più tardi e cercherò di documentare i passaggi. Non sono assolutamente un esperto di Docker, ma penso che non dovrebbe essere _troppo_ difficile.

---

<div class="post-metadata">

### Author: ![ashs](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ashs/32/223132_2.png) [@ashs](https://meta.discourse.org/u/ashs)
#### Post date: [6 Settembre 2020, 9:10pm UTC](https://meta.discourse.org/t/remote-users-ipv6-address-shows-as-localhost/79861/30 "2020-09-06T21:10:18Z")

</div>

Purtroppo questo si è rivelato più complicato del previsto a causa delle mie conoscenze limitate su Docker. Sto attualmente sperimentando il semplice proxy di Discourse tramite nginx in esecuzione sulla mia rete domestica per aggirare questa limitazione. Se tutto il resto fallisce, tornerò a utilizzare Cloudflare, ma preferirei non dipendere da loro per un sito funzionante.

---

<div class="post-metadata">

### Author: ![ashs](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ashs/32/223132_2.png) [@ashs](https://meta.discourse.org/u/ashs)
#### Post date: [13 Settembre 2020, 2:51am UTC](https://meta.discourse.org/t/remote-users-ipv6-address-shows-as-localhost/79861/31 "2020-09-13T02:51:58Z")

</div>

Una rapida nota a chiunque sia interessato: mettere Discourse dietro nginx è la soluzione più semplice a questo problema. Usa il link nei commenti predefiniti di app.yml per configurare Discourse su una socket. Un vantaggio aggiuntivo per me è stata la possibilità di impostare una pagina di errore personalizzata da visualizzare durante le ricostruzioni.

[Pagina precedente](https://meta.discourse.org/t/remote-users-ipv6-address-shows-as-localhost/79861.md?page=1)
