Dahili IP adresimi nasıl bulurum?

158

Ubuntu sunucum 12.04 kurulu, dolayısıyla GUI'm yok. İfconfig komutunu yaptığımda, dahili IP adresimi bulamıyorum. Inet addr diyor: 127.0.0.1.

İşte ifconfig -a çıktısı:

eth0   link encap:Ethernet  HWaddr 00:06:4f:4a:66:f0
    BROADCAST MULTICAST  MTU:1500  Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth1   link encap:Ethernet  HWaddr 00:16:ec:05:c8:9c 
    BROADCAST MULTICAST  MTU:1500  Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo     Link encap:Local Loopback
    inet addr 127.0.0.1  Mask:255.0.0.0
    inet6 addr:  ::1/128 Scope:Host
    UP LOOPBACK RUNNING MTU:65536  Metric:1
    RX packets:1800 errors:0 dropped:0 overruns:0 frame:0
    Tx packets:1800 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:143896 (143.b KB)  TX bytes:143896 (143.8 KB)

, etc / network / interfaces'in içeriği:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

Biri bunu benim için düzenleyebilirse, etc / network / interfaces'in içeriği ayrı satırlarda olmalıdır.

Ana makine askubuntu.com çıktısı:

;; connection timed out; no servers could be reached.

Birkaç ay önce owncloud ve webmin kurdum ve bir ay boyunca bunları sorunsuz kullanıyorum. Sanırım güç 2 ay önce bir gün patladı ve ben sunucuyu asla düne kadar açmamıştım. İnternet kurulumunu etkileyebilecek hiçbir şey yapmadım. Bu yüzden artık neden çalışmadığından emin değilim. Ağ topolojim devam ettiğinde, bilgisayar için bir pci-e ağ kartım var. Ethernet hattı ağ kartından bir anahtara ve buradan modem / yönlendiriciye gider.

    
sordu Cam Jones 07.03.2014 14:20

8 cevap

156

Bu komutlar size tüm ağ bilgilerini söyleyecektir

ifconfig -a

veya

ip addr show

Söylediğiniz gibi sadece 127.0.0.1 verirseniz, o zaman iki seçenek vardır:

  1. Ağ kartınız sistem tarafından eklenmemiş veya tanınmadı

  2. Ağınız DHCP sunucunuz çalışmıyor veya bağlı değil

verilen cevap kamil 07.03.2014 14:32
166

Şu anda önerdiğim şey:

ip route get 8.8.8.8 | awk '{print $NF; exit}'

Bu komutun avantajı, hangi arabirimi kullandığınızı (eth0? eth1? veya belki wlan0?) bilmek zorunda kalmamanızdır, localhost adreslerini veya Docker adreslerini veya VPN'yi filtrelemeniz gerekmez. Tünelleri vb. ve o anda her an şu anda İnternet bağlantıları için kullanılan IP adresini alacaktır (örneğin, hem ethernet ve hem de VPN vb. ile bağlandığınızda önemli.).

Bu, yalnızca bazı arabirimlerde yapılandırılmış doğru bir IP'nizin ( ifconfig çıktısını ayrıştırmak gibi) yanı sıra doğru şekilde kullanmak üzere yapılandırılmış yönlendirme tablosuna sahip olduğunuzu da sınayacak.

Bu fikri bu yanıtı Collin Anderson .

Bunu internalip komut dosyasında kullanıyorum //github.com/rsp/scripts#readme">KimHub'da komut dosyası koleksiyonu , yükleyebileceğiniz :

wget https://rawgit.com/rsp/scripts/master/internalip
chmod a+x internalip

ve aşağıdaki gibi kullan:

internalip

veya

internalip TARGET

ve TARGET IP adresiyle bağlantı kurmak için kullanılacak IP adresinizi alacaksınız. Varsayılan hedef, Google'ın genel DNS çözümleyicisi olan 8.8.8.8 'si ve İnternet.

Ancak farklı bir IP ile çalıştırırsanız:

internalip 127.2.3.4

Sonra alacaksın:

127.0.0.1

Çünkü bu, geri döngü arabiriminde 127.2.3.4 ile bağlanmak için kullanılacak IP adresinizdir. Hedefiniz bir LAN, VPN veya başka bir özel ağda olduğunda faydalıdır, bu durumda İnternet'e erişmek için varsayılan IP'den başka bir IP bağlantısı kullanılabilir.

Harici IP

