昨天因为临时需要 linux 环境,使用了 WSL2 。第一次使用,感觉怪怪的。
系统是 win11 enterprise 22h2, AMD 5945 128G 显卡亮机卡 4G
wsl 我没动过,安装好系统后就没玩过这个。昨天打开使用,版本就是这个
WSL version: 1.2.5.0
Kernel version: 5.15.90.1
项目是前端
windows terminal 里面安装了一个 ubuntu 就跑起来了。
碰到的问题,
或者,现在 wsl2 使用,大家有什么最佳实践的建议么?
p.s.公司的机器,杀毒软件和防火墙是必须打开的。
1
clorischan 2023-07-21 09:30:15 +08:00 1
不要把 WSL2 当成虚拟机用,(虽然底层确实是基于 Hyper-V, 但是微软做了很多处理的)
简单的说, 就是你这台电脑如果不是 Windows, 而是直接装的 Linux 的情况下 你应该怎么设置代理, WSL2 里面就怎么设置 |
2
mrpzx001 2023-07-21 09:34:01 +08:00 1
https://github.com/he426100/vscode-remote-containers
解决你有关 wsl 的一切问题,包括你说的代理 |
3
xwh 2023-07-21 09:44:06 +08:00
[root@localhost ~]# export http_proxy=http://172.19.48.1:7890
[root@localhost ~]# export https_proxy=http://172.19.48.1:7890 [root@localhost ~]# curl google.com <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="http://www.google.com/">here</A>. </BODY></HTML> |
4
DigitalG 2023-07-21 10:06:38 +08:00
你自己内网的主机网关 nameserver 那些东西怎么配置的,可以一样设置 wsl 看看。
终端可以考虑别的好看的 ssh 终端。 wsl 可以导出导入 vhdx 文件 来转移(但不跨文件系统来用,很多数据放 wsl 的话,越来越大会不方便操作)。 |
5
pangxiang 2023-07-21 10:09:13 +08:00
在~/.bashrc 里添加 export http_proxy=http://主机 IP:代理端口
|
6
villivateur 2023-07-21 10:26:11 +08:00
关于 terminal 界面,这个界面不是你选什么终端工具就是什么样子吗?可以自己装个好看的终端然后跑 wsl
|
7
nirvam 2023-07-21 10:50:18 +08:00
WSL 有个比较讨厌的问题,是它的虚拟网卡的网段会变,导致无法通过固定的 IP 访问 Windows 宿主机。需要每次都 ip route 看一下,再改环境变量。
我采用的方案: https://github.com/mike-barber/wsl-subnet-utility Windows 中设置一个在系统启动时触发的计划任务,执行这个工具,把 WSL 的虚拟网关设置为 192.168.100.1 ,这样 WSL 里就可以固定代理地址: export http_proxy=http://192.168.100.1:xxxx export https_proxy=$http_proxy 记得 Windows 上的代理工具里,允许局域网内的访问。 另一个方案是通过读取 WSL 自动生成的 resolv.conf ,获取宿主机 IP |
8
wdssmq 2023-07-21 10:52:45 +08:00
HOST_IP=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')
export http_proxy="socks5://${HOST_IP}:10808" export https_proxy="socks5://${HOST_IP}:10808" # Git HOST_IP=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}') git config --global http.proxy "socks5://${HOST_IP}:10808" git config --global https.proxy "socks5://${HOST_IP}:10808" |
9
canbingzt 2023-07-21 15:15:57 +08:00
```bash
hostip=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }') port=7890 PROXY_HTTP="http://${hostip}:${port}" export http_proxy="${PROXY_HTTP}" export https_proxy="${PROXY_HTTP}" git config --global http.proxy "${PROXY_HTTP}" git config --global https.proxy "${PROXY_HTTP}" ``` 取消的话 ```bash unset http_proxy unset https_proxy git config --global --unset http.proxy git config --global --unset https.proxy ``` 同时需要在宿主机添加防火墙规则 ```powershell Remove-NetFirewallRule -DisplayName "WSL" New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow ``` |