VPS ve Özel Sunucularda IPv6’nın Yapılandırılması
Seviye: Başlangıç / Orta
Tahmini süre: ~30 dakika
Hedef: Sunucunun IPv6 üzerinden erişilebilir olması ve tüm ağ hizmetlerinin yeni adresle doğru çalışması için özel sunucu veya VPS üzerinde IPv6 ağını etkinleştirmek ve yapılandırmak.
Giriş
INTROSERV sunucunuza büyük olasılıkla zaten bir IPv6 adresi atanmıştır; yalnızca henüz yapılandırılmamıştır. Bu VPS IPv6 ağ kurulumu kılavuzunda Linux sunucuda IPv6'yı etkinleştirecek, statik bir IPv6 adresi atayacak, Linux'ta IPv6 ağ geçidi yapılandıracak ve bağlantıyı doğrulayacaksınız. Kılavuz Ubuntu (Netplan), Debian (/etc/network/interfaces) ve AlmaLinux (nmcli) sistemlerini kapsar.
IPv6 nedir?
IPv6 (Internet Protocol sürüm 6), IPv4'ün yerini almak üzere tasarlanmış, İnternet Protokolü'nün güncel nesli. Sunucu yöneticileri için en önemli pratik farklar:
- IPv6 adresi 128 bit uzunluğundadır ve iki nokta üst üste ile ayrılmış, dörder onaltılık basamaktan oluşan sekiz grup olarak yazılır:
2001:db8:85a3::8a2e:370:7334. - Global Unicast Address (GUA), genel bir IPv4 adresinin IPv6 karşılığıdır ve internette yönlendirilebilir. VPS'inize bu türden bir adres atanır.
- Link-local adres, IPv6 destekli her arayüze otomatik olarak atanır (önek
fe80::/10). Yerel segmentin ötesinde yönlendirilemez, ancak komşu keşfi (neighbor discovery) ve yönlendirme protokolleri için gereklidir. - Alt ağ (IPv6 öneki), adresin hangi bölümünün ağı tanımladığını belirler. Tipik bir VPS'te
/64veya/128önekiyle karşılaşırsınız. - Varsayılan ağ geçidi (IPv6), hedef yerel bağlantıda olmadığında sunucunuzun paketleri gönderdiği yönlendiricidir. Bu adresi sağlayıcınız verir.
Ön koşullar
Başlamadan önce aşağıdaki koşulların sağlandığından emin olun:
- İşletim sistemi: Ubuntu 20.04/22.04/24.04 LTS, Debian 11/12/13 veya AlmaLinux/RHEL 8/9/10
- Erişim: Sunucuya SSH üzerinden sudo veya root erişimi
- IPv6 tahsisi: Barındırma sağlayıcınızın verdiği bir IPv6 adresi, alt ağ öneki ve varsayılan ağ geçidi. Başlamadan önce bunları kontrol panelinizde bulun.
- Gerekli bilgi: Linux komut satırını rahatça kullanabilme ve temel yapılandırma dosyası düzenleme
INTROSERV'de size atanan IPv6 adresini, önekini ve ağ geçidini Client Area içinde bulabilirsiniz: hizmetinize gidin, ardından Network veya IP Addresses sekmesini açın. INTROSERV VPS planları genellikle /112 öneki, özel sunucular ise /64 öneki alır. Hiçbir IPv6 adresi listelenmiyorsa, tahsis talep etmek için INTROSERV desteğiyle iletişime geçin.
Adım 1: Mevcut IPv6 durumunu kontrol edin
Herhangi bir yapılandırmaya dokunmadan önce çekirdeğin şu anda ne bildiğine bakın.
Çalıştırın:
ip -6 addr show
Henüz IPv6 yapılandırması uygulanmamış bir sunucuda beklenen çıktı:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP inet6 fe80::250:56ff:fe00:1/64 scope link valid_lft forever preferred_lft forever
fe80:: adresi link-local adrestir ve yapılandırmadan bağımsız olarak çekirdek tarafından otomatik atanır. scope global girdisinin olmaması, henüz bir Global Unicast Address yapılandırılmadığı anlamına gelir.
Ayrıca IPv6'nın çekirdekte etkin olup olmadığını kontrol edin:
sudo sysctl net.ipv6.conf.all.disable_ipv6
Debian 13'te normal kullanıcıların $PATH değişkeninde /usr/sbin bulunmaz; bu nedenle sysctl komutunu sudo olmadan çalıştırmak command not found hatası verir. Ayrıca minimal bir Debian 13 kurulumu varsayılan olarak sudo içermez. Devam etmeden önce root kullanıcısına geçmeniz (su -), sudo kurmanız (apt install sudo) ve kullanıcınızı sudoers grubuna eklemeniz gerekir.
Beklenen çıktı:
net.ipv6.conf.all.disable_ipv6 = 0
0 değeri IPv6'nın etkin olduğu anlamına gelir. 1 görüyorsanız IPv6 çekirdek düzeyinde devre dışı bırakılmıştır.
Geçici olarak yeniden etkinleştirmek için:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
Kalıcı yapmak için /etc/sysctl.conf dosyasında veya /etc/sysctl.d/ altındaki dosyalarda net.ipv6.conf.all.disable_ipv6 = 1 satırını arayın, silin veya yorum satırı yapın, ardından şunu çalıştırın:
sudo sysctl -p
Adım 2: Arayüz adını bulun
Herhangi bir yapılandırma dosyasını düzenlemeden önce genel ağ arayüzünüzün tam adına ihtiyacınız var.
Çalıştırın:
ip -br link
Beklenen çıktı:
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP> eth0 UP 00:50:56:00:00:01 <BROADCAST,MULTICAST,UP,LOWER_UP>
MAC adresi olan ve UP durumundaki arayüz birincil arayüzünüzdür. Yaygın adlar eth0, ens3, ens18, ens33, ens160 (VMware'de ve modern çekirdeklerde yaygın) ve benzeri ensXX/enpXsX varyasyonlarıdır. Aşağıdaki tüm yapılandırma adımlarında ip -br link komutunun gösterdiği adın aynısını kullanın.
Adım 3: Statik IPv6 adresi yapılandırın
Yapılandırma yöntemi dağıtımınıza bağlıdır. Ubuntu 18.04 ve sonrası Netplan kullanır; Debian varsayılan olarak /etc/network/interfaces kullanır; AlmaLinux ise NetworkManager veya /etc/sysconfig/network-scripts/ altındaki arayüz betiklerini kullanır.
Devam etmeden önce sağlayıcınızın kontrol panelinden aşağıdaki değerleri toplayın:
| Alan | Örnek |
|---|---|
| IPv6 adresi | 2001:db8:1000::10 |
| Önek uzunluğu | 64 |
| Varsayılan ağ geçidi (IPv6) | 2001:db8:1000::1 |
Aşağıdaki adımlarda bu örnek değerleri gerçek değerlerle değiştirin.
3.1 Ubuntu (Netplan)
Ubuntu, Netplan üzerinden IPv6 yapılandırması kullanır. Yapılandırma dosyaları /etc/netplan/ dizinindedir.
Önce yapılandırma dosyanızı bulmak için /etc/netplan/ dizininin içeriğini listeleyin:
ls /etc/netplan/
00-installer-config.yaml gibi sabit kodlanmış bir dosya adı çoğu VPS'te bulunmaz. cloud-init imajlarında dosya genellikle 50-cloud-init.yaml. adını taşır. Aşağıdaki adımlarda, önceki komutla bulduğunuz gerçek dosya adını kullanın.
Mevcut dosyanın yedeğini alın (50-cloud-init.yaml yerine gerçek dosya adınızı yazın):
sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak
Dosyayı açın:
sudo nano /etc/netplan/50-cloud-init.yaml
Arayüzünüzün altına addresses ve routes bloklarını ekleyin. Hem IPv4'ü (zaten yapılandırılmış) hem de yeni statik IPv6 adresini içeren eksiksiz bir dosya şöyle görünür:
network: version: 2 ethernets: eth0: addresses: - 203.0.113.10/24 # existing IPv4 address - 2001:db8:1000::10/64 # new IPv6 address routes: - to: default via: 203.0.113.1 # existing IPv4 gateway - to: default via: 2001:db8:1000::1 # IPv6 default gateway nameservers: addresses: - 8.8.8.8 - 2001:4860:4860::8888 # Google public DNS over IPv6
Sunucunuz IPv4 adresini DHCP ile alıyorsa (yeni kurulmuş birçok VPS'te yaygındır), dosyanız biraz farklı görünür. Yukarıdaki statik IPv4 yapılandırmasını körü körüne kopyalamayın; aksi halde çalışan IPv4 bağlantınızı kaybedersiniz. dhcp4: true içeren bir örnek:
network: version: 2 ethernets: eth0: dhcp4: true addresses: - 2001:db8:1000::10/64 # new IPv6 address routes: - to: default via: 2001:db8:1000::1 # IPv6 default gateway nameservers: addresses: - 2001:4860:4860::8888 # Google public DNS over IPv6
Netplan YAML kullanır. Girinti önemlidir: boşluk kullanın, asla sekme kullanmayın. Tek bir yanlış hizalanmış satır, yapılandırmanın sessizce başarısız olmasına veya uygulanmamasına yol açabilir.
Yapılandırmayı uygulamadan önce test edin:
sudo netplan try
netplan try, yapılandırmayı 120 saniyelik bir zamanlayıcıyla uygular. Onaylamazsanız otomatik olarak geri alınır; bu nedenle SSH üzerinden çalıştırmak güvenlidir. Çıktı doğru görünüyorsa onaylayın:
# Press Enter when prompted, or type: sudo netplan apply
SSH üzerinden çalışırken netplan apply yerine her zaman netplan try kullanın. Yeni yapılandırma bağlantınızı keserse otomatik geri alma sizi yeniden içeri alır.
3.2 Debian (/etc/network/interfaces)
Debian'da /etc/network/interfaces dosyasına IPv6 eklemenin klasik yolu, aynı arayüz için inet6 ailesini kullanan ikinci bir iface bloğu eklemektir.
Önce yedek alın:
sudo cp /etc/network/interfaces /etc/network/interfaces.bak
Dosyayı açın:
sudo nano /etc/network/interfaces
Mevcut IPv4 bloğunuz şuna benzer:
auto eth0 iface eth0 inet static address 203.0.113.10 netmask 255.255.255.0 gateway 203.0.113.1
IPv6 bloğunu hemen altına ekleyin:
iface eth0 inet6 static address 2001:db8:1000::10 netmask 64 gateway 2001:db8:1000::1
İkinci bir auto eth0 satırı eklemeyin. Tek bir auto yönergesi, arayüz başlatılırken hem inet hem de inet6 bloklarını devreye alır.
Yeni yapılandırmayı tam yeniden başlatma olmadan uygulayın:
sudo ifdown eth0 && sudo ifup eth0
ifdown eth0 komutunu SSH üzerinden çalıştırmak bağlantınızı keser. Bu komutu sağlayıcının seri/web konsolundan çalıştırın veya ifreload -a kullanın. ifreload -a komutunun, temel Debian kurulumuna dahil olmayan ifupdown2 paketini gerektirdiğini unutmayın. Etkin oturumları kesmeden arayüzleri yeniden yüklemek için sudo apt install ifupdown2 ile kurun.
3.3 AlmaLinux / RHEL (nmcli)
AlmaLinux ve RHEL 8/9'da varsayılan olarak NetworkManager kullanılır. Dosyaları elle düzenlemeden IPv6 adresini eklemek için nmcli kullanın.
Bağlantı adınızı bulun:
nmcli connection show
Beklenen çıktı:
NAME UUID TYPE DEVICE eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0
Statik IPv6 adresini ekleyin:
sudo nmcli connection modify eth0 \ ipv6.method manual \ ipv6.addresses "2001:db8:1000::10/64" \ ipv6.gateway "2001:db8:1000::1"
Yapılandırmayı SSH bağlantısını koparmadan uygulayın:
sudo nmcli device reapply eth0
Adım 4: IPv6 bağlantısını test edin
Yapılandırma uygulandıktan sonra adresin atandığını ve yönlendirmenin çalıştığını doğrulayın.
4.1 Adresin atandığını doğrulayın
ip -6 addr show eth0
Beklenen çıktı:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP inet6 2001:db8:1000::10/64 scope global valid_lft forever preferred_lft forever inet6 fe80::250:56ff:fe00:1/64 scope link valid_lft forever preferred_lft forever
Global Unicast Address'inizi scope global ile görmelisiniz. Link-local adres (scope link) de mevcut olacaktır.
4.2 Varsayılan ağ geçidini doğrulayın
ip -6 route show
Beklenen çıktı:
2001:db8:1000::/64 dev eth0 proto kernel metric 100 default via 2001:db8:1000::1 dev eth0 proto static metric 100
default via satırı, IPv6 varsayılan ağ geçidinizin doğru yapılandırıldığını doğrular.
4.3 IPv6 bağlantısını test edin
Bilinen bir genel ana bilgisayara IPv6 bağlantısını test etmek için ping6 (veya yeni sistemlerde ping -6) kullanın:
ping6 -c 4 2606:4700:4700::1111
Beklenen çıktı:
PING 2606:4700:4700::1111(2606:4700:4700::1111) 56 data bytes 64 bytes from 2606:4700:4700::1111: icmp_seq=1 ttl=57 time=1.23 ms 64 bytes from 2606:4700:4700::1111: icmp_seq=2 ttl=57 time=1.19 ms 64 bytes from 2606:4700:4700::1111: icmp_seq=3 ttl=57 time=1.21 ms 64 bytes from 2606:4700:4700::1111: icmp_seq=4 ttl=57 time=1.20 ms
Adres atanmış olduğu halde ping6 başarısız oluyorsa sorun neredeyse her zaman şu üçünden biridir: varsayılan ağ geçidi yanlıştır, sağlayıcınızın güvenlik duvarı ICMPv6'yı engelliyordur veya IPv6 tahsisi sağlayıcı tarafında henüz etkinleştirilmemiştir.
Bağlantıyı dışarıdan da https://ipv6-test.com gibi genel bir araçla test edebilirsiniz. Sunucunuzun IPv6 adresini girin ve bir erişilebilirlik kontrolü çalıştırın.
4.4 IPv6 üzerinden DNS çözümlemesini doğrulayın
Önce dig aracının kurulu olduğundan emin olun.
AlmaLinux 10'da dig temel kuruluma dahil değildir:
sudo dnf install -y bind-utils
Minimal Debian imajlarında paket yine eksik olabilir:
sudo apt install -y dnsutils
Sunucunuzun ana bilgisayar adlarını IPv6 DNS sunucusunu kullanarak çözümleyebildiğini kontrol edin:
dig AAAA google.com @2001:4860:4860::8888
Başarılı bir yanıt, bir veya daha fazla AAAA kaydı içeren bir ANSWER SECTION bölümü içerir.
Adım 5: Güvenlik duvarını IPv6 için ayarlayın
Sunucunuzda yazılım tabanlı bir güvenlik duvarı çalışıyorsa IPv6 trafiğine açıkça izin vermeniz gerekir. Varsayılan olarak birçok güvenlik duvarı yapılandırması yalnızca IPv4'ü kapsar.
INTROSERV'de VPS ve özel sunucular için ağ düzeyinde tüm portlar varsayılan olarak açıktır; yalnızca küçük bir istisna kümesi vardır (e-posta portları 25, 465, 587, 2525 ve LDAP portu 389, IP itibarını korumak için filtrelenir). Bu, standart web trafiği veya SSH için sağlayıcı tarafındaki bir güvenlik duvarında port açmanız gerekmediği anlamına gelir. Sunucunuzda çalışan işletim sistemi düzeyindeki güvenlik duvarından yine siz sorumlusunuz. Ayrıntılar için Ağ Güvenliği ve Port Filtreleme kılavuzuna bakın.
Ubuntu/Debian (UFW)
Debian'da UFW temel kuruluma dahil değildir. Gerekirse önce kurun:
sudo apt install -y ufw
UFW, yapılandırmasında IPV6=yes ayarlıysa kuralları hem IPv4'e hem IPv6'ya uygular. Doğrulayın:
grep IPV6 /etc/default/ufw
Beklenen çıktı:
IPV6=yes
IPV6=no yazıyorsa dosyayı açıp değiştirin:
sudo nano /etc/default/ufw
Ardından UFW'yi yeniden yükleyin:
sudo ufw reload
UFW henüz etkinleştirilmemişse ufw reload Firewall not enabled döndürür. Bu sorun değildir; güvenlik duvarını sonunda sudo ufw enable ile etkinleştirdiğinizde kurallar otomatik olarak uygulanır.
Mevcut ufw allow kurallarınız (SSH, HTTP, HTTPS) artık IPv6 için de geçerli olacaktır.
AlmaLinux / RHEL (firewalld)
firewalld, bölge (zone) modeli sayesinde IPv6'yı yerel olarak yönetir. Arayüzünüz doğru bölgedeyse IPv6 trafiği otomatik yönetilir. Doğrulayın:
sudo firewall-cmd --get-active-zones
SSH ve HTTPS gibi hizmetler için:
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
Bir hizmet bölgede zaten izinliyse firewall-cmd Warning: ALREADY_ENABLED çıktısı verir. Bu normaldir ve hata değildir. AlmaLinux'ta ssh ve dhcpv6-client varsayılan olarak public bölgesinde izinlidir.
ICMPv6, IPv6'nın doğru çalışması için gereklidir. Komşu keşfini, yol MTU keşfini ve yönlendirici duyurularını (router advertisements) yönetir; yani ARP'nin IPv6 karşılıklarıdır. ICMPv6'yı tamamen engellemeyin. Çoğu güvenlik duvarı aracı bunu varsayılan olarak izin verir; ham nftables veya ip6tables kuralları yazıyorsanız icmpv6'ya açıkça izin verin.
Geri alma (Rollback)
Ubuntu (Netplan)
Yedeği geri yükleyin ve uygulayın (50-cloud-init.yaml yerine gerçek dosya adınızı yazın):
sudo cp /etc/netplan/50-cloud-init.yaml.bak /etc/netplan/50-cloud-init.yaml sudo netplan apply
Debian (/etc/network/interfaces)
Yedeği geri yükleyin:
sudo cp /etc/network/interfaces.bak /etc/network/interfaces sudo ifdown eth0 && sudo ifup eth0
AlmaLinux (nmcli)
IPv6 ayarlarını bağlantıdan kaldırın:
sudo nmcli connection modify eth0 ipv6.method auto sudo nmcli connection modify eth0 ipv6.addresses "" ipv6.gateway "" sudo nmcli connection modify eth0 ipv6.method ignore sudo nmcli device reapply eth0
NetworkManager, statik ipv6.addresses mevcutken ipv6.method ignore ayarlanmasına izin vermez. Yöntemi önce auto yapmak adreslerin düzgün temizlenmesini sağlar.
IPv6'yı sistem genelinde devre dışı bırakma (acil durum)
IPv6'yı tüm arayüzlerde tamamen kapatmanız gerekirse:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
Kalıcı hale getirmek için aşağıdakileri /etc/sysctl.d/99-disable-ipv6.conf dosyasına ekleyin:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
Ardından sudo sysctl -p /etc/sysctl.d/99-disable-ipv6.conf komutunu çalıştırın.
Sorun giderme
Ping6 hemen «Network unreachable» hatasıyla başarısız oluyor
Varsayılan ağ geçidi (IPv6) eksik veya yanlış. ip -6 route show komutunu çalıştırın ve default via girdisinin bulunduğunu, sağlayıcı panelindeki ağ geçidiyle eşleştiğini doğrulayın.
Adres görünüyor ama scope yalnızca link, global değil
Adres yanlış arayüze eklenmiş veya yapılandırma dosyasında adres ya da önekte yazım hatası var. Sağlayıcınızın tahsisini dikkatle yeniden okuyun.
Netplan apply ayrıştırma hatası döndürüyor
YAML girintisi hatalı. Sekme karakterlerini (^I olarak görünür) ortaya çıkarmak için cat -A /etc/netplan/50-cloud-init.yaml (veya gerçek dosya adınız) komutunu çalıştırın ve bunları boşluklarla değiştirin.
Debian'da ifdown sonrası SSH bağlantısı kopuyor
Erişimi geri kazanmak için sağlayıcının web konsolunu veya VNC/IPMI erişimini kullanın. /etc/network/interfaces dosyasını yedekten geri yükleyin ve ifup eth0 komutunu çalıştırın.
IPV6=yes ayarından sonra UFW hâlâ IPv6'yı engelliyor
Değişiklikten önce eklenen kurallar yalnızca IPv4 için kaydedilmiştir. sudo ufw reset komutunu çalıştırın, ardından kurallarınızı yeniden ekleyin; artık her iki aile için de geçerli olacaklardır.
sudo ufw reset komutu yıkıcıdır. Tüm güvenlik duvarı kurallarını varsayılanlara sıfırlar. Kendinizi dışarıda bırakmamak için çalıştırmadan önce hangi portlara yeniden izin vereceğinizi (SSH gibi) bildiğinizden emin olun.
Sonuç
İşte bu kadar. INTROSERV sunucunuz artık çalışan bir IPv6 adresine, doğru yapılandırılmış bir varsayılan ağ geçidine ve her iki protokol ailesini de kapsayan bir güvenlik duvarına sahip. Sonraki adımlar: INTROSERV Client Area üzerinden bir PTR kaydı talep edin ve Nginx veya Apache sanal ana bilgisayarlarınızı yeni IPv6 adresini dinleyecek şekilde güncelleyin.
Belge sürümü: 1.0
Son güncelleme: Mayıs 2026
Sahibi: Teknik Dokümantasyon Ekibi