Linux打开防火墙放通端口以及修改flask运行命令使允许远程访问flask应用

        在默认情况下,Flask 开发服务器绑定到 127.0.0.1(即本地主机),这意味着它只能在运行 Flask 应用的机器上访问。为了让其他机器(包括远程机器)能够访问 Flask 应用,你需要将服务器绑定到所有的网络接口(即 0.0.0.0)。

  flask run 是 Flask 开发服务器的一个命令,用于在开发环境中启动 Flask 应用。默认情况下,Flask 开发服务器只监听 localhost127.0.0.1)。使用 --host=0.0.0.0 参数,Flask 会将监听地址修改为 0.0.0.0,这表示服务器会监听所有可用的 IP 地址,从而允许外部网络上的机器访问该应用。

启用远程访问的方法

  1. 修改 Flask 运行命令

    在运行 Flask 应用时,添加 --host=0.0.0.0 参数,这样 Flask 服务器就会监听所有网络接口。
    flask --app app run --host=0.0.0.0
    
  2. 安全考虑

    • 请注意,在生产环境中,直接使用 Flask 自带的开发服务器是不安全的。你应该使用像 Gunicorn、uWSGI 或其他 WSGI 服务器来运行 Flask 应用,并在前面加上一个反向代理服务器(如 Nginx 或 Apache)。
    • 开发环境中,确保防火墙和网络安全设置允许访问 Flask 服务器的端口(默认是 5000 端口)。

测试远程访问

  1. 确保端口开放

    • 确保防火墙允许来自远程机器的流量通过端口 5000(下文附放通端口命令)。
    • 在运行 Flask 应用的机器上,可以使用 netstat 或 lsof 命令检查端口是否正确绑定:
      netstat -tuln | grep 5000
      
  2. 测试远程访问

    • 在远程 Windows 机器上,打开浏览器,输入运行 Flask 应用的机器的 IP 地址和端口号:
      http://<Your-Server-IP>:5000
      
    • 例如,如果你的服务器 IP 是 192.168.1.100,你可以在浏览器中访问:
      http://192.168.1.100:5000
      

示例

假设你的 Flask 应用在 app.py 文件中,并且在服务器上运行:

  1. 启动 Flask 应用(服务器上)

    flask --app app run --host=0.0.0.0
    
  2. 访问 Flask 应用(远程 Windows 机器上)

    打开浏览器,输入 http://<Your-Server-IP>:5000

        通过将 Flask 运行命令中的 --host 参数设置为 0.0.0.0,你可以让 Flask 开发服务器监听所有网络接口,从而允许远程访问。但请务必注意安全性,尤其是在生产环境中。

打开防火墙放通端口的方法

        在 Ubuntu 中,ufw(Uncomplicated Firewall)是一个简单易用的防火墙管理工具。下面是通过 ufw 打开防火墙并允许特定端口(如 Flask 默认使用的 5000 端口)的步骤:

1. 检查 ufw 状态

首先,你可以检查 ufw 的当前状态:

sudo ufw status

如果 ufw 被禁用,会显示 Status: inactive

2. 启用 ufw

如果 ufw 目前是关闭状态,可以通过以下命令来启用它:

sudo ufw enable

3. 允许特定端口

为了允许来自外部的连接,你需要打开 Flask 使用的端口(默认是 5000)。可以使用以下命令来允许端口 5000

sudo ufw allow 5000

4. 重新检查 ufw 状态

在允许了端口之后,可以再次检查 ufw 状态,以确认规则已被添加:

sudo ufw status

你应该能看到类似以下的输出,表明 5000 端口已经被允许:

Status: active

To                         Action      From
--                         ------      ----
5000                       ALLOW       Anywhere

5. (可选)允许其他端口

假如你在生产环境中使用了其他服务,可能需要允许其他常用端口(如 80443 等),可以使用类似的命令:

sudo ufw allow 80    # 允许 HTTP
sudo ufw allow 443   # 允许 HTTPS

6. 其他 ufw 命令

  • 禁用 ufw

    sudo ufw disable
    
  • 删除规则
    如果需要删除某个规则,例如关闭 5000 端口,可以使用:

    sudo ufw delete allow 5000
    
  • 查看更详细的状态

    sudo ufw status verbose
    

注意事项

  • 请确保在开启防火墙规则时,确保其他应用不会受到影响。
  • 如果你在云服务器上(如 AWS、GCP 等),可能还需要在相应的平台控制台上设置网络安全组或防火墙规则,确保允许访问。

flask run --host=0.0.0.0 只会影响当前运行的 Flask 应用实例,而不会永久修改所有应用的配置。以下是详细的解释:

