ygy*_*ygy 8 proxy localhost windows-10
我试图让 WSL 在我的 Windows 上使用本地主机代理(实际上是它的 Fiddler),但我看不到任何这样的连接,并且下载通常会失败,我该如何解决?
我知道我可以从 Windows 连接到 Linux 本地主机,但是我该如何逆转呢?
WSL 是 Ubuntu 18.04
与 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 地址:
grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)
这是网络接口的 IPv4 地址vEthernet (WSL)。
curl使用或测试与 Windows 主机的连接telnet:
3.1curl ip.from.step.2:port
我已使用此过程连接到在 Windows 上运行的 Oracle 服务器和 X 服务器。
更新:由于每次 Windows 重新启动时 WSL 的 IP 地址都会改变,因此自动获取它并更新文件很方便hosts。
在 WSL 中:
执行cat /etc/hosts以找出 Windows 主机的名称。
将以下代码添加到~/.profile:
HOST=<WINDOWS_HOSTNAME>
IP_HOST=$(grep -m 1 $HOST /etc/hosts)
OLD_IP=$(echo "$IP_HOST" | awk '{print $1}')
NEW_IP=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}')
if [ "$NEW_IP" != "$OLD_IP" ]; then
echo "Updating IP Address-hostname mapping"
sudo sed -i "s|$IP_HOST|$NEW_IP\t$HOST|" /etc/hosts
echo "$HOST has the IP Address $NEW_IP"
fi
Run Code Online (Sandbox Code Playgroud)
小智 7
您应该在以管理员身份运行的 powershell 中运行以下命令:
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
Run Code Online (Sandbox Code Playgroud)
此命令来自此WSL2 票证。任何与 WSL IP 地址相关的防火墙规则都不会生效,因为 WSL2 IP 每次都会更改。
我不确定以下内容是否适用于仅绑定到localhost 的应用程序,但这适用于 Fiddler 和 WSL2:
| 归档时间: |
|
| 查看次数: |
15804 次 |
| 最近记录: |