日常使用WSL做开发时,经常需要对接Windows本地网络服务,方便下载开源软件、获取开发者资源等。每次手动配置相关环境变量切换比较麻烦,还容易输错。这里分享一个带命令行参数的WSL网络环境控制脚本,可以一键开启/关闭、自定义端口,适配Windows本地的网络服务,简化配置操作。
一、核心功能
- 支持
start(开启)、stop(关闭)、help(帮助)3类命令,操作简单 - 默认端口7897,支持自定义端口(如7890),适配不同本地服务
- 彩色提示信息,成功、错误、提示信息区分清楚,方便排查问题
- 只在当前终端会话生效,不会修改全局环境,减少误配置风险
二、完整脚本(直接复制)
脚本命名为proxyctl.sh(ctl=control,方便记忆),内容如下:
#!/bin/bash# WSL HTTP/HTTPS网络环境一键控制脚本# 用法:./proxyctl.sh [start/stop/help] [可选端口]DEFAULT_PORT="7897"# 默认端口,可根据自身本地服务修改# 开启网络环境(支持自定义端口)enable_proxy(){localport=$1localproxy_addr="[http://127.0.0.1](http://127.0.0.1):$port"exportHTTP_PROXY=$proxy_addrexportHTTPS_PROXY=$proxy_addrecho-e"\033[32m✅ 网络环境已开启!\033[0m"echo-e"\033[36m🔌 地址:$proxy_addr\033[0m"}# 关闭网络环境disable_proxy(){unsetHTTP_PROXYunsetHTTPS_PROXYecho-e"\033[32m✅ 网络环境已关闭!\033[0m"}# 帮助信息show_help(){echo-e"\033[34m===== WSL网络环境控制脚本用法 =====\033[0m"echo-e"命令格式:./proxyctl.sh [命令] [可选端口]"echo-e"支持命令:"echo-e" start 开启(默认端口$DEFAULT_PORT,如:./proxyctl.sh start 7890)"echo-e" stop 关闭(无参数)"echo-e" help 显示帮助信息(无参数)"}# 主逻辑:处理命令行参数case$1instart)if[-n"$2"];thenif[["$2"=~^[0-9]+$]];thenenable_proxy"$2"elseecho-e"\033[31m❌ 错误:端口必须为纯数字!\033[0m"show_helpexit1fielseenable_proxy"$DEFAULT_PORT"fi;;stop)disable_proxy;;help)show_help;;*)echo-e"\033[31m❌ 错误:无效命令!\033[0m"show_helpexit1;;esac三、使用步骤(3步上手)
1. 创建脚本文件
在WSL终端执行命令,创建空白脚本:
touchproxyctl.sh2. 写入脚本内容
用vim编辑文件,粘贴上述完整脚本后保存退出:
vimproxyctl.sh# 粘贴内容后,按Esc→:→wq保存退出``### 3. 赋予执行权限(仅需1次)```bashchmod+x proxyctl.sh四、快速使用示例
# 1. 使用默认端口(7897)开启./proxyctl.sh start# 2. 使用自定义端口(如7890)开启./proxyctl.sh start7890# 3. 关闭./proxyctl.sh stop# 4. 查看帮助信息./proxyctl.shhelp五、关键注意事项
- 正常使用前提:Windows端对应的本地服务已经启动,监听端口和脚本里配置的端口保持一致(默认7897);
- 生效范围:仅当前终端会话有效,新开终端需要重新执行脚本开启;
- 永久生效(可选):想要新开终端自动加载配置,可以把
export HTTP_PROXY=[http://127.0.0.1:7897](http://127.0.0.1:7897)和export HTTPS_PROXY=[http://127.0.0.1:7897](http://127.0.0.1:7897)添加到~/.bashrc,再执行source ~/.bashrc生效; - 端口修改:直接修改脚本中
DEFAULT_PORT的值,就能更换默认端口,适配自己的本地服务配置。
总结
这个脚本省去反复手动设置环境变量的操作,通过简单参数快速切换WSL的本地网络配置,适配Windows本地网络服务的开发场景。脚本逻辑简单、方便复用,配置门槛低,适合经常需要调整WSL本地网络环境的开发者,提升开发时的网络配置效率。