Dahili ıp adresimi nasıl bulabilirim?

Ubuntu server 12.04 yüklü, bu yüzden guı'm yok. İfconfig komutunu yaptığımda dahili IP adresimi bulamıyorum. Inet addr: 127.0.0.1 yazıyor.

İşte çıktı ifconfig -a:

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)

işte etc/network/interfaces içeriği:

# The loopback network interfaceauto loiface lo inet loopback# The primary network interfaceauto eth0iface eth0 inet dhcp

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

Ana bilgisayarın çıktısı askubuntu.com öyleydi:

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

Birkaç ay önce owncloud ve webmin'i kurdum ve bir ay boyunca sorunsuz bir şekilde kullanıyordum. Sanırım 2 ay önce bir gün elektrik kesildi ve sunucuyu düne kadar hiç açmadım. İnternet kurulumunu etkileyecek hiçbir şey yapmadım, Bu yüzden neden artık işe yaramadığından emin değilim. Ağ topolojime gelince, pc için bir pcı-e ağ kartım var. Ethernet hattı ağ kartından bir anahtara ve oradan bir modem / yönlendiriciye gider.

hostname -I

Bu size herhangi bir ek bilgi olmadan sadece ıp adresi verecektir.

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

ip add

veya

ifconfig -a

Dediğiniz gibi size sadece 127.0.0.1 veriyorsa, iki seçenek vardır:

  1. Ağ kartınız bağlı değil veya sistem tarafından tanınmıyor

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

Şu anda tavsiye ettiğim şey bu:

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

Bu komutun avantajı, hangi arabirimi kullandığınızı bilmek zorunda olmamanızdır (eth0? eth1? ya da belki wlan0?), localhost adreslerini veya Docker adreslerini veya VPN tünellerini vb. Filtrelemenize gerek yoktur. ve her zaman alacaksın şu anda internet bağlantıları için kullanılan IP adresi o anda (örneğin hem ethernet hem de wifi ile veya VPN ile bağlandığınızda önemlidir.).

Bu, yalnızca bazı arabirimlerde yapılandırılmış doğru bir ıp'niz olduğunu test etmeyecektir (çıktıyı ayrıştırırken olduğu gibi ifconfig ayrıca, yönlendirme tablosunu doğru şekilde kullanacak şekilde yapılandırmış olmanız.

Bu fikri buldum bu cevaptarafından Collin Anderson.

Ben bunu ınternalıp komut dosyası içinde github'daki komut dosyaları koleksiyonum, hangi ile yükleyebilirsiniz:

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

ve olarak kullanın:

internalip

veya:

internalip TARGET

ve bağlanmak için kullanılacak IP adresinizi alacaksınız HEDEF IP adresi ile. Varsayılan hedef şudur: 8.8.8.8 hangisi Google'ın genel DNS çözümleyicisi ve İnternet için iyi bir varsayılan.

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

internalip 127.2.3.4

O zaman alacaksın:

127.0.0.1

çünkü bu, bağlanmak için kullanılacak IP adresinizdir 127.2.3.4 ile geri döngü arayüzünde. Hedefiniz bir LAN, VPN veya başka bir özel ağ üzerindeyken kullanışlıdır; bu durumda, ınternet'e ulaşmak için varsayılan ıp'den başka bağlantılar için başka bir IP kullanılabilir.

Harici IP