Harici IP adresinizi (İnternet'teki sunucuların bunlara bağlandığınızda gördükleri - burada açıklanan dahili IP adresinden farklı olabileceğini) kontrol etmek için bkz. bu cevap .

    
verilen cevap rsp 03.04.2015 04:49
131
hostname -I

Bu, herhangi bir ekstra bilgi olmadan sadece ip adresini verecektir.

    
verilen cevap Sarath Somana 25.08.2015 08:29
18

Icon ile birlikte çalışan bir ifconfig'in, arabirimin bir IP'si olsun ya da olmasın tüm arabirimleri göstereceğinden bahsetmeye değer olduğunu düşünüyorum.

sadece ifconfig'i çalıştıran, sadece atanmış IP'leri olan arayüzleri görüntüler.

İşte Perl kullanarak sadece IP'leri görüntülemek için kullanabileceğiniz güzel bir numara.

# ifconfig | perl -nle'/dr:(\S+)/ && print '
192.168.1.100
127.0.0.1

Ağ kartınız sistem tarafından tanınır, bu yüzden neden eth0 ve eth1 görünür?

Burada, ara yüzünüze IP atamanın hızlı bir yoludur, buna göre geçerli IP / Alt Ağı kullanın.

 ifconfig eth0 192.168.1.200/24 up 

sonra varsayılan bir rota eklememiz gerekiyor

route add default gw 192.168.1.1

En iyisi,

    
verilen cevap user1007727 07.03.2014 22:17
8

Bu komut, tek bir cihaz için tüm IP adreslerini gösterecektir:

dev=eth0
ip addr show $dev | awk '/inet/ {print }' | cut -d/ -f1

Bir veya iki satırlık çıktı yazdıracaktır. Birincisi, sisteminiz bunu destekleyecek şekilde yapılandırılmışsa, inet / IPv4 adresi, diğeri ise inet6 / IPv6'dır.

    
verilen cevap Aaron Digulla 24.10.2014 16:14
5

ifconfig komutu IP adresini göstermediyse, GUI aracılığıyla Ubuntu makinesinin IP adresini bulmanın çok basit ve kolay bir yolu vardır. Aşağıdaki adımları izleyin:

Bildirim alanındaki ağ simgesini tıklayın ve Bağlantı Bilgileri 'ni tıklayın.

Bu, IP adresi de dahil olmak üzere bazı bilgileri içeren bir pencere açar.

    
verilen cevap Ibungo 24.09.2015 15:09
1

Burada seçim yapmak için birçok iyi yanıt var, ancak işaret ettiğimi düşündüm. genellikle, ancak sistem hakkında çeşitli gerçekleri toplamak için kukla ile birlikte kullanılmamalıdır. Facter'in ana avantajı, grep , sed , awk , cut , perl , vb. İle tüm manipülasyonu koruyan güzel temiz çıktı vermesidir. İlgilendiğiniz arabirim, ancak bunu biliyorsanız, aşağıdakileri temizlemeniz için başka bir engel olmadan IP'yi verir:

facter ipaddress_eth0 
    
verilen cevap mc0e 28.11.2015 16:11
1

ip komutu

İşte ip addr yolundaki bir varyasyon.

ip , tüm bilgileri tek satırda kaydetmeyi sağlayan -o seçeneğine sahiptir. Bu, awk veya perl gibi araçlarla ayrıştırmak için kullanışlıdır. % Co_de% seçeneği ile birlikte, sadece IPv4 adreslerini göreceğiz. Böylece çıktı böyle bir şey olurdu (not - wlan7'yi kontrol etmek istediğiniz arayüzle değiştirin):

$ ip -4 -o addr show wlan7
3: wlan7    inet 192.168.0.78/24 brd 192.168.0.255 scope global dynamic wlan7\       valid_lft 85654sec preferred_lft 85654sec

Gördüğünüz gibi, IP adresi çıktıda 4. sütun / kelime. Geri kalan, seçtiğiniz araçla basit ayrıştırma egzersizi . Burada python kullanıyorum:

ip -4 -o addr show wlan7 | python -c "import sys;print sys.stdin.readlines()[0].split()[3]" 

Aynı şey, yalnızca burada -4 dizesi ve komut ikamesi <<<

ile
python -c "import sys;print sys.stdin.readlines()[0].split()[3]"  <<< $(ip -4 -o addr show wlan7)

Kişisel olarak, bu $() 'limde daha az yazım yapıldığı için güzel bir işlev olarak kaydettim.

wlan_ip() {
    ip -4 -o addr show wlan7 | python -c "import sys;print sys.stdin.readlines()[0].split()[3]" 
} 

Perl's ve Ruby'nin sürümü biraz daha kısa:

$ ip -4 -o addr show  wlan7 | perl -lane 'print $F[3]'                         
192.168.0.78/24

$ ip  -4 -o addr show wlan7 | ruby -n -e 'print $_.split()[3]'                 
192.168.0.78/24

Wireshark

Ağ analizi araçlarını kullanmaya alışkınsanız, muhtemelen ip adresinizi almanız gerektiğini unutmayın, yapmanız gereken tek şey tarayıcı önbelleğini temizlemektir, Wireshark yakalama işlemini belirli bir arayüzde başlatır ve http ~/.bashrc değerini arar. iletilen paketler. Hedef sütun ip adresinizi gösterecektir

    
verilen cevap Sergiy Kolodyazhnyy 04.09.2016 20:32

Etiketlerdeki diğer soruları oku