我试图让 WSL 在我的 Windows 上使用 localhost 代理(实际上是它的 Fiddler),但我看不到任何这样的连接,并且下载通常会失败,我该如何解决?
我知道我可以从 windows one 连接到 Linux localhost,但是我该如何扭转呢?
WSL 是 Ubuntu 18.04
我试图让 WSL 在我的 Windows 上使用 localhost 代理(实际上是它的 Fiddler),但我看不到任何这样的连接,并且下载通常会失败,我该如何解决?
我知道我可以从 windows one 连接到 Linux localhost,但是我该如何扭转呢?
WSL 是 Ubuntu 18.04
您应该在以管理员身份运行的 powershell 中运行以下命令:
此命令来自此WSL2 票证。任何与 WSL IP 地址相关的防火墙规则都不会生效,因为 WSL2 IP 每次都会更改。
我不确定以下内容是否适用于仅绑定到localhost 的应用程序,但这适用于 Fiddler 和 WSL2:
设置 Fiddler 选项“允许远程计算机连接”并重新启动 Fiddler
获取您的 WSL 网络连接信息(在我的机器上,适配器称为
vEthernet (WSL)
)使用该地址,例如 172.26.224.1,您通常会使用 localhost
与 WSL 1 相比,WSL 2 需要一些额外的工作。
允许所需端口通过防火墙。
1.1 启动
Windows Defender Firewall with Advanced Security
1.2 在左侧窗格中选择
Incoming Rules
。1.3 在右侧窗格中单击
New Rule
。1.4 对于规则类型选择
Port
。下一个。1.5 选择
TCP
和Specific local ports
。插入端口、以逗号分隔的端口列表或端口范围。下一个。1.6 选择
Allow connection
。下一个。1.7 只检查
Public
配置文件。下一个。1.8 输入规则的名称。例如
WSL
。完毕。从其中找出 WSL 的 IP 地址:
这是网络接口的 IPv4 地址
vEthernet (WSL)
。curl
使用or测试与 Windows 主机的连接telnet
:3.1
curl ip.from.step.2:port
我已使用此过程连接到在 Windows 上运行的 Oracle 服务器和 X 服务器。
更新:由于每次Windows重启时WSL的IP地址都会发生变化,因此自动获取并更新
hosts
文件很方便。在 WSL 中:
执行
cat /etc/hosts
以找出 Windows 主机的名称。将以下代码添加到
~/.profile
:在此处查看指南
https://docs.microsoft.com/en-us/windows/wsl/networking#accessing-windows-networking-apps-from-linux-host-ip
您还需要允许到主机上的端口的入站连接。