Bagaimana cara menemukan alamat ip internal saya?

Saya telah menginstal Ubuntu server 12.04, jadi saya tidak memiliki GUI. Ketika saya melakukan perintah ifconfig, saya tidak dapat menemukan alamat IP internal saya. Ia mengatakan inet addr: 127.0.0.1.

Berikut adalah output dari 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)

berikut adalah isi dari etc / network / interfaces:

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

Jika seseorang dapat mengedit ini untuk saya, konten etc/network/interfaces harus berada pada baris terpisah.

Output dari host askubuntu.com adalah:

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

Saya mengatur owncloud dan webmin beberapa bulan yang lalu dan menggunakannya selama sebulan tanpa masalah. Saya pikir listrik padam suatu hari 2 bulan yang lalu dan saya tidak pernah menyalakan server kembali sampai kemarin. Saya belum melakukan apa pun yang akan mempengaruhi pengaturan internet jadi saya tidak yakin mengapa itu tidak berfungsi lagi. Sejauh topologi jaringan saya berjalan, saya memiliki kartu jaringan pci-E untuk pc. Saluran ethernet beralih dari kartu jaringan ke sakelar, dan kemudian ke modem/router dari sana.

hostname -I

Ini akan memberi Anda hanya alamat ip tanpa informasi tambahan.

Perintah ini akan memberi tahu Anda semua info jaringan

ip add

atau

ifconfig -a

Jika seperti yang Anda katakan itu hanya memberi Anda 127.0.0.1 maka ada dua opsi:

  1. Kartu jaringan Anda tidak terpasang atau tidak dikenali oleh sistem

  2. Server DHCP jaringan Anda tidak runnning atau tidak terhubung

Inilah yang saat ini saya rekomendasikan:

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

Keuntungan dari perintah itu adalah Anda tidak perlu tahu antarmuka mana yang Anda gunakan (eth0? eth1? atau mungkin wlan0?), Anda tidak perlu memfilter alamat localhost, atau alamat Docker, atau terowongan VPN, dll. dan Anda akan selalu mendapatkan alamat IP yang saat ini digunakan untuk koneksi Internet pada saat itu (penting ketika misalnya Anda terhubung dengan ethernet dan wifi atau melalui VPN dll.).

Ini akan menguji tidak hanya bahwa Anda memiliki IP yang benar dikonfigurasi pada beberapa antarmuka (seperti dengan parsing output ifconfig) tetapi juga Anda memiliki tabel perutean yang dikonfigurasi untuk menggunakannya dengan benar.

Saya menemukan ide itu di jawaban inioleh Collin Anderson.

Saya menggunakannya dalam internalip script di koleksi skrip saya di GitHub, yang dapat Anda instal dengan:

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

dan gunakan sebagai:

internalip

atau:

internalip TARGET

dan Anda akan mendapatkan alamat IP Anda yang akan digunakan untuk menghubungkan dengan alamat IP TARGET. Target default adalah 8.8.8.8 yang merupakan Resolver DNS Publik Google dan default yang bagus untuk Internet.

Tetapi jika Anda menjalankannya dengan IP yang berbeda:

internalip 127.2.3.4

Maka Anda akan mendapatkan:

127.0.0.1

karena itu adalah alamat IP Anda yang akan digunakan untuk menghubungkan dengan 127.2.3.4 pada antarmuka loopback. Ini berguna ketika target Anda berada di LAN, VPN atau jaringan khusus lainnya, dalam hal ini beberapa IP lain dapat digunakan untuk koneksi daripada IP default untuk menjangkau Internet.

IP eksternal

Untuk memeriksa Anda eksternal Alamat IP (yang dilihat server di Internet saat Anda terhubung dengannya - yang mungkin berbeda dari alamat IP internal yang dijelaskan di sini) lihat jawaban ini.

Saya pikir perlu disebutkan bahwa menjalankan ifconfig bersama dengan-a option akan menampilkan semua antarmuka apakah antarmuka memiliki IP atau tidak.

menjalankan ifconfig saja, hanya akan menampilkan antarmuka dengan IP yang ditetapkan.

Berikut adalah trik bagus yang bisa anda gunakan untuk menampilkan hanya IP menggunakan Perl.

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

Kartu jaringan Anda diakui oleh sistem, bahwa mengapa yang muncul eth0 dan eth1

