WSL2 无法访问 Windows 端 localhost
在 WSL2(Windows Subsystem Linux)中,本机 Windows 可以访问 WSL2 中的 localhost
或 127.0.0.1
;但是 WSL2 中的 Linux 无法访问 Window 中的 localhost
或 127.0.0.1
。这给 WSL2 使用 Windows 这边的代理带来了大量困难。
而 Bash 中通过 export
定义环境变量(environment variables)的方法在 fish 中无效。不仅无效,调用时不会返回错误信息,这与“no news is good news”的 unix 哲学格格不入。
定义 Fish Shell 全局函数
FIsh shell 的配置信息一般存储在:~/.config/fish/config.fish
文件中。在其中加入如下内容:
# proxy [Address of proxy]
function proxy
set -Ux all_proxy http://$argv[(count $argv)]:10811
set -Ux http_proxy http://$argv[(count $argv)]:10811
set -Ux https_proxy http://$argv[(count $argv)]:10811
echo all_proxy=$all_proxy
echo http_proxy=$http_proxy
echo https_proxy=$https_proxy
end
function noproxy
set -e all_proxy
set -e http_proxy
set -e https_proxy
end
即可定义两条命令:proxy
和 noproxy
。
使用
开启代理
在 Fish 中输入如下命令:
proxy 192.168.1.6
其中,如 192.168.1.6
等 IP 地址是本机在局域网中的 IP 地址。只需要确保 Windows 上的代理工具许可局域网连接即可正常使用。开启后对于 bash 一样有效。
关闭代理
在 Fish 中输入如下命令:
noproxy
即可关闭代理。