WSL2で「RTNETLINK answers: Invalid argument」が出たときの話
WSLでUbuntu 24.04を使っているのですが、WSL を 2.7.8 にアップデートしてから、ss を打つたびに余計なメッセージが出るようになりました。
RTNETLINK answers: Invalid argument
エラーというより警告に近い文言で実害はありませんが、毎回出力されるのはいやな感じです。
何が起きているのか
strace で調べてくれた人の報告が GitHub microsoft/WSL #40774 にありました。
WSL 2.7.8 でカーネルが 6.18.33.1 に更新されたことで、DCCP ソケット診断用のネットリンクリクエスト(DCCPDIAG_GETSOCK)に対して -EINVAL が返るようになったようです。RTNETLINK という名前からルーティング系の問題かと思いきや、ソケット診断の経路での話でした。
upstream の iproute2 7.0.0 でこの問題への対応が入り、issue は 2026 年 6 月にクローズされました。ただ Ubuntu 24.04 が apt で提供する iproute2 はまだ 6.1.0 なので、パッケージが追いつくまでは出続けます。
基本は放置でいい
ss コマンドの動作自体に支障はありません。ソケット情報は正常に取得できていて、このメッセージはその前後に混入するだけです。
WSL 側の挙動が原因なので、ユーザー側でできることは限られます。iproute2 が更新されれば自然に解消するので、放置が一番楽だと思います。
自分の環境が対象か確認する
このメッセージが出るかどうかは WSL のバージョンと iproute2 のバージョンの組み合わせ次第です。以下のコマンドで確認できます。
wsl --version
Windows 側で実行すると、WSL 本体とカーネルのバージョンが表示されます。カーネルが 6.18.33.1 以降で、かつ Ubuntu 側の iproute2 が 7.0.0 未満(ip -V で確認可能)であれば、この現象に該当する可能性が高いです。
似たメッセージとの見分け方
RTNETLINK 関連のメッセージにはいくつか種類があり、原因が異なります。混同しないよう整理しておきます。
- RTNETLINK answers: Invalid argument(今回の現象): ss コマンド実行時にだけ、コマンド自体は正常終了しつつ余計な1行として表示される。自分で ip コマンドの引数を書いたわけでもないのに出る場合は、今回のカーネル側の既知の不具合である可能性が高いです。
- RTNETLINK answers: Invalid argument(ip コマンドの引数ミス): 自分で ip route add や ip addr add を実行し、サブネットやアドレスの指定を誤ったときにも同じ文言が出ます。この場合はコマンド自体が失敗しているので、指定したアドレスやサブネットマスクを見直す必要があります。
- RTNETLINK answers: Operation not permitted: 権限不足が原因です。root権限がない、あるいはコンテナ内で NET_ADMIN capability が付与されていないなど、実行ユーザーの権限に起因するため、今回の現象とは別に切り分けて対処してください。
見分け方のポイントは「自分がネットワーク設定を変更するコマンドを打ったかどうか」です。ss のような参照系コマンドの実行時にだけ出るなら今回の現象、ip route や ip addr のような変更系コマンドの結果として出るなら別問題と考えてよいでしょう。
どうしても気になるなら
ターミナルを開くたびに出てくるメッセージが邪魔でしたので、.bashrc に以下を追加しました。
ss() {
command ss "$@" 2>&1 | grep -v "RTNETLINK answers: Invalid argument"
}
ss をシェル関数でラップして、問題の行だけ grep -v で除外します。根治ではなく表示の抑制なので、将来 iproute2 が更新されて問題が解消されても副作用はありません。
WSL2 まわりでは、virtiofsの更新でWindowsファイルシステムへのI/Oが大幅に改善した話も書いていますので、よければあわせてどうぞ。