PixelのLinuxターミナル環境に接続するためのリンクローカルアドレスを取得
2025-08-03時点の情報
初期 (2025-03) だと 192.168.0.2 で繋がるという情報があったけど、今試すと繋がらなさそう。この情報もアプデで変わる可能性がある
localhost経由の接続について
現時点では、Android→Linuxターミナルは localhost:ポート (または127.0.0.1, ::1) でも接続できる
Linuxターミナル側でポート開ける時、既にAndroid側で同じポート番号が使われている場合はAndroid側が優先される
Android側が優先された場合、avf_tap_fixedインターフェース経由でのみ接続できる
Android側でポート開ける時、既にLinuxターミナル側で同じポート番号が使われている場合は「既にポート番号が使われている」エラーとなる
AndroidとLinuxターミナルで同じポート番号を使うのは避けるのが無難
localhost経由で接続した時、接続元IPアドレスは 127.0.0.1 または ::ffff:127.0.0.1 となる
逆 (Linuxターミナル→Android) は localhost:ポート で繋がらない
LinuxターミナルからAndroid側に接続したい場合、下記のavf_tap_fixedインターフェースのIPアドレスまたは、wlanなど外のIPアドレスを使う必要がある
他
今のところ、Linuxターミナル環境はこれ以外のIPv6アドレスを持ってない
これにより、IPv6で外に出られない(本当???)
curl -6 example.com できなかった (Termuxではできた) のが根拠だが、根拠薄いかも
リンクローカルアドレスはアクセスにインターフェース名が必須で、Chromeなどの主要ブラウザはIPv6のインターフェース名指定に対応していない
Androidのブラウザから繋ぐなどの用途では、localhostを使うのが無難
Android OS側のリンクローカルアドレスは、ターミナル環境再起動の度に変わる
なんで?????
ターミナル内でIPアドレスを確認
code:terminal.sh
ip address show
code:result.txt
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 noprefixroute
valid_lft forever preferred_lft forever
2: enp0s7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether b6:55:90:a2:66:25 brd ff:ff:ff:ff:ff:ff
inet 10.235.53.200/24 metric 100 brd 10.235.53.255 scope global dynamic enp0s7
valid_lft 3261sec preferred_lft 3261sec
inet6 fe80::b455:90ff:fea2:6625/64 scope link
valid_lft forever preferred_lft forever
lo じゃないほうのinetとinet6を見る (端末やタイミングによって異なる)
inetは 10.235.53.200 (ブロードキャストアドレスは 10.235.53.255)
inet6は fe80::b455:90ff:fea2:6625
inet6のほうは、 scope link と書かれている通りリンクローカルアドレスである (fe80:: から始まるし)
inetのIPv4アドレスはスマホ本体の再起動で変わるため、インターフェース名が指定できる場合はinet6のリンクローカルアドレスを使う
inet6のほうは機種によって異なるが、再起動しても今のところ変わってない
ターミナル環境を消して作り直すと変わる
ssh接続するにはインターフェース名も必要なので、Termuxで使うインターフェースを確認
普通のターミナルエミュレータだと非rootでifconfigコマンドが実行できないので、Termux必須
code:termux.sh
ifconfig
code:result.txt
Warning: cannot open /proc/net/dev (Permission denied). Limited output.
avf_tap_fixed: flags=20547<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.235.53.209 netmask 255.255.255.0 broadcast 10.235.53.255
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.47.45.164 netmask 255.255.255.0 broadcast 10.47.45.255
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
inetアドレスの先頭 10.235.53. やブロードキャストアドレス 10.235.53.255 がターミナル側で見えるものと一致している avf_tap_fixed を使えばよいことが分かる
逆