Waydroidにネットワークがありません:ネットワークにアクセスできません。

Waydroidにネットワークがありません:ネットワークにアクセスできません。

私はフォローしましたWaydroid Arch Wiki ページそしてwaydroidbinder_linux-dkmsそしてwaydroid-image-gapps

waydroidを実行すると、ネットワーク部分を除いてうまく機能します。

ホストコンピュータに新しいインターフェイスがあります。

30: waydroid0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:16:3e:00:00:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.240.1/24 brd 192.168.240.255 scope global waydroid0
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3eff:fe00:1/64 scope link
       valid_lft forever preferred_lft forever
31: vethbrQLNw@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master waydroid0 state UP group default qlen 1000
    link/ether fe:3e:17:46:42:95 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::fc3e:17ff:fe47:4295/64 scope link
       valid_lft forever preferred_lft forever

しかし、ネットワークインターフェイスを正しく設定していません。waydroid shell

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0@if31: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:16:3e:f9:d3:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::fba7:3c32:8e2f:857/64 scope link stable-privacy
       valid_lft forever preferred_lft forever

だからpingをしようとすると1.1.1.1エラーが発生しますconnect: Network is unreachable。そしてウェイランドにはインターネットがありません。

ufwやファイアウォールがインストールされていません。

私は試した:

  1. 再起動waydroid-container.service
  2. 止めるnftables.service
  3. 再起動iptables.service

PS:Journalctlには次のものがあります。

окт 27 15:16:53 nous dnsmasq[139035]: started, version 2.87 cachesize 150
окт 27 15:16:53 nous dnsmasq[139035]: compile time options: IPv6 GNU-getopt DBus no-UBus i18n IDN2 DHCP DHCPv6 no-Lua TFTP con>
окт 27 15:16:53 nous dnsmasq-dhcp[139035]: DHCP, IP range 192.168.240.2 -- 192.168.240.254, lease time 1h
окт 27 15:16:53 nous dnsmasq-dhcp[139035]: DHCP, sockets bound exclusively to interface waydroid0
окт 27 15:16:53 nous dnsmasq[139035]: reading /etc/resolv.conf
окт 27 15:16:53 nous dnsmasq[139035]: using nameserver 127.0.0.1#53
окт 27 15:16:53 nous dnsmasq[139035]: read /etc/hosts - 148944 addresses

(127.0.0.1はマウントをバインドしていないためです)

waydroid log出力:

(138954) [15:16:45] % chmod 666 -R /dev/binder
(138954) [15:16:45] % chmod 666 -R /dev/anbox-vndbinder
(138954) [15:16:45] % chmod 666 -R /dev/anbox-hwbinder
(138954) [15:16:45] Container manager is waiting for session to load
(139008) [15:16:52] Save session config: /var/lib/waydroid/session.cfg
(139008) [15:16:52] UserMonitor service is not even started
(139008) [15:16:52] Clipboard service is not even started
(138954) [15:16:52] % /usr/lib/waydroid/data/scripts/waydroid-net.sh start
vnic is waydroid0
(138954) [15:16:53] % mount /usr/share/waydroid-extra/images/system.img /var/lib/waydroid/rootfs
(138954) [15:16:53] % mount -o remount,ro /usr/share/waydroid-extra/images/system.img /var/lib/waydroid/rootfs
(138954) [15:16:53] % mount /usr/share/waydroid-extra/images/vendor.img /var/lib/waydroid/rootfs/vendor
(138954) [15:16:53] % mount -o remount,ro /usr/share/waydroid-extra/images/vendor.img /var/lib/waydroid/rootfs/vendor
(138954) [15:16:53] % mount -o bind /var/lib/waydroid/waydroid.prop /var/lib/waydroid/rootfs/vendor/waydroid.prop
(138954) [15:16:53] Save config: /var/lib/waydroid/waydroid.cfg
(138954) [15:16:53] % mount -o bind /home/user/.local/share/waydroid/data /var/lib/waydroid/data
(138954) [15:16:53] % chmod 777 -R /dev/ashmem
(138954) [15:16:53] % chmod 777 -R /dev/dri
(138954) [15:16:53] % chmod 777 -R /dev/fb0
(138954) [15:16:53] % chmod 777 -R /dev/video3
(138954) [15:16:53] % chmod 777 -R /dev/video2
(138954) [15:16:53] % chmod 777 -R /dev/video1
(138954) [15:16:53] % chmod 777 -R /dev/video0
(138954) [15:16:53] % lxc-start -P /var/lib/waydroid/lxc -F -n waydroid -- /init
(138954) [15:16:53] New background process: pid=139115, output=background
(138954) [15:16:53] Save session config: /var/lib/waydroid/session.cfg
(139008) [15:17:02] waydroidusermonitor: Received transaction: 1
(139008) [15:17:02] Android with user 0 is ready
(146313) [15:40:48] % tail -n 60 -F /var/lib/waydroid/waydroid.log
(146313) [15:40:48] *** output passed to waydroid stdout, not to this log ***

答え1

回避策としてNFTの使用を無効にすることができます(そうしないとネットワークが利用できなくなります)。何らかの理由で、この機能はデフォルトで有効になっています(犯罪無効にします)。

Arch-linuxの場合は、/usr/lib/waydroid/data/scripts/waydroid-net.sh次の行を修正して確認する必要があります。

LXC_USE_NFT=false

答え2

スクリプトがwaydroid-net.sh再び変更されたため、より多くのパッチが必要です。

  • 障害を負うnftables
  • 無効にiptables-legacyするip6tables-legacy

これは、次のコマンドを使用して実行できます。

sudo sed -i~ -E 's/=.\$\(command -v (nft|ip6?tables-legacy).*/=/g' \
     /usr/lib/waydroid/data/scripts/waydroid-net.sh

サービスを再起動する必要があります。

sudo systemctl restart waydroid-container.service 

Waydroid 1.4.1を使用してUbuntu 22.04でテストされました。

関連情報