Kontrol etmek için dış IP adresi (internet'teki sunucuların onlara bağlandığınızda gördükleri - burada açıklanan dahili IP adresinden farklı olabilir) bkz. bu cevap.

İfconfig'i -a seçeneğiyle birlikte çalıştırmanın, arabirimin bir IP'si olup olmadığına bakılmaksızın tüm arabirimleri görüntüleyeceğini belirtmeye değer olduğunu düşünüyorum.

yalnızca ifconfig çalıştırıldığında, yalnızca IP adresleri atanmış arabirimler görüntülenir.

İşte Perl kullanarak yalnızca ıp'leri görüntülemek için kullanabileceğiniz güzel bir numara.

# ifconfig | perl -nle'/dr:(\S+)/ && print $1'192.168.1.100127.0.0.1

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

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

 ifconfig eth0 192.168.1.200/24 up 

o zaman varsayılan bir rota eklememiz gerekiyor

route add default gw 192.168.1.1

En iyi,

Bu komut, tek bir aygıtın tüm IP adreslerini gösterecektir:

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

Bir veya iki satır çıktı yazdırır. İlki ınet / IPv4 adresi, diğeri ise sisteminiz bunu destekleyecek şekilde yapılandırılmışsa ınet6 / ıpv6'dır.

Bu durumda, ifconfig komut IP adresini göstermedi, Ubuntu makinesinin IP adresini GUI aracılığıyla öğrenmenin çok basit ve kolay bir yolu var. Aşağıdaki adımları izleyin:

Tıklayın ağ simgesi bildirim alanında ve simgesine tıklayın Bağlantı Bilgileri.Network icon options

Bu, IP adresi de dahil olmak üzere bazı bilgilere sahip bir pencere açar.IP address information

Aralarından seçim yapabileceğiniz çok iyi cevaplar var, ama işaret edeceğimi düşündüm faktör bu genellikle, ancak sistemle ilgili çeşitli gerçekleri toplamak için kukla ile birlikte kullanılması zorunlu değildir. Facter'in en büyük avantajı, tüm manipülasyonlardan tasarruf etmenizi sağlayan güzel ve temiz bir çıktı vermesidir. grep, sed, awk, cut, perl, vb. Hangi arayüzle ilgilendiğinizi size söylemeyecektir, ancak bunu biliyorsanız, aşağıdakiler size temizlemek için başka bir yol olmadan IP'yi verir:

facter ipaddress_eth0 

ıp komutu

İşte bir varyasyon ip addr yol.

ip var -o tüm bilgileri tek bir satıra koymanıza izin veren seçenek - bu, aşağıdaki gibi araçlarla ayrıştırmak için kullanışlıdır awk veya perl. İle birlikte -4 seçenek, yalnızca IPv4 adreslerini göreceğiz. Böylece, çıktı böyle bir şey olacaktır (not - wlan7'yi kontrol etmek istediğiniz arayüzle değiştirin):

$ ip -4 -o addr show wlan73: 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ıdaki 4. sütun / kelimedir. Gerisi , basit ayrıştırma alıştırması seçtiğiniz aracı kullanarak. Burada python kullanıyorum:

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

Aynı şey, sadece burada dize ile <<< ve komut ikamesi $()

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

Şahsen, bunu benim için güzel bir işlev olarak kaydettim. ~/.bashrc yani daha az yazarak yapılır.

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

Perl 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ğ analiz araçlarını kullanmaya aşina iseniz, muhtemelen ıp adresinizi almak için yapmanız gereken tek şeyin tarayıcı önbelleğini temizlemek, belirli arabirimde Wireshark capture'ı başlatmak ve http'yi aramak olduğunu biliyorsunuzdur GET paketler iletiliyor. Hedef sütunu ıp adresinizi gösterecektir

Yukarıda birçok iyi bilgi var. Bu kadar basit tutuyorum:

# what your computer thinks its ip address isfunction iplocal() {  ip route get 8.8.8.8 | awk '{print $NF; exit}'    # 8.8.8.8 is google dns}# what the outside world thinks your ip address isfunction ipexternal() {  curl --silent http://checkip.amazonaws.com        # or:  http://ipinfo.io/ip}function ipinfo() {  echo "local    IP  =>  $(iplocal)"  echo "external IP  =>  $(ipexternal)"}

Örnek kullanım:

> ipinfolocal    IP  =>  192.168.1.139external IP  =>  76.88.85.95

‘ifconfig / grep -G "192.168.*.255 "| cut -d’ ’ -f10size IP'yi veya basitçehostname -I / cut -d’ ’ -f1’i alabilir

@AvatarParto Bunlar genel erişime bakan arayüzler içindir, bu soru iç ağlarla ilgilidir…

Meraktan` ‘/ etc / network / interfaces’ içinde ne var?

Dizini değiştir komutunu nasıl kullanacağımı biliyorum, ancak dosyaları bir kez orada nasıl listeleyeceğimi bilmiyorum, bunu nasıl yapardım?

‘ls’ bir dizindeki dosyaları listeler. ls -l' ayrıntılı bir liste verecektir. Belirli bir dizinin içeriğini listelemek için ls -l /etc/network’. Bir dizine geçmek ve cd / etc / network; ls -l içeriğini listelemek için. Etc/network/interfaces içeriğini okumak için (bu bir dosyadır) sudo pico /etc/network/interfaces. (‘pico’ hafif bir metin editörüdür - okuma ve temel düzenleme için iyidir ve vi den daha az korkutucudur.)