ZeroTier İle Sanal Özel Ağ (VPN) Oluşturmak ve Kullanmak (Debian, Ubuntu ve Windows)

ZeroTier; en basit olarak Hamachi benzeri kullanıcılar arasında internet bir sanal ağ oluşturarak birbirleri arasında her türlü iletişimi kurmalaraı sağlayan bir programdır. Programı yaptığı iş her ne kadar sanal ağ oluşturmak olsa da, siz oluşturduğunuz bu ağ ile belirlediğin bir sunucu üzerinden doğrudan internete çıkış sağlayabilirsiniz.



ZeroTier Çalıştıran İşletim Sistemleri ve Cihazlar

  • Microsoft Windows
  • MacOS
  • Apple iOS
  • Android
  • Debian
  • Ubuntu
  • CentOS
  • RHEL
  • Fedora
  • FreeBSD
  • Synology NAS
  • QNAP NAS
  • WD MyCloud NAS
  • OpenWRT
  • Docker


ZeroTier Üyelik ve Network Oluşturma

Öncelikle http://my.zerotier.com adresinde mail adresinizle kayıt olmanız gerekiyor.
Daha sonrasında Networks sekmesinden Create A Network seçeneğine tıklıyoruz. Sistem size rastgele bir Network ID oluşturacaktır.

ZeroTier - Networks Create a Network

Network ID üzerine tıklayıp ayarlarına girdiğinizde, bizim için atanmış IP aralıklarını göreceksiniz. İstediğiniz IP aralıklarını seçebilirsiniz.

ZeroTier - Central IPv4 Settings


Windows İçin ZeroTier Kurulumu

https://www.zerotier.com/download/ adresinden Microsoft Windows sekmesinde MSI Installer (x86/x64) linkinden kurulum dosyasını indirebilirsiniz. Kurulum tamamlandıktan sonra program sistem çubuğua gelecektir.

Programa sağ tıklayıp Join Network seçeneğini seçelim.

ZeroTier - Windows Join Network

Açılan pencerede ZeroTier’in bize verdiği Network ID girelim ve Join butonuna tıklayalım.

ZeroTier - Windows Join Network Confirm

ZeroTier sayfasına döndüğümüzde, eklediğimiz clientin listeye geldiğini göreceğiz.
Auth kısmından clienta izin veriyoruz. İzin vermemizle birlikte Managed IPs kısmında clientin bir IP aldığını göreceksiniz.

ZeroTier - Central Client Auth

Sistem çubuğunda bulunan ZeroTier simgesine sağ tıklayıp Show Network yaptığımızda atanan IP adresini ve diğer bilgileri görebiliriz.

ZeroTier - Central Windows Show Network


Ubuntu/Debian İçin ZeroTier Kurulumu

Sunucumuza SSH ile bağlanalım ve aşağıdaki komutla kurulumu başlatalım.

curl -s https://install.zerotier.com | sudo bash

Kurulum sisteminize ve internet bağlantınıze göre biraz sürebilir. Kurulum tamamlanında aşağıdaki gibi bir mesajla karşılaşacaksınız.

*** Enabling and starting zerotier-one service...
Synchronizing state of zerotier-one.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable zerotier-one

*** Waiting for identity generation...

*** Success! You are ZeroTier address [ ea05519d35 ].

Aşağıdaki komutla daha önceden oluşturduğumuz Netowk’e giriş yapalım.

zerotier-cli join NETWORKID

Giriş başarılı ile tamamlannınca

200 join OK

mesajı ekranda görünecektir.

Tekrar web sayfasına gidiyoruz ve yeni eklenen clientin bağlanmasına izin veriyoruz.

Aşağıda komutla arayüz bilgilerini alıyoruz.

zerotier-cli listnetworks

Örnek çıktı aşağıdaki gibi olacaktır

root@fatih-VirtualBox:~# zerotier-cli listnetworks
200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
200 listnetworks 159924d630396be7 zt0 e6:81:3c:61:4b:11 OK PRIVATE ztyour3pox 192.168.192.124/24
root@fatih-VirtualBox:~#

Gördüğünüz gibi cliente izin verdikten sonra özel networkümüzde IP adresi almış oldu.



ZeroTiler İle Bağlantı Denemesi

Windows bilgisayarım 192.168.192.219, Linux bilgisayarım ise 192.168.192.124 IP adreslerini aldılar.

Windows -> Linux Bağlantı Denemesi

C:\Users\Fatih>ping 192.168.192.124