只对当前运行的实例有效

  • flask run --host=0.0.0.0 这条命令只会影响当前运行的 Flask 应用实例,并在你关闭服务器后失效。
  • 如果你再次运行 flask run 而不带 --host=0.0.0.0,Flask 仍然会默认监听 localhost

如何永久修改所有应用的默认设置

如果你希望所有应用都能默认监听所有可用的 IP 地址,你可以通过以下几种方式来实现:

1. 修改 Flask 配置文件

你可以在 Flask 应用的配置文件中设置 SERVER_NAME 或其他相关配置项,但这并不直接控制 flask run 的行为。flask run 主要用于开发环境,它有自己的默认行为。

2. 使用环境变量

你可以在启动 Flask 应用时设置环境变量来影响其行为。例如,使用 FLASK_RUN_HOST 环境变量:

export FLASK_RUN_HOST=0.0.0.0
flask run

这种方式在当前会话中有效,但如果你希望每次都自动设置,可以将其添加到你的 .bashrc 或 .bash_profile 文件中。

3. 使用 Flask 命令别名

如果你经常需要使用 --host=0.0.0.0 参数,可以为 flask run 创建一个命令别名:

alias flask-run='flask run --host=0.0.0.0'

然后你可以使用 flask-run 来替代 flask run,它会自动带上 --host=0.0.0.0 参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/889575.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux使用Docker部署Paperless-ngx结合内网穿透打造无纸化远程办公

文章目录 前言1. 部署Paperless-ngx2. 本地访问Paperless-ngx3. Linux安装Cpolar4. 配置公网地址5. 远程访问6. 固定Cpolar公网地址7. 固定地址访问 前言 本文主要介绍如何在Linux系统本地部署Paperless-ngx开源文档管理系统&#xff0c;并结合cpolar内网穿透工具解决本地部署…

Redis持久化机制(RDBAOF详解)

目录 一、Redis持久化介绍二、Redis持久化方式1、RDB持久化(1) 介绍(2) RDB持久化触发机制(3) RDB优点和缺点(4) RDB流程 2、AOF(append only file)持久化(1) 介绍(2) AOF优点和缺点(3) AOF文件重写(4) AOF文件重写流程 三、AOF和RDB持久化注意事项 一、Redis持久化介绍 Redis…

plpo vue实战版教程

