Starlink Statuspageに参加してStarlinkのパフォーマンスを可視化しよう！

# はじめに
Starlink。
高度300~500kmのLEO(低軌道)に大量の人工衛星を打ち上げ、空さえ見えればどこでも高速なインターネット接続を可能にするやべーやつです。日本では期間限定で接続に必要なハードウェアが半額で手に入り、月額料金も当初の半額程度に値下げされ、そのロマンとお得感にポチってしまった人も多いはず。
しかし、衛星通信ゆえに光回線ほどの安定した接続は望めず、時間によって通信速度の低下やping値が悪化することも...
[Starlink Statuspage](https://starlinkstatus.space)は、世界中のStarlinkユーザー有志による自動化されたスピードテストの結果を集計し、Starlinkのパフォーマンスの可視化に挑戦しているコミュニティです！
Starlink Statuspage はStarlinkを利用している一般ユーザの協力により成り立っています。より多くのユーザによるデータを収集できれば、より詳細かつ正確なパフォーマンスの把握に役立ちます。あなたも是非やってみませんか？

# セットアップ
セットアップに必要な情報は[Starlink StatuspageのGitHub](https://github.com/Tysonpower/starlinkstatus)に記されていますが、ここではより分かりやすく説明することを目的とし、日本語で詳細に手順を記したいと思います。

## ユーザ登録
[Starlink Statuspage](https://starlinkstatus.space/)にアクセスし、ページを下へスクロールします。
"First - Register" にメールアドレス・パスワード・ユーザネームを入力し"Join Us"をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/287f2ce1-cbf4-5a2a-227a-3b915919af1f.png)
登録が完了したらサインイン。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/cb673ee7-0f9b-b8f3-001b-0524db98ba17.png)
ページ上部の"[Dash](https://starlinkstatus.space/dash)"をクリックすると、自分のStationの設定画面が表示されます。
右上の歯車ボタンを押すことでStationの名前の変更や位置の設定が可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/123ba79b-0d7a-b94b-e554-b4c645775a0a.png)
Nameにお好みの名前、latitudeに緯度、longitudeに経度を入力します。
たとえ正確な座標を入力しても、Starlink Statuspage側で意図的に座標に数kmの誤差を与える配慮がなされているようです。
地方さえ合っていれば、わざと他県の座標で登録したりするのもアリだと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/f2e38387-4122-b9d0-a0a6-662f9f174a04.png)
Station Key は後々必要になりますのでコピーしておきます。

## プログラムのセットアップ-Windowsの場合
### WSLのインストール
このツールの実行にはWindows上でLinux用のプログラムを実行できる[Windows Subsystem for Linux](https://learn.microsoft.com/ja-jp/windows/wsl/)を利用します。
[Microsoftのドキュメント](https://learn.microsoft.com/ja-jp/windows/wsl/setup/environment)に従ってWSLをインストールしてみましょう！

まずはWindowsのコマンドプロンプトを起動します。
"Windows"キーと"R"キーを同時に押し、「ファイル名を指定して実行」ダイアログを表示します。「名前(O):」の入力窓に"cmd"と入力して、"Shift"キーと"Ctrl"キーを押しながら"OK"をクリックします。これはコマンドプロンプト管理者権限で実行するために必要です。「ユーザアカウント制御」ダイアログが表示されたら"OK"をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/cfce3140-db90-cf3b-25e1-e9fd5cbdbb1d.png)
するとこのような真っ黒なウィンドウが開きます。
ここからの作業はここに文字を入力することで進めていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/be603df9-9b44-895b-dec4-f69d8dda25fa.png)
では、以下のコマンドをコピー&ペーストして、Enterを押して実行してみてください！
```
wsl --install -d Debian
```
これによってWinwowsにWSLがインストールされます。今回は個人的に馴染みのある、Debianと呼ばれるディストリビューションを利用しています。
インストールが完了するとこのようなウィンドウが起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/24930ac9-a463-e4f2-099b-3f3538fe7044.png)
ここではWSL上のユーザのusernameとpasswordを設定します。
英数字・半角記号でお好みのものを設定しましょう。
設定が成功するとこのような表示になります。これにてWSLのセットアップは完了です！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/9cf8505d-9168-2a70-30d1-80bb45530e59.png)

### 各種ソフトウェアのインストール
先ほどの緑文字が表示されたターミナルにコマンドを入力して進めていきます。
#### git/wget
ソフトウェアのデータをダウンロードするために利用します。
```
sudo apt install git wget
```
:::note info
こんな警告が表示されましたか？
```
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for kitakami:
```
この警告は、Linuxで初めて管理者権限を使おうとした際に表示されます。大きな力には大きな責任が伴うのです...ということで先ほど設定したpasswordを入力します。
:::
"Do you want to continue? [Y/n]"と聞かれたら、"y"を入力してEnterします。

