Starlink IPをDNSサーバに通知して自宅WireGuardサーバを実現しようと思ったらできなかった

3 min read

こんにちは、土日潰して調査していた無能です。

TL;DR

Starlink IPv4はCG NAT経由なので、なんにせよアウトバインドからは到達できません。
共有IPであり、途中で色々経由して割り振られるので無理です。

IPv6はそれぞれに割り当てられるので行けるかと思いきや、これもアウトバインドは閉ざされているようです。
つまりポートフォワーディングができていないかも、みたいなとこもありますが・・・。 全てのポートでリクエスト送ったわけではないですが、一般的なWell Known PortsはTCPもUDPも駄目でした。
最低限80/tcpとか、53/udpいけるのでは?と思った私が甘かったです。

やりたいこと

できなかったわけですがやりたかったことを書いておきます。
スマホ <-> 自宅サーバが直接疎通できればVPSの帯域制限無く疎通できるはず。
A/AAAAレコードを設定しWireGuardのエンドポイント先指定ができれば、あとはIP通知さえできればクライアント側の設定は変更せずに行けるはずや!と思いました。
WireGuardサーバエンドポイント例: test.example.com:51820

なので自分で作ったGitHub - haturatu/conoha-dns: ConoHaのDNSをCLIで操作できるツールをシェルスクリプトで変更あれば更新するようにGitHub - haturatu/conotify: ConoHa DNSで自宅のPublic IPを通知して更新してくれるスクリプトをビール飲みながら書いてた。
結果的にはスクリプトは動いたけど駄目だった・・・。細かくやるならば、API叩く前にグローバルIPをハッシュしといて/tmpとかに吐き出して差分アレば更新とかでよかったかもなあと思っているけど・・・。

ip addrの調査

そもそも51280/udpはローカルでも疎通できないようになっていて、試してはいないけど他のUDPポートは疎通ができた。
一応、ローカル環境下では見せかけのグローバルIPであればローカルからのアクセスとしてうまいことルータが振り分けているっぽく基本どうやっても疎通が通る。
しかし、外部通信、例えば別の回線からリクエストが通るかどうか?を試した結果、どうやってもIPv6では到達ができなかった・・・。

もちろん、IPv4は言わずもがな、である。
一般的にはsudo ufw allow 80/tcpすればそのポートが公開されるのでそれでIPv6でリクエストを送ったら別回線からは完全に到達できない・・・。
自宅サーバはiptables化しているのでufwは使っていないですが、NATルール書いてetc....諸々やったけど駄目でした。

Starlinkルータが空いているポート

これはローカルなので、自分のStarlinkルータにnmapした結果です。
いや、驚きだったのが昔のtorポートが空いているんですよね。
とはいえ、デフォは9050/tcpだったか?
でもIANAのページ見ると別にそんなこともなさそうなので、まあたまたまnmapのサービスプロトコル表示違いなだけでしょう。
Service Name and Transport Protocol Port Number Registry
謎に9000/tcp - 9006/tcpが空いているというのが不思議ですが・・・なんのため?

TCP:

$ nmap -p 1-65535 192.168.1.1
Starting Nmap 7.98 ( https://nmap.org ) at 2025-10-19 20:45 +0900
Nmap scan report for 192.168.1.1
Host is up (0.0021s latency).
Not shown: 65524 filtered tcp ports (no-response)
PORT     STATE  SERVICE
22/tcp   open   ssh
53/tcp   closed domain
80/tcp   open   http
443/tcp  closed https
9000/tcp open   cslistener
9001/tcp open   tor-orport
9002/tcp open   dynamid
9003/tcp open   unknown
9004/tcp open   unknown
9005/tcp open   golem
9006/tcp open   unknown

Nmap done: 1 IP address (1 host up) scanned in 105.11 seconds

UDP:

$ sudo nmap -sU  -p 1-65535 192.168.1.1
Starting Nmap 7.98 ( https://nmap.org ) at 2025-10-19 20:51 +0900
Nmap scan report for 192.168.1.1
Host is up (0.0076s latency).
Not shown: 65534 open|filtered udp ports (no-response)
PORT   STATE SERVICE
53/udp open  domain
MAC Address: 74:24:9F:4C:E2:67 (Tibro)

Nmap done: 1 IP address (1 host up) scanned in 1001.46 seconds

HTTP

最低限HTTPサーバ(80/tcp)は行けるやろ!

無理っす。。。

PGP --- Contact --- Machines --- cat -v