Apa itu ::: di Alamat Lokal output netstat?


37

Ini adalah output dari netstat -tulpn yang saya dapatkan:

tcp        0      0 127.0.0.1:2208              0.0.0.0:*                   LISTEN      2055/hpiod
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      2077/cupsd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      2138/sendmail: acce
tcp        0      0 127.0.0.1:2207              0.0.0.0:*                   LISTEN      2060/python
tcp        0      0 0.0.0.0:735                 0.0.0.0:*                   LISTEN      1825/rpc.statd
tcp        0      0 :::111                      :::*                        LISTEN      1781/rpcbind
tcp        0      0 :::80                       :::*                        LISTEN      2624/httpd
tcp        0      0 :::22                       :::*                        LISTEN      2096/sshd
udp        0      0 0.0.0.0:32768               0.0.0.0:*                               2398/avahi-daemon:
udp        0      0 0.0.0.0:68                  0.0.0.0:*                               1581/dhclient
udp        0      0 0.0.0.0:729                 0.0.0.0:*                               1825/rpc.statd
udp        0      0 0.0.0.0:732                 0.0.0.0:*                               1825/rpc.statd
udp        0      0 0.0.0.0:5353                0.0.0.0:*                               2398/avahi-daemon:
udp        0      0 0.0.0.0:631                 0.0.0.0:*                               2077/cupsd
udp        0      0 :::32769                    :::*                                    2398/avahi-daemon:
udp        0      0 :::684                      :::*                                    1781/rpcbind
udp        0      0 :::5353                     :::*                                    2398/avahi-daemon:
udp        0      0 :::111                      :::*                                    1781/rpcbind

Saya ingin tahu: apa arti dari :::Alamat Lokal? Dan apa 0.0.0.0:*dan :::*di Alamat Asing?


3
Anda dapat menghilangkan angka nol di IPv6, sehingga hanya meninggalkan titik dua.
Louis

Sebenarnya saya berbicara terlalu cepat. Saya tidak tahu mengapa ada tiga titik dua bukannya dua, +1. Saya kira yang terakhir menunjukkan port.
Louis

Jawaban:


22

Seperti yang disebutkan oleh banyak jawaban lainnya, :: mewakili semua nol, dan kemudian netstat dapat menunjukkan titik dua setelah alamat, maka Anda mendapat tiga titik dua.

Apa yang tidak saya lihat dalam jawaban ini adalah tanggapan terhadap pertanyaan tentang apa artinya itu (dalam hal ini).

Dalam kasus netstat, :: (di IPv6) atau 0.0.0.0 (di IPv4) pada dasarnya berarti "apa saja".
Jadi, perangkat lunak mendengarkan pada port TCP 80 (port HTTP) pada salah satu alamat.

Jika Anda memiliki beberapa antarmuka kartu jaringan (yang Anda lakukan, seperti yang akan saya jelaskan sebentar lagi), Anda dapat mendengarkan hanya pada alamat tertentu. Misalnya, dengan beberapa perangkat lunak, Anda dapat melakukan sesuatu seperti membuat server HTTP Anda mendengarkan pada kartu jaringan yang menggunakan Ethernet kabel, tetapi tidak menanggapi kartu jaringan yang menggunakan jaringan nirkabel. Jika Anda melakukannya, maka komputer Anda mungkin melakukan sesuatu seperti mendengarkan pada IPv4 192.0.2.100:80 (atau IPv6 2001: db8: abcd :: 1234: 80).

Tapi, karena Anda mendengarkan "::: 80", komputer Anda tidak mendengarkan lalu lintas port 80 hanya pada satu alamat IP yang masuk, Anda mendengarkan lalu lintas port 80 pada alamat IPv6 apa pun .

Mengapa Anda ingin pilih-pilih tentang antarmuka yang Anda dengarkan? Nah, salah satu cara saya menggunakan kemampuan ini, kadang-kadang, adalah membuat komputer mendengarkan antarmuka loopback. (Ingat ketika saya mengatakan Anda memiliki beberapa antarmuka kartu jaringan ... ini adalah salah satu alasan saya mengatakan itu. Saya kira Anda memiliki koneksi jaringan fisik yang nyata, dan bahwa Anda juga memiliki antarmuka loopback. Itu adalah pengaturan paling umum untuk kebanyakan jenis komputer akhir-akhir ini.) Saya melakukannya dengan tunneling SSH. Lalu saya bisa melakukan sesuatu seperti membuat penampil VNC lokal terhubung ke ujung lokal dari terowongan SSH. Dengan meminta terowongan SSH mendengarkan pada antarmuka loopback, saya tidak perlu khawatir bahwa terowongan SSH mungkin mendengarkan lalu lintas yang masuk dari salah satu antarmuka jaringan fisik. Begitu,