#### ookla speedtest-cli
スピードテストを行うプログラムです。
```
sudo apt install curl
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash
sudo apt install speedtest
```
インストールが完了すると、以下のコマンドでスピードテストを行えるようになります。
```
speedtest --accept-license --accept-gdpr
```
:::note info
このコマンドは各種ライセンス・規約への同意を行うオプション(--accept-license --accept-gdpr)が含まれています。
内容は以下のページをご確認ください。
[https://www.speedtest.net/gdpr-dpa](https://www.speedtest.net/gdpr-dpa)
[https://www.speedtest.net/about/eula](https://www.speedtest.net/about/eula)
[https://www.speedtest.net/about/terms](https://www.speedtest.net/about/terms)
[https://www.speedtest.net/about/privacy](https://www.speedtest.net/about/privacy)
:::

#### gRPCUrl
Starlink Dish (アンテナ)と通信を行い、pingなどの情報を得るために利用されます。
同時に、これをセットアップするために[Googleの"GO SDK"](https://go.dev/doc/install)もインストールします。
```
wget https://go.dev/dl/go1.20.1.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.20.1.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest
sudo cp ./go/bin/grpcurl /usr/bin
```

#### starlinkstatus
これまでにセットアップしたプログラムを使って情報を収集し、Starlink Statuspageに送信します。
```
git clone https://github.com/Tysonpower/starlinkstatus
sed -i 's/speedtest -V --accept-license/speedtest --accept-license/g' ./starlinkstatus/starlinkstatus_client.sh
cd ./starlinkstatus && sudo chmod 700 starlinkstatus_client.sh && pwd
```
最後のコマンドを実行すると"/home/username/starlinkstatus"のような文字列が表示されます。後ほど必要になるためコピーしておきます。

### 自動定期実行の設定
Windowsのタスクスケジューラ機能を用いて、定期的に自動で計測が行われるようにします。
"Windows"キーと"R"キーを同時に押し、「ファイル名を指定して実行」ダイアログを表示します。「名前(O):」の入力窓に"taskschd.msc"と入力して"OK"をクリックします。
下のようなウィンドウが表示されたら「タスクスケジューラライブラリ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/ec428282-5268-d681-9c93-41c0ba21d8b9.png)
画面が切り替わったら、ウィンドウ右側の「タスクの作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/f5cf5cea-db8c-e81b-ed95-d076ab90c6e9.png)
以下のような感じに設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/8609bbe2-95c4-30dd-42ac-be4af66baea5.png)

基本設定。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/c554ea20-1d17-4da0-9dac-82cd188c8c72.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/a86e3a20-f789-a787-d05e-c4334fab1183.png)
トリガー設定。測定に2分程度かかるため、xx時58分30秒を起点に30分や1時間ごと実行されるようにしておくとアップロード時刻が00分,30分になって気持ちが良い...
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/8bfccf9a-f9c0-267f-4341-603ae3723a1b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/1ef9007f-31c5-087e-e20a-c731f3035b29.png)

操作内容の設定。
「プログラム/スクリプト(P):」には"wsl.exe"
「引数の追加(オプション(A):」には"-u root 'path to starlinkstatus'/starlinkstatus_client.sh -k 'Your Station ID' -s -d"
「開始(オプション)(T):」にはwsl.exeが存在しているフォルダのパス
をそれぞれ入力する。
'path to starlinkstatus'は先の作業でコピーしておいた"/home/username/starlinkstatus"のような文字列
'Your Station ID'はユーザ登録時コピーしておいた"37fcbca1ae96a3e0"のような文字列
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/bb092e78-dc49-169b-f6aa-c89fca574c25.png)
wsl.exeが存在しているフォルダのパスは、デスクトップ左下の"ここに入力して検索"にWSLと入力すると現れる「ファイルの場所を開く」から知ることができる。
例:"C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForLinux_1.0.3.0_x64__8wekyb3d8bbwe"
一通り入力が終わったら"OK"をクリックし、Windowsのアカウントのパスワードを入力する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/24e97b98-822c-e8da-3dc3-9980b9d9aa80.png)
作成したタスクを右クリック・実行
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/db865ed6-da63-f4f2-c4a9-6bc53422b31d.png)
このようなウィンドウが表示され計測が始まったら成功です！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/63f4a87e-abf9-0704-58d5-24e8a6811e87.png)

# 計測結果を確認しよう
Starlink Statuspageの["Dash"](https://starlinkstatus.space/dash)ページでは、ログインすると自分のStationからアップロードされたデータの最新情報を閲覧することができます。
また、データ送信から数時間経過すると、["stations"](https://starlinkstatus.space/stations)ページの地図上にピンが表示され、通信速度やping値のプロットが見られるようになります！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/1f668215-65a6-bc07-54bd-bd6551fba696.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/ae5b3f87-0827-ec77-ec39-da7fcf350f69.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3167607/b50ead9e-cc5b-35c1-3954-be639d9dc867.png)
私の環境では過去最高でDL285Mbps,UL42Mbpsだそうです。
私のStationの結果は[このリンク](https://starlinkstatus.space/stations/1288)から見ることができます。

### 注意
StarlinkStatus.spaceはコミュニティベースのStarlinkステータスサイトであり、SpaceXやStarlink公式とのつながりはありません。(とのことです。)