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

如何为Tauri WebView配置代理?使窗口所有请求走HTTP/SOCKS5代理

Tauri窗口全局代理配置方案

完全可行,以下是针对不同平台和场景的具体实现方式:

一、针对WebView窗口的代理配置(窗口内网页请求)

Tauri的窗口基于不同平台的Web引擎,需对应配置引擎的代理规则:

1. Windows(WebView2)

创建窗口时,通过WebView2的环境配置指定代理:

use tauri::{WindowBuilder, WebviewUrl};
use webview2_com::Microsoft::Web::WebView2::Core::ICoreWebView2EnvironmentOptions;

fn create_proxied_window(app: &tauri::App) -> Result<(), tauri::Error> {
    let env_options = ICoreWebView2EnvironmentOptions::new()?;
    // 设置HTTP/SOCKS5代理,格式:http://host:port 或 socks5://host:port
    env_options.put_Proxy("socks5://127.0.0.1:1080")?;
    
    let webview_env = tauri::webview2::Environment::builder()
        .with_options(env_options)
        .build()?;
    
    WindowBuilder::new(app, "main", WebviewUrl::App("index.html".into()))
        .webview_environment(webview_env)
        .build()?;
    
    Ok(())
}

2. macOS/Linux(WebKit)

通过WebKit的网络代理设置配置:

use tauri::WindowBuilder;
use webkit2gtk::WebContext;

fn create_proxied_window(app: &tauri::App) -> Result<(), tauri::Error> {
    let web_context = WebContext::default().unwrap();
    // 设置代理规则,支持HTTP/SOCKS5
    web_context.set_network_proxy_settings(
        webkit2gtk::NetworkProxyMode::Custom,
        Some("socks5://127.0.0.1:1080"),
        None,
        None,
    );
    
    WindowBuilder::new(app, "main", tauri::WebviewUrl::App("index.html".into()))
        .web_context(web_context)
        .build()?;
    
    Ok(())
}

二、针对Rust后端发起的请求(若需统一代理)

如果应用中Rust代码发起的请求也需要走代理,可通过HTTP客户端的代理配置实现:

use reqwest::Proxy;

// 示例:使用reqwest客户端配置SOCKS5代理
async fn fetch_with_proxy() -> Result<(), reqwest::Error> {
    let proxy = Proxy::all("socks5://127.0.0.1:1080")?;
    let client = reqwest::Client::builder()
        .proxy(proxy)
        .build()?;
    
    let res = client.get("https://example.com").send().await?;
    Ok(())
}

注意事项

  • 代理地址格式需正确:HTTP代理用http://host:port,SOCKS5用socks5://host:port
  • 若需代理认证,可在地址中加入用户名密码:http://user:pass@host:port
  • 测试前确保代理服务正常运行,避免连接超时问题

内容的提问来源于stack exchange,提问作者Богдан Штангрет

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 14:40:06