首页 > 其他分享 >为 WSL2 一键设置代理

为 WSL2 一键设置代理

时间:2024-01-25 11:23:03浏览次数:30  
标签:Windows IP 一键 代理 Linux WSL2 子系统

在 WSL2 环境中 clone 一个很大的 git 项目,不走代理速度很慢,所以研究了一下怎么让 WSL2 走 Windows 的代理客户端。

WSL1 和 WSL2 网络的区别

在 WSL1 时代,由于 Linux 子系统和 Windows 共享了网络端口,所以访问 Windows 的代理非常简单。例如 Windows 的代理客户端监听了 8000 端口,那么只需要在 Linux 子系统中执行如下命令,就可以让当前 session 中的请求通过代理访问互联网。

export ALL_PROXY="http://127.0.0.1:8000"

但是 WSL2 基于 Hyper-V 运行,导致 Linux 子系统和 Windows 在网络上是两台各自独立的机器,从 Linux 子系统访问 Windows 首先需要找到 Windows 的 IP。

配置 WSL2 访问 Windows 上的代理

有两个关键步骤: 1. WSL2 中配置的代理要指向 Windows 的 IP; 2. Windows 上的代理客户端需要允许来自本地局域网的请求;

由于 Linux 子系统也是通过 Windows 访问网络,所以 Linux 子系统中的网关指向的是 Windows,DNS 服务器指向的也是 Windows,基于这两个特性,我们可以将 Windows 的 IP 读取出来。

例如,在 Ubuntu 子系统中,通过 cat /etc/resolv.conf 查看 DNS 服务器 IP。

# This file was automatically generated by WSL. To stop 
automatic generation of this file, add the following entry to /etc/wsl.conf:# [network]# generateResolvConf = falsenameserver 172.19.80.1

可以看到 DNS 服务器是 172.19.80.1,通过环境变量 ALL_PROXY 配置代理:

export ALL_PROXY="http://172.19.80.1:7890"

7890 是 Windows 上运行的代理客户端的端口,记得要在 Windows 代理客户端上配置允许本地局域网请求。

一键配置脚本

将上面的过程写入一个 bash 脚本,可以轻松的实现一键配置代理:

#!/bin/bash
host_ip=$(cat /etc/resolv.conf |grep "nameserver" |cut -f 2 -d " ")
export ALL_PROXY="http://$host_ip:7890"

脚本通过 cat /etc/resolv.conf 来获取 DNS 服务器,也就是 Windows 的 IP,再将其中的 IP 部分截取出来,加上代理客户端的端口(我的是 7890,可以根据自己实际情况修改),使用 export 写入环境变量中。

脚本也可以从这里下载 .proxyrc,使用时只需要 source .proxyrc 就可以生效。

标签:Windows,IP,一键,代理,Linux,WSL2,子系统
From: https://www.cnblogs.com/RioTian/p/17986762

相关文章

  • DHCP中继代理配置与管理
    实验介绍:DHCP中继存在目的当一台DHCP需要配置不同网段的IP地址时一:准备工作1.在DHCP服务器配置页面右键ipv4,建立多个作用域。我这里设置了三个可以分配给服务器端的网段,分别是192.168.1.101-192.168.1.200192.168.2.101-192.168.2.200192.168.3.101-192.168.3.2002.......
  • WSL2虚拟机迁移(转)
    原文:https://blog.csdn.net/zhys2007/article/details/110958577作者:zhys2007来源:CSDN WSL是Windows下的Linux子系统,可以代替虚拟机来运行Linux系统,占用资源少,使用方便,下面说一下如何对已发布子系统进行迁移。一种情况是针对同一个系统,更换安装的位置;另一种情况跟换机器或重......
  • java反射&代理面试知识
    java反射何为反射?如果说大家研究过框架的底层原理或者咱们自己写过框架的话,一定对反射这个概念不陌生。反射之所以被称为框架的灵魂,主要是因为它赋予了我们在运行时分析类以及执行类中方法的能力。通过反射你可以获取任意一个类的所有属性和方法,你还可以调用这些方法和属性。......
  • iOS 多级页面之间的代理方法使用
    当然可以。为了提供一个更详细的示例,我将为每个页面(Page1ViewController、Page2ViewController、Page3ViewController和Page4ViewController)编写示例代码,以展示如何通过代理模式将数据从Page4传递回Page1。定义Page4的代理协议首先,定义一个在Page4ViewController中使用的......
  • 极速初始化配置 Manjaro Linux with WSL2 的开发环境
    配置ManjaroLinux用户组安装完成后,我们需要配置ManjaroLinux系统才能开始使用。在命令行执行passwd以设置root的密码。根据最小权限原则(opensinanewtab),日常使用中,不能所有命令中都使用root权限进行操作,因此我们需要创建一个新的用户以供日常使用。参照ArchW......
  • 教程|幻兽帕鲁一键开私服
    《幻兽帕鲁》这游戏最近可谓风靡一时,发售仅三天即创下Steam同时在线峰值超150万的盛况。笔者买到游戏后也是连忙喊上小伙伴一起联机当赛博农场主,奈何官方服务器太过火爆,时不时就遇到卡顿现象。干脆动手搭建一个专用服务器,与朋友们共享流畅的私服联机体验吧!跟着下面的步骤,不用......
  • Win终端+WSL2 美化记录 上篇 启用毛玻璃
    微软还是太狗了,这么好看的毛玻璃效果藏着掖着,今天有幸看到,就有了本篇踩坑记录打开毛玻璃效果官方文档:https://learn.microsoft.com/zh-cn/windows/terminal/custom-terminal-gallery/frosted-glass-theme标签页毛玻璃设置-->外观-->开启Useacrylicmaterialintheta......
  • centos 设置代理上网
    clash开启允许内网访问在CentOS系统中,设置代理可以通过以下步骤完成:打开终端,输入以下命令来编辑环境变量文件: bash复制代码vi/etc/profile按下键盘字母i进入编辑模式,在文件末尾添加以下内容: arduino复制代码exporthttp_proxy=http://<代理服务器IP......
  • Nginx正向代理https
    Nginx支持正向代理http协议,但是不支持https协议,如果需要Nginx实现https协议的正向代理,需要使用第三方模块。参考地址:https://blog.csdn.net/weixin_43834401/article/details/130670792Nginx下载地址:https://nginx.org/en/download.html第三方模块下载地址:https://github.com/......
  • wsl2
    https://www.cnblogs.com/luoyingfenfei/p/17831138.html#:~:text=1%20%E5%BC%80%E5%90%AFwindows%E7%9A%84WSL%E4%B8%8E%E8%99%9A%E6%8B%9F%E5%B9%B3%E5%8F%B0%E6%94%AF%E6%8C%81%201%201.1%20%E5%BC%80%E5%90%AF%E8%99%9A%E6%8B%9F%E5%8C%96%E8%AE%BE%E7%BD%AE%20%E9%A6%96%......