Ubuntu'da statik IP'yi nasıl ayarlarım?


56

Linux'la yeniyim, Windows sunucuları / masaüstlerinde uzun yıllara dayanan deneyime sahibim ve statik bir IP belirleme konusunda sorun yaşıyorum. 16.04 ile çalışmıyor gibi görünen Ubuntu'nun önceki sürümleri için kullanılan bir yöntemi kullanıyorum.

Komutu kullandım sudo nano /etc/network/interfaceve aşağıdakileri ekledim:

iface enp0s25 inet static
address 10.10.8.2
netmask 255.255.0.0
gateway 10.10.1.1
dns-nameservers 8.8.8.8 8.8.4.4

Sistemi yeniden başlattım ve Ethernet neredeyse öldü, ping hiç çalışmıyor. /etc/NetworkManager/NetworkManager.confAşağıdaki değişiklikleri yapmaya çalıştım ve yaptım

#dns=dnsmasq (comment out the dnsmasq)
[ifupdown]
managed=true (changed from false)

Bununla Ethernet'in düzensiz çalışmasını sağlayabilirim, ancak sonunda başarısız oluyor.

Bu konfigürasyonu diğer iki makinede ve bir sanal makinede denedim ve hepsinde aynı sonuç elde edildi. Bu makinelerin herhangi birine Windows yüklediğimde bu ayarların düzgün çalıştığını onaylayabilirim. Ayrıca DHCP otomatik yapılandırmasına izin verdiğimde, her şey sorunsuz çalışıyor.

Burada bir şeyleri özlüyorum, statik bir IP kurmak hiç zor olmamalı.


tek şey fark ve sadece bir yazım hatası burada olabilir ama değiştirmek istiyorum Dns-nameserversiçin dns-nameserversmuhtemelen bu sorunu çözmek için hiçbir şey yapmayacak ama dan olay diğer konuları durdurabilir
John Orion

1
Dns-nameservers kabul edilebilir bir sözdizimi konusunda akıllıca olduğu için bir sorun olmamalıdır. DHCP ile çalışırken ifconfig, arayüz adını kontrol etmek için bir çalıştırdınız mı yoksa enp0s25 olduğunu varsaydınız mı? Ayrıca auto enp0s25config dosyanızın üstünde bir tane var mı? Eğer mümkün değilse, arayüz önyüklemede sadece gelmiyor.
Andrew,

Lütfen sorunuzu düzenleyin ve /etc/network/interfacesdosyanızın tam içeriğini gönderin . Mesajınızı düzenlerken, bu dosyanın metnini vurgulayın, sonra {}mesaj editörünün üstündeki kod bağlantısını tıklayın; böylece metni içeriği okumamızı kolaylaştıracak şekilde biçimlendirin. Ayrıca bu komutu uygulayın ip addressve {}çıktı olarak (kod formatı) aynı adımları uygulayın .
LD James

Yanıtlar:


83

Aynı sorunu yaşadım ve bu benim çözümümdü:

sudo nano /etc/network/interfaces

ve (ağınızı değiştirerek) aşağıdakileri yapıştırın # The primary network interface:

auto enp0s25
iface enp0s25 inet static
address 192.168.0.16
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 8.8.4.4 8.8.8.8

Ubuntu ifconfig -a16.04 veya ip address18.04+ sürümlerinde Terminal komutunu kullanarak doğru arayüz adını alabilirsiniz.

Sanal Makinenizi kapatın ve ardından !!! Ağ ayarlarına gidin ve MAC adresini yenile düğmesine birkaç kez tıklayın :)

görüntü tanımını buraya girin

VM'nizi başlatın ve internet edinmelisiniz!

GÜNCELLEME 20.02.2019

Ubuntu 18.04+ için bu dosyayı düzenlemeniz gerekir

/etc/netplan/50-cloud-init.yaml

network:
    ethernets:
        enp0s3:
            addresses: [192.168.0.55/24]
            gateway4: 192.168.0.1
            dhcp4: no
            nameservers:
              addresses: [1.1.1.1,8.8.8.8]
            optional: true
    version: 2

2
Harika teşekkürler, takdir ediyorum. Şimdi problemsiz bir şekilde çalışıyor gibi görünüyor. Şu anda çok sağlam!
TeeStar,

dns-nameserversDüzeltmeye ek olarak, bu düzeltmeyi kullanmak zorunda kaldım: askubuntu.com/questions/574569/… Servis Sağlayıcım monkeybrains.net.
BSalita,

56

Statik IP adresini yukarıda verilen cevaplarda olduğu gibi ayarlamak işe yarar, ancak eski IP adresi ayarını temizlemek ve daha sonra networking.service komutunu yeniden başlatmak gerekir:

