11
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ラズパイ4のsshが超遅いときはIPv6を無効化するとよい

Last updated at Posted at 2020-02-05

環境

セットアップ環境の詳細はラズパイ4にraspbian busterをセットアップを参照。

  • Raspberry Pi 4 Model B (RAM 4GB)
  • raspbian buster (2019-09-26-raspbian-buster.zip)

現象

ラズパイにssh接続すると、繋がるまでに時間がかかる。

原因

デフォルトがIPv6接続→IPv4接続の順となっており、IPv6接続のタイムアウトまでの時間がかかっていた。(セットアップ時にどっかミスったのかもしれないけど)

Windows Powershellから接続しても、他のLinuxから接続しても遅いためラズパイ側の問題だろうとあたりをつけた。

sshするときに-vオプションを付けて実行すると、デバッグ情報が表示できる。ここではWindowsからラズパイに接続しており、IPv6アドレスっぽい接続にタイムアウトで失敗したあと、IPv4で接続していることが分かる。

$ ssh -v ユーザ名@マシン名
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
debug1: Connecting to マシン名 [xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx] port 22.
debug1: connect to address xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx port 22: Connection timed out
debug1: Connecting to マシン名 [yyy.yyy.yyy.yyy] port 22.
debug1: Connection established.

改善方法

ラズパイの設定を変更する。

$ sudo vi /etc/sysctl.conf

sysctl.confに下記を追記する。

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

sysctl.confの変更を反映する。

$ sudo sysctl -p

下記コマンドでinet6という項目がないことを確認する。

$ ip a

一度、ssh接続を終了.

$ exit

再度sshで接続して確かめる。

$ ssh -v ユーザ名@マシン名
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
debug1: Connecting to マシン名 [yyy.yyy.yyy.yyy] port 22.
debug1: Connection established.

( ..)φメモ

上記は、全インターフェースでIPv6を無効化している。特定のインターフェースのみ無効化したい場合は、/etc/sysctl.confへの追記項目を下記にすればよい。以下、eth0のみ無効にする例。

net.ipv6.conf.eth0.disable_ipv6 = 1
11
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?