普段m75q tiny gen 2にUbuntuとTailscaleを入れて、MBPからVS Code Remote SSHでつないで開発機にしているのですが、今日一台が止まってしまって一瞬途方にくれたので、試した手順を残しておきます。
まずは tailscaled のログを見てみる。
mumoshu@m75q2a:~$ journalctl -u tailscaled -f
-- Logs begin at Tue 2021-03-23 04:27:16 UTC. --
Sep 20 00:33:56 m75q2a tailscaled[494123]: wgengine: Reconfig: configuring router
Sep 20 00:33:56 m75q2a tailscaled[494123]: wgengine: Reconfig: configuring DNS
Sep 20 00:33:56 m75q2a tailscaled[494123]: dns: Set: {DefaultResolvers:[] Routes:{} SearchDomains:[] Hosts:0}
Sep 20 00:33:56 m75q2a tailscaled[494123]: dns: Resolvercfg: {Routes:{} Hosts:0 LocalDomains:[]}
Sep 20 00:33:56 m75q2a tailscaled[494123]: dns: OScfg: {Nameservers:[] SearchDomains:[] MatchDomains:[]}
Sep 20 00:33:56 m75q2a tailscaled[494123]: authReconfig: blocked, skipping.
Sep 20 00:33:56 m75q2a tailscaled[494123]: control: authRoutine: state:url-visit-required; wantLoggedIn=true
Sep 20 00:33:56 m75q2a tailscaled[494123]: control: direct.WaitLoginURL
Sep 20 00:33:56 m75q2a tailscaled[494123]: control: doLogin(regen=false, hasUrl=true)
Sep 20 00:33:56 m75q2a tailscaled[494123]: control: RegisterReq: onode=[z4dNC] node=[f40t/] fup=true
特段エラーメッセージが出ているとか、エラー終了してしまっているということはないようだ。
次に tailscale
コマンドを引数なしで実行してみて、状況調査に使えそうなものを探す。今回は netcheck
と status
を選ぶ。
$ tailscale netcheck
Report:
* UDP: false
* IPv4: (no addr found)
* IPv6: no
* MappingVariesByDestIP:
* HairPinning:
* PortMapping:
* Nearest DERP: unknown (no response to latency probes)
mumoshu@m75q2a:~$ tailscale status
Logged out.
Log in at: https://login.tailscale.com/a/**REDACTED**
status
のほうは tailscale.com へのログインが行われていない状態になってしまっている(特にログアウトの操作はしていないが)のは明らかにおかしいので、ひとまず再ログインを試みる。
指定されたURLからログインを行った後に tailscale status
と tailscale netcheck
を実行してみると、ログイン前と結果が変わっていた。
mumoshu@m75q2a:~$ tailscale status
100.93.169.59 m75q2a ykuoka@ linux -
100.101.102.103 ("hello") services@ linux -
100.92.190.40 m75q2b ykuoka@ linux -
100.81.211.118 mymac ykuoka@ macOS active; direct 183.176.176.81:41641, tx 5280 rx 4532
mumoshu@m75q2a:~$ tailscale netcheck
Report:
* UDP: true
* IPv4: yes, 121.2.182.55:11787
* IPv6: yes, [240b:253:4840:bf00:e24f:43ff:fee8:449a]:57712
* MappingVariesByDestIP: false
* HairPinning: false
* PortMapping:
* Nearest DERP: Tokyo
* DERP latency:
- tok: 18.1ms (Tokyo)
- sin: 90.7ms (Singapore)
- sea: 121.3ms (Seattle)
- sfo: 124.5ms (San Francisco)
- blr: 131.3ms (Bangalore)
- dfw: 148.5ms (Dallas)
- ord: 156.1ms (Chicago)
- nyc: 184.7ms (New York City)
- syd: 204.9ms (Sydney)
- lhr: 267.7ms (London)
- fra: 269.2ms (Frankfurt)
- sao: 296.6ms (São Paulo)
この直後にVS CodeでRemote SSHしてみると、無事接続できるようになっていた。
tailscale statusで異常が見られないとき
上記の例だと status コマンドの結果 Logged out.
が出力されていて認証がきれているのが明らかだったが、そうならないのに疎通しないこともあった。
ssh 100.xx.xx.xx
で接続できないが、 LAN からは ssh で繋がる。 LAN から ssh で接続して taiilscale status
を打ってみると以下の状態(m75q2bが疎通しないのにIPアドレスが認識されているし、Logged outでもない):
$ tailscale status
100.92.190.40 m75q2b ykuoka@ linux -
100.101.102.103 ("hello") services@ linux -
100.93.169.59 m75q2a ykuoka@ linux -
稼働している m75q2a と m75q2b で tailscale version を打ってみると、動いていない方はバージョンが古い
mumoshu@m75q2b:~$ tailscale version
1.6.0
tailscale commit: ddc975fcb268a06dc39923ec5db93f1c95b8cfc4
other commit: 995460c32665f1dab78c78512386235d275cf074
go version: go1.16.2-ts3b83fb3
mumoshu@m75q2a:~$ tailscale version
1.14.3
tailscale commit: 3a762776e6f39f4af53762f1e686a116665d3378
other commit: 75eaf27e5d03055ba3b0ad5d7791c6c4ab0b79a7
go version: go1.17-tsdd6b269c77
最終的には、 tailscale up
を実行してログインしなおしたところ接続できるようになった。
mumoshu@m75q2b:~$ sudo tailscale up
[sudo] password for mumoshu:
To authenticate, visit:
https://login.tailscale.com/a/REDACTED
Success.