Dalam beberapa kasus, 0.0.0.0 atau :: pada dasarnya berarti alamat "tidak ditentukan", sebagaimana ditentukan oleh RFC 4291 bagian 2.5.2yang mengatakan "Ini menunjukkan tidak adanya alamat." Saya kadang-kadang melihat ini ketika perangkat lunak mencoba merujuk ke alamat "tidak valid" (seperti jika komputer tidak memiliki alamat yang ditetapkan, mungkin), di mana tidak ada alamat khusus untuk ditampilkan. Namun, dalam kasus ini, :: atau 0.0.0.0 merujuk ke alamat "tidak dikenal". Itulah sebabnya semua port MENDENGARKAN menunjukkan "tidak dikenal". Untuk koneksi yang sudah mapan, Anda tahu siapa ujung jarak jauhnya, karena Anda berkomunikasi dengan mereka. Untuk koneksi "MENDENGARKAN", Anda mendengarkan percakapan baru. Lalu lintas itu bisa datang, mungkin di mana saja di dunia. Lalu lintas masuk dapat berasal dari alamat apa pun. Dan, cara nestat menampilkannya adalah dengan menentukan alamat semua nol. Karena tidak ada alamat khusus untuk digunakan,

Saya hanya akan menyelesaikan dengan memperhatikan bahwa perangkat lunak mendengarkan pada semua antarmuka jaringan adalah hal yang sangat umum. Beberapa perangkat lunak dapat dikonfigurasikan untuk hanya mendengarkan alamat Internet tertentu, atau mungkin kartu jaringan tertentu. Dan itu bisa sedikit lebih aman, karena dengan demikian perangkat lunak tidak mendengarkan di mana tidak ada lalu lintas yang valid diharapkan. Itu mungkin membatasi kemampuan untuk menyerang. Namun, banyak perangkat lunak tidak memiliki opsi seperti itu, atau opsi semacam itu agak terkubur / disembunyikan. Jadi, mendengarkan pada semua kartu jaringan bukanlah hal yang sangat mengerikan. Itu cukup umum. Dan, jika Anda ingin mencegah perangkat lunak dari menerima lalu lintas pada port jaringan tertentu, ada cara lain untuk mencapai itu, termasuk memblokir lalu lintas yang tidak diinginkan dengan firewall. Jika Anda melakukannya, firewall dapat memblokir lalu lintas, tetapi server (web) mungkin masih mendengarkan lalu lintas di antarmuka jaringan itu. Dalam hal ini, server tidak akan pernah mendapatkan lalu lintas di antarmuka itu, tetapi netstat masih akan melaporkan bahwa server mendengarkan (untuk lalu lintas yang tidak akan pernah mencapai server itu). Melihat laporan netstat bahwa perangkat lunak server mendengarkan pada semua antarmuka adalah sangat umum, dan itu bukan sesuatu yang perlu diwaspadai.

Terakhir, saya akan menyebutkan bahwa pertanyaan ini, dan jawaban ini, tidak spesifik untuk Linux. (Saya menyebutkan ini karena saya memang melihat tag "Linux" pada pertanyaan ini.) Parameter baris perintah yang ditunjukkan, dan contoh output yang ditampilkan, mungkin berasal dari Linux, dan sistem operasi yang berbeda mungkin menampilkan hal-hal yang sedikit berbeda. Namun, tentang topik :: dan 0.0.0.0, cara kerja netstat dalam hal ini identik pada mesin yang menjalankan BSD atau Microsoft Windows (dan mungkin banyak sistem lain).


8

Seperti yang orang lain katakan, ini adalah notasi IPv6 alami untuk konteks ini.

Mari mengutip dan menafsirkan standar yang relevan:

::: * == 0000.0000.0000.0000.0000.0000.0000.0000: *

http://tools.ietf.org/html/rfc5952#section-4 mengatakan bahwa alamat IPv6 kanonik (bukan hanya singkatan) adalah:

  • ditulis dalam hex dengan karakter a-fhuruf kecil.
  • dikelompokkan setiap 2 byte oleh :
  • memimpin 0's HARUS dihapus. 0000menjadi 0.
  • urutan terlama dari :0:0:0: HARUS dikonversi ke ::. Hanya bisa dilakukan sekali, atau akan menimbulkan ambiguitas.

Jadi :::*artinya:

  • 0000:0000:0000:0000:0000:0000:0000pada port apa saja ( :*)
  • == 0:0:0:0:0:0:0(tertinggal 0 penghapusan)
  • == ::(kontraksi nol berturut-turut)

0000.0000.0000.0000.0000.0000.0000.0000: * == alamat yang tidak ditentukan

http://tools.ietf.org/html/rfc4291#section-2.5.2 mendefinisikan "alamat yang tidak ditentukan":

