在某個ip上開放某個端口是什么意思?


端口綁定IP有什么用?
127.0.0.1和0.0.0.0的區別?

例如使用flask開發web應用時,可以指定ip(默認127.0.0.1)和端口(默認5000)

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
   return 'Hello World'

if __name__ == '__main__':
   app.run("127.0.0.1", 5000)

此時,我們就在127.0.0.1上開放了5000端口,然后我們就可以通過127.0.0.1:5000的形式在瀏覽器上訪問web應用

當然我們可以在別的本機上擁有的ip上開放別的端口,比如

if __name__ == '__main__':
   app.run("192.168.137.1", 80)

此時,我們就在192.168.137.1上開放了80端口,然后我們就可以通過192.168.137.1:80的形式在瀏覽器上訪問web應用

192.168.137.1是我本機的某一個ip地址。一台主機可以擁有多個ip地址,不僅僅是因為可以有多張網卡,大多數的ip地址是操作系統虛擬出來的,有着各自的用途。

在windows上使用ipconfig命令可以查看所有ip及其對應的網卡

在linux上使用ifconfig或者ip addr命令


此外,還有一些特殊的ip地址,例如

{0,0}:網絡號和主機號都全部為0,表示“本網絡上的本主機”,也表示不確定的來源,只能用作 源地址(不能ping它)
...
...
{127,}:即網絡號為127的任意ip地址。都是內部主機回環地址(loopback),永遠都不能出現在主機外部的網絡中。


顯然,不是你本機的ip你肯定是不能用的。

那既然都是只能綁定本機的ip,還提供什么可選ip的功能干嗎?

在某個ip上開放端口,其實是借用了局域網的特性,來限制別人對端口的訪問。

比如我在192.168.137.1/16上開放端口,那么只有我自己和同屬於192.168.0.0網段的機器能訪問到我的ip,也就起到了限制端口訪問的作用了。

那在127.*.*.*上開放端口就變成了只有自己能訪問了

在0.0.0.0上開放端口意思就是允許任何ip訪問此端口


在開發的過程中,127.0.0.1用於提供本地服務,以供本地的其他應用程序使用

0.0.0.0用於提供遠程服務,以供外部訪問


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM