MS-Windows 10で「Linux用Windowsサブシステム」機能を有効にし、Ubuntu-20.04をインストールしました。 1 つは WSL1 を使用し、もう 1 つは WSL2 を使用します。さらに、VcXsrv ツールが MS-windows コンピュータにインストールされ実行されます。
WSL1 サポートインスタンスでは GUI アプリケーションを実行できますが、WSL2 サポートインスタンスでは GUI アプリケーションを実行できません。それは言う」エラー:ディスプレイを開けません::0.0」
以下で、ホストインスタンスとLinuxインスタンスのいくつかの出力を見つけます。
Windows 10以降:
❯ ipconfig
Windows IP Configuration
Ethernet adapter Ethernet 4:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Ethernet adapter Ethernet:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Ethernet adapter vEthernet (WSL):
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::102:a949:2437:16e9%55
IPv4 Address. . . . . . . . . . . : 172.23.224.1
Subnet Mask . . . . . . . . . . . : 255.255.240.0
Default Gateway . . . . . . . . . :
Wireless LAN adapter Local Area Connection* 10:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Wireless LAN adapter Local Area Connection* 11:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Wireless LAN adapter Wi-Fi:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::a5b7:d11b:52b0:23d6%9
IPv4 Address. . . . . . . . . . . : 192.168.1.4
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : fe80::1%9
192.168.1.1
Ethernet adapter Bluetooth Network Connection:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
❯ wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 2
Ubuntu Running 1
Ubuntu(WSL1)から- UIアプリがうまく動作します(例:xclock、xeyes)。
$ ifconfig -a
eth0: flags=64<RUNNING> mtu 1500
inet 169.254.226.136 netmask 255.255.0.0
inet6 fe80::b0cd:dad8:df85:e288 prefixlen 64 scopeid 0xfd<compat,link,site,host>
ether 80:19:34:d2:45:55 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=64<RUNNING> mtu 1400
inet 10.83.242.31 netmask 255.255.255.255
inet6 fe80::d8f9:f80:42f7:4681 prefixlen 64 scopeid 0xfd<compat,link,site,host>
ether 02:50:41:00:00:01 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth2: flags=64<RUNNING> mtu 1500
inet 169.254.8.40 netmask 255.255.0.0
inet6 fe80::41af:dac3:4f41:828 prefixlen 64 scopeid 0xfd<compat,link,site,host>
ether 34:e6:d7:1f:97:fc (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.23.224.1 netmask 255.255.240.0 broadcast 172.23.239.255
inet6 fe80::102:a949:2437:16e9 prefixlen 64 scopeid 0xfd<compat,link,site,host>
ether 00:15:5d:f7:dc:5c (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth4: flags=64<RUNNING> mtu 1406
unspec [NONE SET] netmask 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
ether 00:05:9a:3c:7a:00 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth5: flags=64<RUNNING> mtu 1300
unspec [NONE SET] netmask 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
ether 02:05:85:7f:eb:80 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 1500
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0xfe<compat,link,site,host>
loop (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wifi0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.4 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::a5b7:d11b:52b0:23d6 prefixlen 64 scopeid 0xfd<compat,link,site,host>
ether 80:19:34:d2:45:51 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wifi1: flags=64<RUNNING> mtu 1500
inet 169.254.12.30 netmask 255.255.0.0
inet6 fe80::551a:4119:9646:c1e prefixlen 64 scopeid 0xfd<compat,link,site,host>
ether 80:19:34:d2:45:52 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wifi2: flags=64<RUNNING> mtu 1500
inet 169.254.80.242 netmask 255.255.0.0
inet6 fe80::7548:77de:4bf6:50f2 prefixlen 64 scopeid 0xfd<compat,link,site,host>
ether 82:19:34:d2:45:51 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
$ echo $DISPLAY
:0.0
$ cat /etc/resolv.conf
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 192.168.1.1
nameserver fec0:0:0:ffff::1
nameserver fec0:0:0:ffff::2
Ubuntu-20.04(WSL2)から始める: UIアプリケーションが機能しない(例:xclock、xeyes)
❯ ifconfig -a
bond0: flags=5122<BROADCAST,MASTER,MULTICAST> mtu 1500
ether ba:e3:e3:6e:20:3d txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
dummy0: flags=130<BROADCAST,NOARP> mtu 1500
ether be:be:bb:8a:8f:a0 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.94.115 netmask 255.255.240.0 broadcast 172.17.95.255
inet6 fe80::215:5dff:fe8e:25e5 prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:8e:25:e5 txqueuelen 1000 (Ethernet)
RX packets 34 bytes 4988 (4.9 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 12 bytes 936 (936.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 2 bytes 100 (100.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2 bytes 100 (100.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
sit0: flags=128<NOARP> mtu 1480
sit txqueuelen 1000 (IPv6-in-IPv4)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
❯ cat /etc/resolv.conf
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 192.168.1.1
nameserver 172.17.80.1
GUIアプリケーションにアクセスしようとしたときのWSL2エラー:
❯ xeyes
Error: Can't open display: :0.0
❯ echo $LIBGL_ALWAYS_INDIRECT
1
❯ echo $DISPLAY
:0.0
メモ:また、他のIP(192.168.1.1、192.168.1.4)をWSL2インスタンスのDISPLAY変数にエクスポートしようとしましたが、何も役に立ちませんでした。
追加情報:
- WSL1(Ubuntu)インスタンスでホストのIPアドレス(192.168.1.4)を正常にpingできました。また、ポート6000(vcxsrv)のTelnetも接続されています。
- ただし、WSL2(Ubuntu)インスタンスでは、ホストのIPアドレス(192.168.1.4)をpingできません。さらに、ポート 6000 で Telnet を行うとパスがないと出てきます。
- すべての手順に従いました。このスレッドで言及されているこれには、ポート6000のファイアウォールルールの追加が含まれていますが、問題は解決されていないようです。
WSL1から:
$ telnet 192.168.1.4 6000
Trying 192.168.1.4...
Connected to 192.168.1.4.
Escape character is '^]'.
WSL2から:
❯ telnet 192.168.1.4 6000
Trying 192.168.1.4...
telnet: Unable to connect to remote host: No route to host
お問い合わせ/ヘルプ:
ネットワークは異なりますか? WSL1とWSL2の設定はどうですか?それでは、現在直面している問題をどのように解決でき、WSL2インスタンスでGUIアプリケーションを実行するのですか?
WSL2インスタンスではホストをpingできません。同様に、WSL2インスタンスはホスト上でpingできません。
答え1
私の.bashrc
ファイルには次の行が含まれています。おそらくこの行を見て、export DISPLAY
必要に応じてディスプレイを反映するように変更することもできます。
# Added code for Windows Xwinrc
export DISPLAY=:0;
#export DISPLAY=localhost:0.0
#export LIBGL_ALWAYS_INDIRECT=1
#export GDK_DPI_SCALE=1