IPv4 eşlemeli IPv6'yı nasıl devre dışı bırakabilirim?


17

Linux kutumda, IPv6 özellikli tüm arabirimlere bağlanabilen çeşitli arka plan kodlarım var ::. Bunu yaptıkları zaman Linux, örneğin eşlenen bu arka plan programına IPv4 istekleri gönderir ::ffff:198.51.100.37.

Bunun yerine IPv4 bağlantılarının reddedilmesini ve bir daemon bağlandığında yalnızca IPv6 bağlantılarının kabul edilmesini istiyorum ::. IPv4 bağlantılarını almak için, arka plan programının açıkça bağlanması 0.0.0.0(yanı sıra ::) olmasını istiyorum.

Başka bir deyişle, IPv4'te değil, yalnızca IPv6'da bir hizmet çalıştırmak istiyorum.

Bunu başarmanın bir yolu var mı?

Yanıtlar:


22

Bu sistem tarafından kontrol edilir net.ipv6.bindv6only. Aşağıdakileri ekleyin ve değişikliği etkilemek için /etc/sysctl.confçalıştırın sudo sysctl -p.

net.ipv6.bindv6only=1

Uygulamalar ayrıca, genel olarak bunu değiştirmek yerine sadece IPv6 adresine açıkça bağlanabilir, örneğin, nginx'in yönerge ipv6onlyseçeneği vardır listen. Bu, IPV6_V6ONLYseçeneğine karşılık gelir setsockopt().


Neyse ki ben app (bu durumda, OpenSSH) zaten ListenAddress ::sysctl (ve her şeyi yeniden yapılandırmak) kullanarak başvurmak gerek yoktu ayarlamak IPV6_V6ONLY soket üzerinde ayarlanmış bulundu .
Michael Hampton
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.