惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
博客园 - 三生石上(FineUI控件)
V
V2EX
博客园 - 司徒正美
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tailwind CSS Blog
Last Week in AI
Last Week in AI
雷峰网
雷峰网
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Apple Machine Learning Research
Apple Machine Learning Research
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
SegmentFault 最新的问题
美团技术团队
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
爱范儿
爱范儿
博客园 - 聂微东
量子位
J
Java Code Geeks
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Vercel News
Vercel News

博客园 - zakun

Gitlab CI 本地开发部署 Golang grpc 实践 Mongo 聚合演示 真・一键激活 JetBrains 全家桶! Kafka 分区细说 解决国内Homebrew安装 Homebrew How to Install PHP Install Elasticsearch with Docke wsl2 网络相关设置 php docker image nginx 反向代理常用设置说明 Golang常见的并发模式 Gin框架的几种热加载方法 协程 Mysql Full-Text Index 介绍 gitlab runner 使用摘要 Gitlab Docker 使用摘要 Docker 简介 linux-查看文件夹大小 Linux 如何删除乱码文件-inode删除 Nginx反爬虫: 禁止某些User Agent抓取网站 PHP添加$_SERVER服务器环境变量
适配 WSL 的 proxy 完整脚本
zakun · 2026-07-18 · via 博客园 - zakun

适配 WSL 的 proxy 完整脚本

创建脚本

#!/bin/bash
# WSL专用自动获取Windows主机代理IP
WIN_HOST=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')
# 修改为你Windows代理软件端口,常见7890、10809
PROXY_PORT="7890"
PROXY_URL="http://${WIN_HOST}:${PROXY_PORT}"
NO_PROXY_LIST="localhost,127.0.0.1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.local"

function proxy_on {
    export http_proxy=$PROXY_URL
    export https_proxy=$PROXY_URL
    export ftp_proxy=$PROXY_URL
    export no_proxy=$NO_PROXY_LIST

    export HTTP_PROXY=$PROXY_URL
    export HTTPS_PROXY=$PROXY_URL
    export FTP_PROXY=$PROXY_URL
    export NO_PROXY=$NO_PROXY_LIST

    echo -e "\033[32m✅ WSL代理已开启\033[0m"
    echo "Windows主机地址: $WIN_HOST"
    echo "代理地址: $PROXY_URL"
    echo "不走代理: $NO_PROXY_LIST"
    if curl -s -I https://www.google.com >/dev/null; then
        echo -e "\033[32m🌐 外网连通正常\033[0m"
    else
        echo -e "\033[31m❌ 代理无法连通,请检查Windows代理软件端口/允许局域网连接\033[0m"
    fi
}

function proxy_off {
    unset http_proxy https_proxy ftp_proxy no_proxy
    unset HTTP_PROXY HTTPS_PROXY FTP_PROXY NO_PROXY
    echo -e "\033[31m❌ 代理已关闭\033[0m"
}

function proxy_status {
    echo "==== WSL 当前代理环境变量 ===="
    env | grep -i proxy
}

case "$1" in
    on)
        proxy_on
        ;;
    off)
        proxy_off
        ;;
    status)
        proxy_status
        ;;
    *)
        echo "用法:"
        echo "  source ~/proxy.sh on    开启代理"
        echo "  source ~/proxy.sh off   关闭代理"
        echo "  source ~/proxy.sh status 查看状态"
        ;;
esac

配置快捷别名(推荐)

echo "alias proxy='source ~/proxy.sh'" >> ~/.bashrc
source ~/.bashrc

使用命令

# 开启代理
proxy on

# 关闭代理
proxy off

# 查看当前代理
proxy status