berikut adalah cara cepat untuk menetapkan IP ke antarmuka Anda, gunakan IP/Subnet yang valid.

 ifconfig eth0 192.168.1.200/24 up 

maka kita perlu menambahkan rute default

route add default gw 192.168.1.1

Terbaik,

Perintah ini akan menampilkan semua alamat IP untuk satu perangkat:

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

Ini akan mencetak satu atau dua baris output. Yang pertama adalah alamat inet/IPv4 dan yang lainnya adalah inet6/IPv6 jika sistem Anda dikonfigurasi untuk mendukung ini.

Dalam kasus ifconfig perintah tidak menampilkan alamat IP, ada cara yang sangat sederhana dan mudah untuk mengetahui alamat IP dari mesin Ubuntu melalui GUI. Ikuti langkah-langkah di bawah ini:

Klik ikon jaringan di area notifikasi dan klik Informasi Koneksi.Network icon options

Ini menampilkan jendela yang memiliki beberapa informasi, termasuk alamat IP.IP address information

Ada banyak jawaban bagus di sini untuk dipilih, tapi saya pikir saya akan menunjukkan facter yang biasanya, tetapi belum tentu digunakan dengan wayang untuk mengumpulkan berbagai fakta tentang sistem. Keuntungan utama dari facter adalah bahwa hal itu memberikan output bersih bagus yang menghemat semua manipulasi dengan grep, sed, awk, cut, perl, dll. Ini tidak akan memberi tahu Anda Antarmuka mana yang Anda minati, tetapi jika Anda tahu itu, maka berikut ini memberi Anda IP tanpa cruft lain untuk dibersihkan:

facter ipaddress_eth0 

perintah ip

Berikut adalah variasi pada ip addr cara.

ip memiliki -o pilihan yang memungkinkan menempatkan semua informasi pada satu baris-ini berguna untuk parsing dengan alat-alat seperti awk atau perl. Dalam kombinasi dengan -4 Opsi, kita hanya akan melihat alamat IPv4. Dengan demikian, output akan menjadi sesuatu seperti ini ( catatan-ganti wlan7 dengan antarmuka yang ingin Anda periksa):

$ 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

Seperti yang Anda lihat, alamat IP adalah kolom/kata ke-4 dalam output. Selebihnya, adalah latihan parsing sederhana melalui alat pilihan Anda. Di sini, saya menggunakan python:

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

Hal yang sama, hanya dengan string di sini <<< dan substitusi perintah $()

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

Secara pribadi, saya telah ini disimpan sebagai fungsi yang bagus di saya ~/.bashrc jadi kurang mengetik dilakukan.

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

Versi Perl dan Ruby sedikit lebih pendek:

$ 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

Jika Anda terbiasa menggunakan alat analisis jaringan, Anda mungkin tahu bahwa untuk mendapatkan alamat ip anda, yang perlu Anda lakukan hanyalah menghapus cache browser, memulai Wireshark capture pada antarmuka tertentu, dan mencari http GET paket sedang dikirim. Kolom tujuan akan menampilkan alamat ip Anda

Ada banyak info bagus di atas. Aku tetap sederhana seperti begitu:

# 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)"}

Penggunaan sampel:

> ipinfolocal    IP  =>  192.168.1.139external IP  =>  76.88.85.95

'ifconfig / grep-G" 192.168.*.255 "/ cut-d '- f10 'bisa mendapatkan IP, atau hanya' hostname-I / cut-d '' - f1

@ AvatarParto itu untuk antarmuka yang menghadapi akses publik, pertanyaan ini tentang jaringan internal…

Karena penasaran, apa yang dimiliki '/ etc / network / interfaces ’ di dalamnya?

Saya tahu cara menggunakan perintah change directory, tetapi saya tidak tahu cara membuat daftar file di sana, Bagaimana saya melakukan ini?

‘ls’ akan daftar file dalam direktori. ‘ls-l’ akan memberikan daftar rinci. Untuk daftar isi direktori tertentu, ls-l / etc / network'. Untuk mengubah ke direktori dan daftar isi ' cd / etc / network ;ls-l. Untuk membaca isi ‘etc / network / interfaces (ini adalah file)sudo pico /etc/network/interfaces’. (‘pico adalah editor teks ringan - baik untuk membaca & mengedit dasar, dan kurang menakutkan daripadavi’.)