解决 python flask启动以及端口映射后,在公网中无法访问 的问题

之所以不能从公网访问,往往是因为ip的问题,以往你可能用的是局域网ip,当然不行,访问时使用公网ip。首先启动代码改为:

python 复制代码
app.run(host='0.0.0.0',port=80)

host是ip地址,port是端口号,什么端口号都行,比如5000,建议用80,不过你会收到windows的警告,继续就行了。

运行后界面会打印出信息,当中有一段讲的是监视的ip,比如:

最后一段就是你的公网地址

但是!它也有可能是这样:

你会发现监视的ip是局域网ip,没有公网,怎么办?(可能是因为你没有公网ip)

终极解决办法:

yaml 复制代码
app.run(host='::',port=80)

把0.0.0.0改为::,两者不同是0.0.0.0代表监视所有ipv4地址,::是监视所以有ipv6地址,ipv4有可能是局域网,有可能是公网,而ipv6一般都是公网!所以用ipv6准没错。(前提是你有ipv6,一般都有)

#ipv6是下一代ip

运行后显示的监视地址:

  • Running on all addresses (:😃
  • Running on http://[::1]:80
  • Running on http://[2409:8a7a:: :::a0e9:60e6]:80

最后一段是你的公网ipv6地址,注意ipv6地址用[ ]括起来,其他和ipv4是一样的("*"号是我打的码!不是地址,因为我的lsj服务器就是这个地址,未经许可不能访问!)

如果不行,那你连ipv6都没有,买个路由器吧,路由器会为你分配一个ipv6地址

相关推荐
南境十里·墨染春水8 小时前
C++传记(面向对象)虚析构函数 纯虚函数 抽象类 final、override关键字
开发语言·c++·笔记·算法
无巧不成书02188 小时前
30分钟入门Java:从历史到Hello World的小白指南
java·开发语言
2301_797172758 小时前
基于C++的游戏引擎开发
开发语言·c++·算法
比昨天多敲两行9 小时前
C++ 二叉搜索树
开发语言·c++·算法
Birdy_x10 小时前
接口自动化项目实战(1):requests请求封装
开发语言·前端·python
我爱学习好爱好爱10 小时前
Ansible 常用模块详解:lineinfile、replace、get_url实战
linux·python·ansible
海海不瞌睡(捏捏王子)10 小时前
C++ 知识点概要
开发语言·c++
桌面运维家11 小时前
VLAN配置进阶:抑制广播风暴,提升网络效率
开发语言·网络·php
一轮弯弯的明月11 小时前
Python基础-速通秘籍(下)
开发语言·笔记·python·学习
西西学代码11 小时前
Flutter---回调函数
开发语言·javascript·flutter