vue实战版教程 什么是plpo安装1.将plop添加到您的项目2.全局安装plop(可选&#xff0c;但建议使用方便)3.在项目根目录下创建一个 plopfile.js vue 实战&#xff08;后台管理系统 - 增删改查&#xff09;所需文件文件介绍创建配置文件 plopfile.js创建模板和脚本命令文件模板创…

ELK中L的filebeat配置及使用(超详细)

上一次讲解了如何在linux服务器上使用docker配置ELK中的E和K&#xff0c;这期着重讲解一下L怎么配置。 首先L在elk中指的是一个数据处理管道&#xff0c;可以从多种来源收集数据&#xff0c;进行处理和转换&#xff0c;然后将数据发送到 Elasticsearch。L的全称就是&#xff1…

dbeaver_导入到数据库中的csv文件显示黑色方块

dbeaver_导入到数据库中的csv文件显示黑色方块 ** 解决方案&#xff1a; ** 数据库导出到CSV用Excel打开中文乱码问题

H3C OSPF 综合排错实验

H3C OSPF 综合排错实验 实验拓扑 ​​ 实验需求 按照图示配置 IP 地址&#xff0c;所有路由器配置环回口 IP 地址为 X.X.X.X/32​ 作为 Router-id&#xff0c;X 为设备编号&#xff08;R7 除外&#xff09;按照图示分区域配置 OSPFR1 和 R6 上分别配置环回口来模拟业务网段…

【华为】基于华为交换机的VLAN配置与不同VLAN间通信实现

划分VLAN&#xff08;虚拟局域网&#xff09;主要作用&#xff1a; 一、提高网络安全性 广播域隔离访问控制增强 二、优化网络性能 减少网络拥塞提高网络可管理性 sysytem-view #进入系统视图配置参数 vlan batch 10 20 #批量创建vlanLSW3: int g0/0/1 port …

MYSQL 事物隔离级别的区别与现象

事物的ACID属性本章不再赘述&#xff0c;本章主要描述事物的隔离级别及隔离级别导致的现象&#xff0c;日常工作中该如何选择MYSQL的隔离级别。 MYSQL事物的隔离级别及各隔离级别存在的问题如下&#xff1a; 隔离级别/问题脏读不可重复读幻读读未提交(Read-Uncommitted)✅✅✅…

PostgreSQL学习笔记四:GUI管理工具

PostgreSQL 是一款广泛使用的开源关系数据库管理系统&#xff0c;拥有许多图形用户界面&#xff08;GUI&#xff09;工具来帮助用户更高效地管理数据库。以下是一些流行的 PostgreSQL 管理工具&#xff1a; pgAdmin&#xff1a; 一个流行的开源 PostgreSQL GUI 工具&#xff0c…

半周期检查-下降沿发上升沿采

1. 半周期路径Half Cycle Path 如果在设计中&#xff0c;同时存在上升沿触发的D触发器&#xff0c;以及下降沿触发的D触发器&#xff0c;则视为半周期路径&#xff0c;Half Cycle Path。 2. Setup time检查 时序图 时序报告&#xff1a; 起始点 startpoint&#xff1a;UFF5&a…

Jenkins+kubernetes流水线构建java项目

在传统的业务环境中&#xff0c;我们的应用部署或者更新都是采用手工的方式&#xff0c;但是在企业内部&#xff0c;应用架构一般都采用微服务&#xff0c;大部分项目都会对应几十个、上百甚至上千个微服务&#xff0c;并且还不仅仅只有一个项目&#xff0c;所以采用收工方式上…

微信小程序开发-配置文件详解

文章目录 一&#xff0c;小程序创建的配置文件介绍二&#xff0c;配置文件-全局配置-pages 配置作用&#xff1a;注意事项&#xff1a;示例&#xff1a; 三&#xff0c;配置文件-全局配置-window 配置示例&#xff1a; 四&#xff0c;配置文件-全局配置-tabbar 配置核心作用&am…

【Linux】————进程控制

作者主页&#xff1a; 作者主页 本篇博客专栏&#xff1a;Linux专栏 创作时间 &#xff1a;2024年10月10日 ​ ​ 一、程序地址空间&#xff1a; 1、C/C中的程序地址空间&#xff1a; ​ 在c中我们了解了这样的空间分布图。 我们应如何去创建和访问变量呢&#xff1f;…

VR线上展厅:超越时空的沉浸式展览,打造个性化、高效展览新模式

一、沉浸式漫游&#xff1a;打破时空限制&#xff0c;尽享虚拟之旅 VR线上展厅通过高度逼真的3D场景构建&#xff0c;为参观者营造了一个仿佛置身其中的虚拟世界。借助各种显示设备&#xff0c;用户能够自由穿梭于各个展区之间&#xff0c;无论是漫步在历史悠久的博物馆&#…

双语大脑的神经可塑性能力:来自健康和病理个体的见解

摘要 双语经验的神经印记对于理解大脑如何处理优势语言和非优势语言至关重要&#xff0c;但关于它的研究仍然没有定论。不同的研究表明神经处理存在相似性或差异性&#xff0c;这对患有脑肿瘤的双语患者具有重要意义。保留术后的双语功能需要考虑到术前的神经可塑性变化。在这…

【论文阅读笔记】End-to-End Object Detection with Transformers

代码地址&#xff1a;https://github.com/facebookresearch/detr 论文小结 本文是Transformer结构应用于目标检测&#xff08;OD&#xff09;任务的开山之作。方法名DETE&#xff0c;取自Detection Transformer。   作为2020年的论文&#xff0c;其表现精度在当时也不算高的…

pytorch导入数据集

1、概念&#xff1a; Dataset&#xff1a;一种数据结构&#xff0c;存储数据及其标签 Dataloader&#xff1a;一种工具&#xff0c;可以将Dataset里的数据分批、打乱、批量加载并进行迭代等 &#xff08;方便模型训练和验证&#xff09; Dataset就像一个大书架&#xff0c;存…

mongodb GUI工具(NoSQLBooster)

介绍 跨平台的MongoDB GUI工具&#xff0c;支持Windows、macOS和Linux。自带服务器监控工具、Visual Explain Plan、查询构建器、SQL查询等功能。提供免费版本&#xff0c;但功能相比付费版本有所限制。 免费版可供个人/商业使用&#xff0c;但功能有限。 安装成功后&#x…

大疆M2006+C610 pid参数调优

官方给的示例代码里给的是1.5, 0.1, 0 但试了下空转时显然不太行. 自己摸索出0.8, 0.03, 0 表现如图中的蓝色线 期望速度先两秒的1000,然后一秒的2000,一秒的3000, 0 2000 表现还不错,可以看到0.5秒后与期望值的差距控制在大概10%之内,但还是感觉有些过调 对了先说一下基础知识…

有什么方法可以保护ppt文件不被随意修改呢?

在工作或学习中&#xff0c;我们常常需要制作powerpoint演示文稿&#xff0c;担心自己不小心改动了或者不想他人随意更改&#xff0c;我们可以如何保护PPT呢&#xff1f;下面小编就来分享两个常用的方法。 方法一&#xff1a;为PPT设置打开密码 为PPT设置打开密码是最直接有效…