MattTheTekie

WSL2 配置代理

准备

  • WSL2
  • Clash for Windows

代理

首先我们需要开启 Clash 的设置 Allow Lan 来允许局域网的连接。

开启之后,我们打开 WSL ,在命令行中输入

cat /etc/resolv.conf

我们应该会得到这么一段内容

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

那么 nameserver 就是 DNS 服务器,我们需要记下这个,然后在配置代理

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

7890 端口是 Clash 代理的端口, Clash 上是多少,这里就修改成多少,默认 7890

之后运行

curl www.google.com

能正常返回内容就说明代理成功啦

脚本

按照上面的操作,每次都这么来一下还挺麻烦的,所以写一个脚本方便我们使用

首先我们创建一个文件·.proxyrc 或者其他名也行

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

内容是这样然后保存,使用 source .proxyrc 运行,就可以直接代理啦

git

如上设置之后 git 还是不会走代理,如果需要走代理,可以在文件加上下面几行

git config --global http.proxy http://$host_ip:7890
git config --global https.proxy https://$host_ip:7890

以上就可以正常走代理啦

v2rayN

不过你可能没有用 Clash ,用的是 v2rayN ,没事,咱们也可以类似于上面这样做一个代理

允许局域网

首先在你的 v2rayN 中的 参数设置 里勾选 允许来自局域网的连接 ,然后确定软件的端口,主要看局域网那边的端口,一般来说是这样的:

  1. http:10811
  2. socks5:10810

编写文件

在 WSL 里新建一个 .proxyv2ray 的文件,名字随便起就行

#!/bin/bash
socks_port=10810
host_ip=$(cat /etc/resolv.conf |grep "nameserver" |cut -f 2 -d " ")
proxy="socks5://$host_ip:$socks_port"
export ALL_PROXY=$proxy
export http_proxy=$proxy
export https_proxy=$proxy
git config --global http.proxy $proxy
git config --global https.proxy $proxy

正常情况下 v2rayN 用的是 socks5 ,如果不起作用,将 socks5 改成 http 的就行。

然后

curl www.google.com

测试一下连接情况就可以了