sudo ip addr flush enp0s25
sudo systemctl restart networking.service

Sonra doğru olduğunu doğrulayın:

ip add

2
Floş, eski adresin arayüzde bulunmasını önlemek için gerekliydi (temelinde ip addr). Gerçi systemctl yeniden başlatma, çok çalışır ifdownve ifupdaha seçici çalışacak arabirimde.
RichVel

2
thx @Grant. floş ekleme bu işi yaptı
Paweł Madej

3
Ubuntu 16.04 ve daha yeni floşlarda gereklidir!
Diego Duarte

5

sudo vim /etc/network/interfaces

    auto lo
    iface lo inet loopback
    auto eth0
    iface eth0 inet static
    address 192.168.1.10
    gateway 192.168.1.1
    netmask 255.255.255.0
    dns-nameservers 8.8.8.8

sudo ifdown eth0 && sudo ifup eth0


9
Merhaba @ lanni654321, belki de cevabınızı düzenlemeli ve birkaç kelime eklemelisiniz, ne yaptığınızı ve nedenini kısaca açıklamalısınız? bence cevabınızı daha da faydalı kılacak, ne düşünüyorsunuz?
Tshilidzi Mudau 14:16

5
# interfaces(5) file used by ifup(8) and ifdown(8)
# auto lo
# iface lo inet loopback
auto enp2s0 
iface enp2s0 inet static
    address 172.16.9.124
    netmask 255.255.240.0
    gateway 172.16.0.9
dns-nameservers 8.8.8.8

1
ifcace 5. sıradaki iface olmalı
twoleggedhorse

@twoleggedhorse: Cevap yazım hatası düzeltildi, ancak #ilk satırda birkaç tane eklemek zorunda kaldım çünkü boşluk bırakmayan en az 6 karakter değiştirmeden bir düzenleme yapamazsınız
Andrei Rînea

3

Ben de aynı problemi yaşadım ve çözüm en azından benim için basitçe ... oldu.

auto ens160
iface ens160 inet static
address 172.31.0.164/22
netmask 255.255.252.0
gateway 172.31.0.2
network 172.31.0.0
broadcast 172.31.3.255
dns-nameservers 172.31.0.21 172.31.0.18

#Add internal route
up route add -net 172.16.168.0/21 gw 172.31.0.20 dev ens160

Ayrıca, ağ arabiriminin adı ile boş bir dosya oluşturun:

~$ touch /etc/network/interfaces.d/ens160

İşe yarıyor...


2

Aynı sorunu yaşadım ve bu benim çözümüm: Dosyanın sonundaki tüm boş satırları kaldırın /etc/network/interface.


0

Ubuntu makinelerimde statik IP'ler ayarlarım ve yönlendiricimi kullanarak IP adresini atayabileceğimi fark ettim. Bu en basit çözüm olabilir. Yönlendiricinize giriş yapın, bağlı cihazları bulun ve IP adresini buraya atayın.


0

Sunucunuz eski IP'yi ve yeni atanmış IP'yi gösteriyorsa, sunucunuzu yeniden başlatmanız yeterlidir. Eski IP'yi otomatik olarak temizler ve yenisini devam ettirir.
Sunucunuzu yeniden başlatmak istemiyorsanız, bu komutu kullanın:


sudo ip addr flush <your-interface-here>


0

Makine önyüklenirken / yeniden başlatıldığında ağ arayüzünüzün kurulup kurulmadığını görmek için bu basit komutları çalıştırın.

grep "auto" /etc/network/interfaces

Standart çıktıya hiçbir satır yazdırılmazsa, /etc/network/interfacesbir metin editörüyle (vi, nano, sed) açın ve umarım aşağıdaki resme benzer bir şeyler görürsünüz.

Varsayılan / etc / network / interfaces dosyası

Açıkça görüldüğü grepüzere, terminal penceresine herhangi bir satır döndürmediyse, / etc / network / arayüzlerinizin formatı hiçbir şekilde birbirine benzemez. :-) Ancak otomatik çizgilerin formatını takip edin .

auto lo
(Loopback configuration follows)
.
.
.

auto enp0s3
(primary interface configuration follows)
.
.
.

====================

Şimdi, makinende .

auto yourInteraceNameHere
(your interface configuration follows)
.
.
.

Hangi arayüz adlarının mevcut olduğunu bilmiyor musunuz? Bu komutu çalıştır.

ifconfig -a

Aşağıdaki komut sadece ağ arayüzlerinin isimlerini döndürecektir.

ifconfig -a | grep encap | awk {'print $1'}

görüntü tanımını buraya girin

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.