You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Streamlit服务器IP白名单配置求助:未找到设置指引及配置项

Streamlit 服务器IP访问白名单配置方法

Streamlit本身没有内置IP白名单配置项,需要通过反向代理、操作系统防火墙或代码逻辑实现访问限制,以下是三种可行方案:

方案一:Nginx反向代理实现IP白名单

  1. 先将Streamlit服务绑定到本地回环地址,避免直接暴露在外网:
    streamlit run app.py --server.address 127.0.0.1 --server.port 8501
    
  2. 配置Nginx的server块,添加IP允许/拒绝规则:
    server {
        listen 80;
        server_name your-domain.com;
    
        # 允许指定单个IP或网段访问
        allow 192.168.1.100;
        allow 10.0.0.0/24;
        # 拒绝所有未在允许列表内的IP
        deny all;
    
        location / {
            proxy_pass http://127.0.0.1:8501;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
    
  3. 重启Nginx服务使配置生效。

方案二:操作系统防火墙规则限制

Linux(iptables)

执行以下命令,仅允许指定IP/网段访问Streamlit端口(示例为8501):

# 允许单个IP访问
iptables -A INPUT -p tcp --dport 8501 -s 192.168.1.100 -j ACCEPT
# 允许整个网段访问
iptables -A INPUT -p tcp --dport 8501 -s 10.0.0.0/24 -j ACCEPT
# 拒绝其他所有IP访问该端口
iptables -A INPUT -p tcp --dport 8501 -j DROP

Windows(高级防火墙)

  1. 打开「Windows Defender防火墙高级设置」
  2. 新建入站规则,选择「端口」类型,指定8501端口
  3. 选择「允许连接」,在「作用域」中添加允许的IP地址范围
  4. 完成规则创建并启用

方案三:Streamlit代码内添加IP校验逻辑(临时方案)

在应用代码开头添加客户端IP校验,不符合规则则终止服务:

import streamlit as st
from streamlit.web.server.server import Server
from streamlit.runtime.scriptrunner import get_script_run_ctx

def get_client_ip():
    ctx = get_script_run_ctx()
    if not ctx:
        return None
    session_info = Server.get_current()._session_info_by_id.get(ctx.session_id)
    return session_info.request.remote_addr if session_info else None

# 定义允许访问的IP列表
ALLOWED_IPS = {"192.168.1.100", "10.0.0.5"}
client_ip = get_client_ip()

if client_ip not in ALLOWED_IPS:
    st.error("您的IP地址不允许访问本服务")
    st.stop()

# 正常业务代码
st.title("受限访问的Streamlit应用")

注意:此方案依赖Streamlit内部未公开的API,可能随版本更新失效,仅适合临时场景使用。

内容的提问来源于stack exchange,提问作者user16627746

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 11:45:12