在服務器中,0.0.0.0 指的是本機上的所有IPV4地址
如果一個主機有兩個IP地址,192.168.1.1 和 10.1.2.1,並且該主機上的一個服務監聽的地址是0.0.0.0,那么通過兩個ip地址都能夠訪問該服務。
127.0.0.1:回環地址
該地址指電腦本身,主要預留測試本機的TCP/IP協議是否正常。只要使用這個地址發送數據,則數據包不會出現在網絡傳輸過程中。
127.0.0.1屬於{127,}集合中的一個,而所有網絡號為127的地址都被稱之為回環地址,所以回環地址!=127.0.0.1
,它們是包含關系,即回環地址包含127.0.0.1
。
回環地址:所有發往該類地址的數據包都應該被loop back。
用途:
* 回環測試,通過使用ping 127.0.0.1 測試某台機器上的網絡設備,操作系統或者TCP/IP實現是否工作正常。
* DDos攻擊防御:網站收到DDos攻擊之后,將域名A記錄到127.0.0.1,即讓攻擊者自己攻擊自己。
* 大部分Web容器測試的時候綁定的本機地址。
可以理解為本機有三塊網卡,一塊網卡叫做 loopback(這是一塊虛擬網卡),另外一塊網卡叫做 ethernet (有線網卡),另外一塊網卡叫做 wlan(無線網卡)。
本機 IP 是真實網卡的 IP,具體來說有線無線各有一個,而 127.0.0.1 是那塊叫做 loopback 的虛擬網卡的 IP總結
127.0.0.1 是一個環回地址。並不表示“本機”。0.0.0.0才是真正表示“本網絡中的本機”。
在實際應用中,一般我們在服務端綁定端口的時候可以選擇綁定到0.0.0.0,這樣我的服務訪問方就可以通過我的多個ip地址訪問我的服務。
比如我有一台服務器,一個外放地址A,一個內網地址B,如果我綁定的端口指定了0.0.0.0,那么通過內網地址或外網地址都可以訪問我的應用。但是如果我之綁定了內網地址,那么通過外網地址就不能訪問。 所以如果綁定0.0.0.0,也有一定安全隱患,對於只需要內網訪問的服務,可以只綁定內網地址。
查看服務器開放的端口
linux運維都需要對端口開放查看 ,netstat 就是對端口信息的查看,
netstat 可以查看系統的網絡狀況,比如開了哪個端口,哪個ip與我們機器連接最多之類的
[root@iz2ze5is23zeo1ipvn65aiz ~]# netstat -nlt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3346/nginx: master tcp 0 0 127.0.0.1:8081 0.0.0.0:* LISTEN 2493/docker-proxy-c tcp 0 0 127.0.0.1:8082 0.0.0.0:* LISTEN 5529/docker-proxy-c tcp 0 0 127.0.0.1:8083 0.0.0.0:* LISTEN 17762/docker-proxy- tcp 0 0 127.0.0.1:8084 0.0.0.0:* LISTEN 2743/docker-proxy-c tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2155/sshd
看到 查詢的有Local、Address、Foregin、Program name
Local :訪問端口的方式,0.0.0.0 是對外開放端口,說明80端口外面可以訪問;127.0.0.1 說明只能對本機訪問,外面訪問不了此端口;
Address:端口
Foregin Address:對外開放,一般都為0.0.0.0:*
Program name:此端口是那個程序在用,程序掛載此端口
重點說明 0.0.0.0 是對外開放,通過服務域名、ip可以訪問的端口
127.0.0.1 只能對本機 localhost訪問,也是保護此端口安全性
::: 這三個: 的前兩個”::“,是“0:0:0:0:0:0:0:0”的縮寫,相當於IPv6的“0.0.0.0”,就是本機的所有IPv6地址,第三個:是IP和端口的分隔符