Saya tahu 127.0.0.1 ~ 127.255.255.254 adalah alamat IP loopback untuk sebagian besar sistem operasi modern, dan alamat IP ini dapat digunakan untuk merujuk ke komputer kita sendiri.
Tapi apa itu 0.0.0.0? Sepertinya itu juga merujuk ke komputer lokal, jadi apa bedanya ?
Dan, dapatkah Anda menjelaskan koneksi IP berikut untuk saya:
ip
ip-address
netstat
Jichao
sumber
sumber
::1
alamat loopback.Jawaban:
Satu-satunya hal adalah Anda tidak mengatakan "semua alamat harus memiliki akses" - yang dilakukan di firewall Anda dan / atau perangkat lunak server dan / atau lapisan keamanan lainnya seperti tcpwrappers.
0.0.0.0, dalam konteks ini, berarti "semua alamat IP pada mesin lokal" (pada kenyataannya mungkin, "semua alamat IPv4 pada mesin lokal"). Jadi, jika mesin server web Anda memiliki dua alamat IP, 192.168.1.1 dan 10.1.2.1, dan Anda mengizinkan daemon server web seperti apache untuk mendengarkan pada 0.0.0.0, itu akan dapat dijangkau di kedua alamat IP tersebut. Tetapi hanya untuk apa yang dapat menghubungi alamat IP dan port web tersebut.
Perhatikan bahwa, dalam konteks yang berbeda (perutean) 0.0.0.0 biasanya berarti rute default (rute ke "sisa" internet, selain dari rute di jaringan lokal Anda, dll.).
sumber
0.0.0.0
berarti rute default hanya jika disertai dengan awalan/0
(atau netmask0.0.0.0
)Ketika suatu layanan mendengarkan pada 0.0.0.0 ini berarti layanan mendengarkan pada semua antarmuka jaringan yang dikonfigurasi, ketika mendengarkan pada 127.0.0.1 layanan hanya terikat pada antarmuka loopback (hanya tersedia pada mesin lokal)
sumber
Alamat IP
0.0.0.0
dapat memiliki arti yang sangat berbeda, tergantung di mana ia digunakan.0.
).netstat
perintah (yang Anda minta), itu berarti soket yang diberikan mendengarkan semua alamat IP yang tersedia yang dimiliki komputer; ketika komputer memiliki lebih dari satu alamat IP, soket hanya dapat diikat ke alamat dan pasangan port tertentu, atau ke port dan semua alamat; jika Anda melihat alamat IP di sana, berarti soket hanya mendengarkan pada port itu dan alamat tertentu itu; jika Anda lihat0.0.0.0
, itu berarti mendengarkan pada port itu di semua alamat mesin, termasuk satu loopback (127.0.0.1
).sumber
ping 0.0.0.0
pada sistem Windows menghasilkan pesan kesalahan.curl 0.0.0.0
hasilconnection refused
di Arch Linux.ping 0.0.0.0
, di sisi lain, tampaknya menjadi aliasping 127.0.0.1
yang berfungsi dengan baik.connection refused
mungkin karena curl secara default coba sambungkan ke port 80 / tcp. Cobalah untuk menemukan port terbuka Anda dengannmap -sV localhost
dan kemudian untuk misalnya jika 631 / tcp:curl 0.0.0.0:631
.Jawaban Lee B benar, tetapi inilah beberapa RFC yang relevan jika Anda tertarik.
0.0.0.0:
Dari RFC1122 , Bagian 3.1.2.3:
Hanya saja, "host ini di jaringan ini" ... seperti yang dinyatakan oleh Lee B, ini diterjemahkan ke semua alamat IP yang tersedia di host Anda. Hosting layanan di 0.0.0.0 akan secara otomatis meng-host layanan itu di setiap antarmuka yang dapat dialamatkan.
127.0.0.1:
Dari RFC5735 :
Perbedaan antara 0.0.0.0 dan alamat loopback 127.0.0.1 adalah bahwa alamat loopback dirancang untuk memungkinkan antarmuka IP berfungsi penuh dalam host itu sendiri, terlepas dari apa yang tampak seperti pengaturan jaringan, jika ada, seperti apa. Lalu lintas yang dikirim ke perangkat loopback segera diterima di sana. Ini tidak terlalu banyak sehingga jaringan loopback "merujuk" ke host Anda sendiri ... itu lebih seperti Anda memiliki segmen jaringan mini di host Anda yang perangkat, proses dan soket dan dapat membuka dan terhubung.
sumber
Secara sederhana: Mendengarkan pada 0.0.0.0 berarti mendengarkan dari mana saja yang memiliki akses jaringan ke komputer ini, misalnya, dari komputer ini, dari jaringan lokal atau dari Internet, sementara mendengarkan pada 127.0.0.1 berarti hanya mendengarkan dari komputer ini juga.
sumber