


















#!/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
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。