因此,我可以让X11转发在WSL2中工作,例如,How to set up working X11 forwarding on WSL2。然后,我在连接到思科AnyConnect服务器后遇到了网络问题,但我使用例如WSL 2 Cisco AnyConnect Networking Workaround解决了这个问题。这包括手动设置/etc/resolv.conf以包含我需要的DNS名称服务器,尽管应该通过this answer将X11的DISPLAY变量设置为X11问题。
但是一旦我连接到AnyConnect,我就不能再转发X11应用程序,其中甚至包括vim,除非我添加-X参数(看起来很奇怪,但我知道什么)。这些应用程序不会在显示设置中显示错误,它们只是不显示而已。只要我从VPN断开连接,同样的命令就可以正常工作。不管需要进行哪些网络设置,这种情况都会发生,所以我认为这只与AnyConnect本身有关,但也许我还需要运行其他Powershell命令才能正常显示?有什么想法吗?
发布于 2021-11-01 21:32:50
我在我的WSL2环境中也有同样的担忧。一旦我通过Cisco AnyConnect打开了一个VPN连接,我在DISPLAY环境变量中为X11转发设置的默认网络接口(我从/etc/resolv.conf中检索到的-与the one you pointed out相同的方法)就不能再访问了。
然后,我寻找任何可以从WSL2端ping通并且6000端口可达的Windows网络接口(因为这个端口似乎是默认情况下用于与VcXsrv等X服务器建立X11连接的端口)。幸运的是,我在VPN上找到了为Windows主机打开的虚拟网络接口,它符合以下条件:
Name : Ethernet 2
InterfaceDescription : Cisco AnyConnect Secure Mobility Client Virtual Miniport Adapter for Windows x64
InterfaceIndex : 4
MacAddress : [...]
MediaType : 802.3
PhysicalMediaType : Unspecified
InterfaceOperationalStatus : Up
AdminStatus : Up
LinkSpeed(Mbps) : 862.4
MediaConnectionState : Connected
ConnectorPresent : False
DriverInformation : [...]为了能够在WSL2端使用它,我使用了以下Powershell命令来检索接口的IP地址:
Get-NetAdapter |
Where-Object InterfaceDescription -like "*AnyConnect*Virtual*Adapter*" |
Get-NetIPAddress -AddressFamily IPv4 |
Select-Object -ExpandProperty IPAddress它可以封装到来自WSL2的Powershell调用中,如下所示:
/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -Command '<the_command_above>'一旦我获得了这个IP地址,我只需要用它重新导出我的DISPLAY环境变量:
export DISPLAY="<vpn_ip_address>:0"就这样,我可以再次享受X11转发的乐趣了!
https://stackoverflow.com/questions/66002099
复制相似问题