Alamat 0: 0: 0: 0: 0: 0: 0: 0: 0 disebut sebagai alamat yang tidak ditentukan. Itu tidak boleh ditugaskan ke simpul apa pun. Ini menunjukkan tidak adanya alamat. Salah satu contoh penggunaannya adalah di bidang Alamat Sumber dari setiap paket IPv6 yang dikirim oleh host inisialisasi sebelum mempelajari alamatnya sendiri.

Alamat yang tidak ditentukan tidak boleh digunakan sebagai alamat tujuan paket IPv6 atau dalam header Routing IPv6. Paket IPv6 dengan alamat sumber yang tidak ditentukan tidak boleh diteruskan oleh router IPv6.

yang membuatnya menjadi pilihan yang baik untuk kolom N / A seperti dalam kasus ini.

Begitu ::juga tidak localhost , di mana dokumen yang sama mengatakan di ::1.

Pada netstat1.60, protokol pada output membaca tcp6dan udp6untuk IPv6, yang menunjukkan lebih baik apa yang sedang terjadi, misalnya:

tcp6       0      0 :::22                   :::*                    LISTEN      1201/sshd
udp6       0      0 :::5353                 :::*                                1449/avahi-daemon:

Lihat juga:


3

Itu merujuk ke alamat IPv6. Dalam IPv6 kita dapat menyingkat urutan 0menggunakan ::pengubah

Sebagai contoh,

0: 0: 0: 0: 0: 0: 0: 0: 1

dapat ditulis sebagai

:: 1

Tetapi ada aturan khusus yang harus diikuti dalam hal ini yang dapat Anda lihat di setiap tutorial Ipv6


2

:: 1 adalah localhost untuk IPv6, seperti 127.0.0.1 untuk IPv4.

::: * adalah versi pendek 0: 0: 1: * (IPv6 0: 0: 0, port *), itu seperti IPv4 0.0.0.0:*. Kedua hal ini di kolom alamat asing berarti bahwa tidak ada kolom alamat asing. Dalam hal soket pendengaran jelas bahwa tidak ada (belum) alamat asing yang terhubung. Dalam hal soket udp Anda biasanya tidak menghubungkan alamat asing, jadi ini juga terdaftar dengan 0.0.0.0:*.


Kepada para pemilih: dapatkah Anda berkomentar?
Werner Henze


0

Saya ingin tahu: apa artinya ::: di Alamat Lokal?

Versi linux dari netstat menggunakan notasi: di mana alamat IP ditampilkan telanjang *.

Jadi ::: 111 berarti IP :: dan port 111.

:: adalah alamat IPv6 dalam bentuk terkondensasi menggunakan aturan bahwa proses nol dapat diganti dengan ::. Ditulis secara penuh sama dengan 0000: 0000: 0000: 0000: 0000: 0000: 0000: 0000.

Seperti halnya IPv4, alamat semua nol (dikenal sebagai alamat yang tidak ditentukan) digunakan sebagai nilai placeholder. Dalam kasus alamat lokal itu berarti bahwa soket mendengarkan semua antarmuka IPv6 (dan mungkin semua antarmuka IPv4 juga tergantung pada opsi soket yang tidak ditampilkan oleh netstat).

Dan apakah 0.0.0.0:: dan ::: * di Alamat Luar Negeri?

Ini berarti soket tidak terikat ke alamat asing tertentu. :: atau 0.0.0.0 menunjukkan alamat IP yang tidak ditentukan (masing-masing untuk IPv4 atau IPv6) dan * menunjukkan port yang tidak ditentukan.

Untuk TCP ini hanya berlaku untuk soket yang mendengarkan koneksi masuk. Ketika "accept" dipanggil untuk menerima koneksi, soket terpisah dibuat dengan IP dan port jarak jauh yang ditentukan.

Untuk UDP tidak ada konsep menerima koneksi. Aplikasi yang terikat pada soket UDP dengan alamat asing ::: * menggunakan panggilan API "recvfrom" untuk menerima paket dan menentukan dari mana mereka berasal dan panggilan API "sendto" untuk mengirim paket ke alamat tertentu.

* Notasi ini sangat disayangkan karena itu berarti string yang ditampilkan berarti hal yang berbeda di netstat ke tempat lain. Dalam sebagian besar konteks 3FFE :: 1234: 5678 berarti alamat IP 3FFE: 0000: 0000: 0000: 0000: 0000: 1234: 5678 tetapi dalam linux netstat output itu berarti alamat IP 3FFE: 0000: 0000: 0000: 0000: 0000 : 0000: 1234 dan port 5678. Versi windows netstat sebaliknya mengelilingi alamat IPv6 dalam tanda kurung untuk menghindari ambiguitas.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.