Pinging 192.168.192.124 with 32 bytes of data:
Reply from 192.168.192.124: bytes=32 time=1ms TTL=64
Reply from 192.168.192.124: bytes=32 time=1ms TTL=64
Reply from 192.168.192.124: bytes=32 time=3ms TTL=64
Reply from 192.168.192.124: bytes=32 time=1ms TTL=64

Ping statistics for 192.168.192.124:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 1ms, Maximum = 3ms, Average = 1ms

C:\Users\Fatih>

Linux -> Windows Bağlantı Denemesi

root@fatih-VirtualBox:~# ping  -c 5 192.168.192.219
PING 192.168.192.219 (192.168.192.219) 56(84) bytes of data.
64 bytes from 192.168.192.219: icmp_seq=1 ttl=64 time=0.700 ms
64 bytes from 192.168.192.219: icmp_seq=2 ttl=64 time=4.19 ms
64 bytes from 192.168.192.219: icmp_seq=3 ttl=64 time=0.794 ms
64 bytes from 192.168.192.219: icmp_seq=4 ttl=64 time=0.934 ms
64 bytes from 192.168.192.219: icmp_seq=5 ttl=64 time=3.09 ms

--- 192.168.192.219 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4051ms
rtt min/avg/max/mdev = 0.700/1.941/4.190/1.431 ms
root@fatih-VirtualBox:~# 

İki bilgisayar da birbirlerini aynı ağdalarmış gibi görüp erişim sağlayabiliyorlar.

Artık arkadaşlarınız arasında sanal bir ağ kurarak birlikte online oyun oynayabilirsiniz :)



ZeroTier VPN Olarak Yapılandırma

Eğer Linux VPS, VDS, Sunucu kullanıyorsanız, tüm ağ trafiğinizi VPN ile bu sunucu üzerinden geçirebilirsiniz.
Öncelikle yapmanız gereken web sayfası üzerinden 0.0.0.0/0 rotasını Linux sunucunuza yönlendirmek olacaktır.

Add Route

Varsayılan rota oluşturduktan sonra Linux sunucu üzerinde IP yönlendirmeyi aktif etmek yeterli olacaktır.

echo 1 > /proc/sys/net/ipv4/ip_forward

Bu şekilde tüm trafiğiniz Linux sunucu üzerinden yönlenecektir.

“ZeroTier İle Sanal Özel Ağ (VPN) Oluşturmak ve Kullanmak (Debian, Ubuntu ve Windows)” üzerine 2 yorum

  1. Merhabalar,
    Yazınızı okudum. Çok yararlı fakat bu dedikleriniz benim mobil veya masaüstü cihazlarımda çalışmıyor. Ben oyun yapmakla uğraşıyorum ve sunucu kurmam lazım fakat kuracak maddi gücüm yok. Bende zeroTier One dan faydalanmak istedim. İnsanları aynı modeme bağlanmış gibi gösterip uzaktan birbirlerine erişim sağlamalarını, sağlamaya çalışıyorum fakat bu işte bir ilerleme kaydedemedim. Python dilini kullanıyorum. Socket konusunda çok bir bilgim yok fakat “basic” bir kodla:

    server:
    from socket import *

    sock = socket(AF_INET, SOCK_STREAM)
    sock.bind((”, 12345))
    sock.listen(50)
    sock.accept()

    client:
    from socket import *

    sock = socket(AF_INET, SOCK_STREAM)
    sock.connect((‘xxx.xxx.xxx.xx’, 12345))

    bir bağlantı sağlayabilirsem çok işime yarar. Umarım yorumumu görür ve yardım edersiniz.

    Teşekkürler…

    Yanıtla
    • Merhabalar,

      sock.connect(('xxx.xxx.xxx.xx', 12345)) kısmında x.x.x.x olan yere, ZeroTier IP adresi atadığınız sunucu görevini üstlenecek cihazın IP adresini yazarak bağlantı sağlayabilirsiniz diye düşünüyorum.

      Test için bağlanacak kullanıcılar da önce ZeroTier ile bağlantı sağladıktan sonra uygulamayı çalıştırarak erişim sağlayabilirler.

      Sunucu tarafında Windows kullanıyorsanız eğer, bağlantı için gerekli Firewall ayarlarının yapılması gerekecektir. Uygulama ve gerekli portlar için Windows Firewall üzerinden izin tanımlarsanız, sorunsuz bir şekilde bağlantı sağlayacağını düşünüyorum.

      Kolay gelsin

      Yanıtla

Yorum yapın