在Ubuntu虛擬機中,可通過幾行代碼搭建一個非常簡單的flask web服務。
from flask import Flask
app=Flask(__name__)
@app.route('/')
def index():
return 'hello world'
if __name__=="__main__":
app.run(debug=True)
運行代碼后,打開Ubuntu中瀏覽器訪問127.0.0.1:5000即可正常顯示hello world,但如果在Win10中使用瀏覽器訪問對應地址則無法顯示。
先說明下為什么有在主機Win10直接訪問虛擬機Ubuntu端口數據的需求。比如,個人傾向于在Ubuntu環境中開發API接口,但是一些客戶端開發(比如微信小程序)只能在Win10或者OSX中進行。如果不能直接訪問,只能在Win10中再搭建一套Python開發環境,這樣會很繁瑣。
接下來說下解決方案。
第一步:
修改最后一行代碼為
app.run(host='0.0.0.0',debug=True) 或者 app.run(host='10.0.2.15',debug=True)
這里host可以改成0.0.0.0(表示在局域網的任意IP上)或者10.0.2.15(在Ubuntu中通過ifconfig命令查看對應IP)
第二步:
按下圖配置VirtualBox中的網絡端口轉發


VirtualBox中點擊網絡,然后在點擊端口轉發


注意紅框中的IP也可以不填寫,為空則默認為0.0.0.0;端口均填寫5000
這樣修改后即可在Win10中正常訪問了。
需要注意的是,如果沒有第一步修改host,第二步無論怎么設置都不會成功,比如兩個IP都設置成127.0.0.1或者0.0.0.0。由于網絡知識有限,具體原因不太清楚,如果有朋友知道不修改host直接通過VB的端口轉發即能成功,歡迎評論,感謝!
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。
發表評論
請登錄后評論...
登錄后才能評論