Skip to content

Instantly share code, notes, and snippets.

@unixfox
Last active October 21, 2025 19:56
Show Gist options
  • Select an option

  • Save unixfox/bb299ce4f862fad66ee2e6d9024bef98 to your computer and use it in GitHub Desktop.

Select an option

Save unixfox/bb299ce4f862fad66ee2e6d9024bef98 to your computer and use it in GitHub Desktop.

Revisions

  1. unixfox revised this gist May 31, 2020. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -17,6 +17,7 @@ Nameserver | Provider | Location | Quality of internet connectivity |
    2001:67c:27e4::60 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Medium |

    You may find another good list of NAT64/DNS64 servers: https://nat64.xyz/

    2. Replace the current name servers(s) of your `/etc/resolv.conf` file (old way) or in the configuration file of your network manager with the DNS64 name servers(s) that you chosen earlier.
    If you don't know how to change the name servers then search on your prefered search engine a tutorial on how to change the DNS servers of your Linux distribution.
    If you don't want to bother with configuring your network manager then you may deny any access to the `/etc/resolv.conf` file by using `chattr +i /etc/resolv.conf` after modifying the file.
  2. unixfox revised this gist May 31, 2020. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -15,6 +15,7 @@ Nameserver | Provider | Location | Quality of internet connectivity |
    2001:67c:2b0::6 | [trex.fi](http://www.trex.fi/2011/dns64.html) | Finland (Europe) | Good |
    | 2001:67c:27e4::64 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Good |
    2001:67c:27e4::60 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Medium |

    You may find another good list of NAT64/DNS64 servers: https://nat64.xyz/
    2. Replace the current name servers(s) of your `/etc/resolv.conf` file (old way) or in the configuration file of your network manager with the DNS64 name servers(s) that you chosen earlier.
    If you don't know how to change the name servers then search on your prefered search engine a tutorial on how to change the DNS servers of your Linux distribution.
  3. unixfox revised this gist May 31, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion readme.md
    Original file line number Diff line number Diff line change
    @@ -14,7 +14,7 @@ Nameserver | Provider | Location | Quality of internet connectivity |
    2001:67c:2b0::4 | [trex.fi](http://www.trex.fi/2011/dns64.html) | Finland (Europe) | Good |
    2001:67c:2b0::6 | [trex.fi](http://www.trex.fi/2011/dns64.html) | Finland (Europe) | Good |
    | 2001:67c:27e4::64 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Good |
    2001:67c:27e4::60 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Medium |
    2001:67c:27e4::60 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Medium |
    You may find another good list of NAT64/DNS64 servers: https://nat64.xyz/
    2. Replace the current name servers(s) of your `/etc/resolv.conf` file (old way) or in the configuration file of your network manager with the DNS64 name servers(s) that you chosen earlier.
    If you don't know how to change the name servers then search on your prefered search engine a tutorial on how to change the DNS servers of your Linux distribution.
  4. unixfox revised this gist May 31, 2020. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -15,6 +15,7 @@ Nameserver | Provider | Location | Quality of internet connectivity |
    2001:67c:2b0::6 | [trex.fi](http://www.trex.fi/2011/dns64.html) | Finland (Europe) | Good |
    | 2001:67c:27e4::64 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Good |
    2001:67c:27e4::60 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Medium |
    You may find another good list of NAT64/DNS64 servers: https://nat64.xyz/
    2. Replace the current name servers(s) of your `/etc/resolv.conf` file (old way) or in the configuration file of your network manager with the DNS64 name servers(s) that you chosen earlier.
    If you don't know how to change the name servers then search on your prefered search engine a tutorial on how to change the DNS servers of your Linux distribution.
    If you don't want to bother with configuring your network manager then you may deny any access to the `/etc/resolv.conf` file by using `chattr +i /etc/resolv.conf` after modifying the file.
  5. unixfox revised this gist May 30, 2020. 1 changed file with 2 additions and 3 deletions.
    5 changes: 2 additions & 3 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -4,7 +4,7 @@ Or you may have ordered a VPS that only has IPv6 connectivity and you want to ac
    Here is how to gain your access back to the "IPv4 world".

    ## Change your name servers(s) to DNS64 name servers(s)
    **Note**: You may deploy your own DNS64 & NAT64 server on a separate server by following this tutorial (untested): https://packetpushers.net/nat64-setup-using-tayga/.
    **Note**: You may deploy your own DNS64 & NAT64 server on a separate server by following this tutorial (untested): https://packetpushers.net/nat64-setup-using-tayga/.
    **Note²**: You may find a explanation of what is [NAT64](https://en.wikipedia.org/wiki/IPv6_transition_mechanism#NAT64) and [DNS64](https://en.wikipedia.org/wiki/IPv6_transition_mechanism#DNS64) on Wikipedia.

    1. Choose a/multiple DNS64 public server(s) that has/have its own NAT64 public service from this list:
    @@ -20,8 +20,7 @@ If you don't know how to change the name servers then search on your prefered se
    If you don't want to bother with configuring your network manager then you may deny any access to the `/etc/resolv.conf` file by using `chattr +i /etc/resolv.conf` after modifying the file.

    ## Add real IPv4 connectivity for applications that works only in IPv4 (optional)
    **Note**: This part of the tutorial only works on Linux distributions that has systemd or Upstart as a service manager (Debian, Ubuntu, CentOS and so on). If you are experienced enough you may "translate" the systemd service file to your service manager.

    **Note**: This part of the tutorial only works on Linux distributions that has systemd or Upstart as a service manager (Debian, Ubuntu, CentOS and so on). If you are experienced enough you may "translate" the systemd service file to your service manager.
    **Note²**: If you are using ArchLinux you don't need to follow this part of tutorial because there is a `clatd` package available on AUR: https://aur.archlinux.org/packages/clatd-git/.

    1. Install `make`, `git`, `cpan`/`perl`, `gcc` and `tayga` from your package manager (Debian/Ubuntu : `sudo apt-get install -y make git gcc tayga perl`).
  6. unixfox revised this gist May 30, 2020. 1 changed file with 6 additions and 4 deletions.
    10 changes: 6 additions & 4 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -1,11 +1,12 @@

    Some hosting providers like scaleway allows to remove the IPv4 from the VPS in order to save 1€/month
    but doing this will result in losing connectivity to the "IPv4 world".
    Or you may have ordered a VPS that only has IPv6 connectivity and you want to access to a resource only accessible from the "IPv4 world".
    Here is how to gain your access back to the "IPv4 world".

    ## Setup the nameserver(s)
    **Note²**: You may deploy your own DNS64 & NAT64 server on a separate server by following this tutorial (untested): https://packetpushers.net/nat64-setup-using-tayga/.
    ## Change your name servers(s) to DNS64 name servers(s)
    **Note**: You may deploy your own DNS64 & NAT64 server on a separate server by following this tutorial (untested): https://packetpushers.net/nat64-setup-using-tayga/.
    **Note²**: You may find a explanation of what is [NAT64](https://en.wikipedia.org/wiki/IPv6_transition_mechanism#NAT64) and [DNS64](https://en.wikipedia.org/wiki/IPv6_transition_mechanism#DNS64) on Wikipedia.

    1. Choose a/multiple DNS64 public server(s) that has/have its own NAT64 public service from this list:

    Nameserver | Provider | Location | Quality of internet connectivity |
    @@ -14,7 +15,8 @@ Nameserver | Provider | Location | Quality of internet connectivity |
    2001:67c:2b0::6 | [trex.fi](http://www.trex.fi/2011/dns64.html) | Finland (Europe) | Good |
    | 2001:67c:27e4::64 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Good |
    2001:67c:27e4::60 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Medium |
    2. Add the nameserver(s) to your `/etc/resolv.conf` file or in the configuration file of your network manager. Search on your prefered search engine a tutorial on how to change the DNS servers of your Linux distribution.
    2. Replace the current name servers(s) of your `/etc/resolv.conf` file (old way) or in the configuration file of your network manager with the DNS64 name servers(s) that you chosen earlier.
    If you don't know how to change the name servers then search on your prefered search engine a tutorial on how to change the DNS servers of your Linux distribution.
    If you don't want to bother with configuring your network manager then you may deny any access to the `/etc/resolv.conf` file by using `chattr +i /etc/resolv.conf` after modifying the file.

    ## Add real IPv4 connectivity for applications that works only in IPv4 (optional)
  7. unixfox revised this gist May 30, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion readme.md
    Original file line number Diff line number Diff line change
    @@ -28,7 +28,7 @@ If you don't want to bother with configuring your network manager then you may d
    4. Install clatd using ` sudo make install`.
    5. Install the required perl dependencies for clatd: `cpan Net::IP Socket6 IO::Socket::INET6 Net::DNS`.
    6. Start clatd with `sudo systemctl start clatd` (systemd) or `initctl start clatd` (upstart).
    7. Check if you have IPv4 connectivity using curl: `curl -4 google.com`.
    7. Wait around 30 seconds then check if you have IPv4 connectivity using curl: `curl -4 google.com`.
    ### Troubleshooting if case the curl command doesn't work
    1. Execute `systemctl status clatd` and check if it say: `This system already has IPv4 connectivity; no need for a CLAT.`
    2. If that's the case then add `ExecStartPre=/bin/sh -c "sleep 30s && ip route del 0/0"` after `[Service]` in the `/etc/systemd/system/clatd.service` file (this only works on systemd).
  8. unixfox revised this gist May 30, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion readme.md
    Original file line number Diff line number Diff line change
    @@ -20,7 +20,7 @@ If you don't want to bother with configuring your network manager then you may d
    ## Add real IPv4 connectivity for applications that works only in IPv4 (optional)
    **Note**: This part of the tutorial only works on Linux distributions that has systemd or Upstart as a service manager (Debian, Ubuntu, CentOS and so on). If you are experienced enough you may "translate" the systemd service file to your service manager.

    **Note²**: If you are using ArchLinux you don't need to follow the tutorial because there is a `clatd` package on AUR: https://aur.archlinux.org/packages/clatd-git/.
    **Note²**: If you are using ArchLinux you don't need to follow this part of tutorial because there is a `clatd` package available on AUR: https://aur.archlinux.org/packages/clatd-git/.

    1. Install `make`, `git`, `cpan`/`perl`, `gcc` and `tayga` from your package manager (Debian/Ubuntu : `sudo apt-get install -y make git gcc tayga perl`).
    2. Clone the `clatd` Github repository using: `git clone https://github.com/toreanderson/clatd.git`
  9. unixfox revised this gist May 30, 2020. 1 changed file with 4 additions and 3 deletions.
    7 changes: 4 additions & 3 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,8 @@

    Some hosting providers like scaleway allows to remove the IPv4 from the VPS in order to save 1€/month
    but doing this will result in losing connectivity to the "IPv4 world".
    Here is how to gain your access back to the "IPv4 world".
    but doing this will result in losing connectivity to the "IPv4 world".
    Or you may have ordered a VPS that only has IPv6 connectivity and you want to access to a resource only accessible from the "IPv4 world".
    Here is how to gain your access back to the "IPv4 world".

    ## Setup the nameserver(s)
    **Note²**: You may deploy your own DNS64 & NAT64 server on a separate server by following this tutorial (untested): https://packetpushers.net/nat64-setup-using-tayga/.
    @@ -17,7 +18,7 @@ Nameserver | Provider | Location | Quality of internet connectivity |
    If you don't want to bother with configuring your network manager then you may deny any access to the `/etc/resolv.conf` file by using `chattr +i /etc/resolv.conf` after modifying the file.

    ## Add real IPv4 connectivity for applications that works only in IPv4 (optional)
    **Note**: This tutorial only works on Linux distributions that has systemd or Upstart as a service manager.
    **Note**: This part of the tutorial only works on Linux distributions that has systemd or Upstart as a service manager (Debian, Ubuntu, CentOS and so on). If you are experienced enough you may "translate" the systemd service file to your service manager.

    **Note²**: If you are using ArchLinux you don't need to follow the tutorial because there is a `clatd` package on AUR: https://aur.archlinux.org/packages/clatd-git/.

  10. unixfox revised this gist May 30, 2020. 1 changed file with 3 additions and 5 deletions.
    8 changes: 3 additions & 5 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -4,10 +4,8 @@ but doing this will result in losing connectivity to the "IPv4 world".
    Here is how to gain your access back to the "IPv4 world".

    ## Setup the nameserver(s)
    **Note**: You may choose multiple nameservers.

    **Note²**: You may deploy your own DNS64 & NAT64 server on a separate server by following this tutorial (untested): https://packetpushers.net/nat64-setup-using-tayga/.
    1. Choose a DNS64 public server that has its own NAT64 public service from this list:
    1. Choose a/multiple DNS64 public server(s) that has/have its own NAT64 public service from this list:

    Nameserver | Provider | Location | Quality of internet connectivity |
    |--|--| -- | -- |
    @@ -16,9 +14,9 @@ Nameserver | Provider | Location | Quality of internet connectivity |
    | 2001:67c:27e4::64 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Good |
    2001:67c:27e4::60 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Medium |
    2. Add the nameserver(s) to your `/etc/resolv.conf` file or in the configuration file of your network manager. Search on your prefered search engine a tutorial on how to change the DNS servers of your Linux distribution.
    If you don't want to bother with configuring your network manager then you may deny any access to the `/etc/resolv.conf` by using `chattr +i /etc/resolv.conf` after modifying the file.
    If you don't want to bother with configuring your network manager then you may deny any access to the `/etc/resolv.conf` file by using `chattr +i /etc/resolv.conf` after modifying the file.

    ## Install clatd for adding real IPv4 connectivity for applications that works only in IPv4 (optional)
    ## Add real IPv4 connectivity for applications that works only in IPv4 (optional)
    **Note**: This tutorial only works on Linux distributions that has systemd or Upstart as a service manager.

    **Note²**: If you are using ArchLinux you don't need to follow the tutorial because there is a `clatd` package on AUR: https://aur.archlinux.org/packages/clatd-git/.
  11. unixfox revised this gist May 30, 2020. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion readme.md
    Original file line number Diff line number Diff line change
    @@ -11,7 +11,8 @@ Here is how to gain your access back to the "IPv4 world".

    Nameserver | Provider | Location | Quality of internet connectivity |
    |--|--| -- | -- |
    2001:67c:2b0::4 & 2001:67c:2b0::6 | [trex.fi](http://www.trex.fi/2011/dns64.html) | Finland (Europe) | Good |
    2001:67c:2b0::4 | [trex.fi](http://www.trex.fi/2011/dns64.html) | Finland (Europe) | Good |
    2001:67c:2b0::6 | [trex.fi](http://www.trex.fi/2011/dns64.html) | Finland (Europe) | Good |
    | 2001:67c:27e4::64 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Good |
    2001:67c:27e4::60 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Medium |
    2. Add the nameserver(s) to your `/etc/resolv.conf` file or in the configuration file of your network manager. Search on your prefered search engine a tutorial on how to change the DNS servers of your Linux distribution.
  12. unixfox revised this gist May 30, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion readme.md
    Original file line number Diff line number Diff line change
    @@ -31,7 +31,7 @@ If you don't want to bother with configuring your network manager then you may d
    7. Check if you have IPv4 connectivity using curl: `curl -4 google.com`.
    ### Troubleshooting if case the curl command doesn't work
    1. Execute `systemctl status clatd` and check if it say: `This system already has IPv4 connectivity; no need for a CLAT.`
    2. If that's the case then add `ExecStartPre=/bin/sh -c "sleep 30s && ip route del 0/0"` after `[Service]` in the `/etc/systemd/system/clatd.service` file (this only works on systemd).
    2. If that's the case then add `ExecStartPre=/bin/sh -c "sleep 30s && ip route del 0/0"` after `[Service]` in the `/etc/systemd/system/clatd.service` file (this only works on systemd).
    If that's not the case then try to change the DNS64 nameserver with another one from the list above then restart clatd (`sudo systemctl restart clatd`) and if it still doesn't work then you are out of luck because your hosting provider doesn't support the NAT64 protocol.
    3. Reload systemd and restart clatd: `sudo systemctl daemon-reload && sudo systemctl restart clatd`.
    4. Check if you have IPv4 connectivity: `curl -4 google.com`.
  13. unixfox revised this gist May 30, 2020. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -19,6 +19,7 @@ If you don't want to bother with configuring your network manager then you may d

    ## Install clatd for adding real IPv4 connectivity for applications that works only in IPv4 (optional)
    **Note**: This tutorial only works on Linux distributions that has systemd or Upstart as a service manager.

    **Note²**: If you are using ArchLinux you don't need to follow the tutorial because there is a `clatd` package on AUR: https://aur.archlinux.org/packages/clatd-git/.

    1. Install `make`, `git`, `cpan`/`perl`, `gcc` and `tayga` from your package manager (Debian/Ubuntu : `sudo apt-get install -y make git gcc tayga perl`).
  14. unixfox revised this gist May 30, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion readme.md
    Original file line number Diff line number Diff line change
    @@ -14,7 +14,7 @@ Nameserver | Provider | Location | Quality of internet connectivity |
    2001:67c:2b0::4 & 2001:67c:2b0::6 | [trex.fi](http://www.trex.fi/2011/dns64.html) | Finland (Europe) | Good |
    | 2001:67c:27e4::64 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Good |
    2001:67c:27e4::60 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Medium |
    2. Add the nameserver(s) to your `/etc/resolv.conf` file or in the configuration file of your network manager. Search on your prefered search engine a tutorial on how to change the DNS servers of your Linux distribution.
    2. Add the nameserver(s) to your `/etc/resolv.conf` file or in the configuration file of your network manager. Search on your prefered search engine a tutorial on how to change the DNS servers of your Linux distribution.
    If you don't want to bother with configuring your network manager then you may deny any access to the `/etc/resolv.conf` by using `chattr +i /etc/resolv.conf` after modifying the file.

    ## Install clatd for adding real IPv4 connectivity for applications that works only in IPv4 (optional)
  15. unixfox revised this gist May 30, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion readme.md
    Original file line number Diff line number Diff line change
    @@ -14,7 +14,7 @@ Nameserver | Provider | Location | Quality of internet connectivity |
    2001:67c:2b0::4 & 2001:67c:2b0::6 | [trex.fi](http://www.trex.fi/2011/dns64.html) | Finland (Europe) | Good |
    | 2001:67c:27e4::64 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Good |
    2001:67c:27e4::60 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Medium |
    2. Add the nameserver(s) to your `/etc/resolv.conf` file or in the configuration file of your network manager. Search on your prefered search engine a tutorial on how to change the DNS servers of your Linux distribution.
    2. Add the nameserver(s) to your `/etc/resolv.conf` file or in the configuration file of your network manager. Search on your prefered search engine a tutorial on how to change the DNS servers of your Linux distribution.
    If you don't want to bother with configuring your network manager then you may deny any access to the `/etc/resolv.conf` by using `chattr +i /etc/resolv.conf` after modifying the file.

    ## Install clatd for adding real IPv4 connectivity for applications that works only in IPv4 (optional)
  16. unixfox revised this gist May 30, 2020. No changes.
  17. unixfox revised this gist May 30, 2020. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -5,6 +5,7 @@ Here is how to gain your access back to the "IPv4 world".

    ## Setup the nameserver(s)
    **Note**: You may choose multiple nameservers.

    **Note²**: You may deploy your own DNS64 & NAT64 server on a separate server by following this tutorial (untested): https://packetpushers.net/nat64-setup-using-tayga/.
    1. Choose a DNS64 public server that has its own NAT64 public service from this list:

    @@ -14,8 +15,7 @@ Nameserver | Provider | Location | Quality of internet connectivity |
    | 2001:67c:27e4::64 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Good |
    2001:67c:27e4::60 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Medium |
    2. Add the nameserver(s) to your `/etc/resolv.conf` file or in the configuration file of your network manager. Search on your prefered search engine a tutorial on how to change the DNS servers of your Linux distribution.

    **Note**: If you don't want to bother with configuring your network manager then you may deny any access to the `/etc/resolv.conf` by using `chattr +i /etc/resolv.conf` after modifying the file.
    If you don't want to bother with configuring your network manager then you may deny any access to the `/etc/resolv.conf` by using `chattr +i /etc/resolv.conf` after modifying the file.

    ## Install clatd for adding real IPv4 connectivity for applications that works only in IPv4 (optional)
    **Note**: This tutorial only works on Linux distributions that has systemd or Upstart as a service manager.
  18. unixfox revised this gist May 30, 2020. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -14,6 +14,7 @@ Nameserver | Provider | Location | Quality of internet connectivity |
    | 2001:67c:27e4::64 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Good |
    2001:67c:27e4::60 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Medium |
    2. Add the nameserver(s) to your `/etc/resolv.conf` file or in the configuration file of your network manager. Search on your prefered search engine a tutorial on how to change the DNS servers of your Linux distribution.

    **Note**: If you don't want to bother with configuring your network manager then you may deny any access to the `/etc/resolv.conf` by using `chattr +i /etc/resolv.conf` after modifying the file.

    ## Install clatd for adding real IPv4 connectivity for applications that works only in IPv4 (optional)
  19. unixfox created this gist May 30, 2020.
    35 changes: 35 additions & 0 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,35 @@

    Some hosting providers like scaleway allows to remove the IPv4 from the VPS in order to save 1€/month
    but doing this will result in losing connectivity to the "IPv4 world".
    Here is how to gain your access back to the "IPv4 world".

    ## Setup the nameserver(s)
    **Note**: You may choose multiple nameservers.
    **Note²**: You may deploy your own DNS64 & NAT64 server on a separate server by following this tutorial (untested): https://packetpushers.net/nat64-setup-using-tayga/.
    1. Choose a DNS64 public server that has its own NAT64 public service from this list:

    Nameserver | Provider | Location | Quality of internet connectivity |
    |--|--| -- | -- |
    2001:67c:2b0::4 & 2001:67c:2b0::6 | [trex.fi](http://www.trex.fi/2011/dns64.html) | Finland (Europe) | Good |
    | 2001:67c:27e4::64 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Good |
    2001:67c:27e4::60 | [go6lab.si](https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/) | Slovenia (Europe) | Medium |
    2. Add the nameserver(s) to your `/etc/resolv.conf` file or in the configuration file of your network manager. Search on your prefered search engine a tutorial on how to change the DNS servers of your Linux distribution.
    **Note**: If you don't want to bother with configuring your network manager then you may deny any access to the `/etc/resolv.conf` by using `chattr +i /etc/resolv.conf` after modifying the file.

    ## Install clatd for adding real IPv4 connectivity for applications that works only in IPv4 (optional)
    **Note**: This tutorial only works on Linux distributions that has systemd or Upstart as a service manager.
    **Note²**: If you are using ArchLinux you don't need to follow the tutorial because there is a `clatd` package on AUR: https://aur.archlinux.org/packages/clatd-git/.

    1. Install `make`, `git`, `cpan`/`perl`, `gcc` and `tayga` from your package manager (Debian/Ubuntu : `sudo apt-get install -y make git gcc tayga perl`).
    2. Clone the `clatd` Github repository using: `git clone https://github.com/toreanderson/clatd.git`
    3. Change your current directory to the new directory called `clatd`: `cd clatd`.
    4. Install clatd using ` sudo make install`.
    5. Install the required perl dependencies for clatd: `cpan Net::IP Socket6 IO::Socket::INET6 Net::DNS`.
    6. Start clatd with `sudo systemctl start clatd` (systemd) or `initctl start clatd` (upstart).
    7. Check if you have IPv4 connectivity using curl: `curl -4 google.com`.
    ### Troubleshooting if case the curl command doesn't work
    1. Execute `systemctl status clatd` and check if it say: `This system already has IPv4 connectivity; no need for a CLAT.`
    2. If that's the case then add `ExecStartPre=/bin/sh -c "sleep 30s && ip route del 0/0"` after `[Service]` in the `/etc/systemd/system/clatd.service` file (this only works on systemd).
    If that's not the case then try to change the DNS64 nameserver with another one from the list above then restart clatd (`sudo systemctl restart clatd`) and if it still doesn't work then you are out of luck because your hosting provider doesn't support the NAT64 protocol.
    3. Reload systemd and restart clatd: `sudo systemctl daemon-reload && sudo systemctl restart clatd`.
    4. Check if you have IPv4 connectivity: `curl -4 google.com`.