apt-get が途中で0% [Waiting for headers] [Waiting for headers] から動かなくなる。git clone もうまく行かない
apt-get update が途中で0% [Waiting for headers] [Waiting for headers] から動かなくなる。
user@server:$ sudo apt-get update Hit:1 http://jp.archive.ubuntu.com/ubuntu xenial InRelease Ign:2 http://dl.google.com/linux/chrome/deb stable InRelease Hit:3 http://download.virtualbox.org/virtualbox/debian raring InRelease Ign:4 http://archive.ubuntulinux.jp/ubuntu xenial InRelease Hit:5 http://archive.ubuntulinux.jp/ubuntu xenial Release Hit:7 http://dl.google.com/linux/chrome/deb stable Release Ign:9 http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist InRelease Hit:10 http://ppa.launchpad.net/cwchien/gradle/ubuntu xenial InRelease Hit:11 http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist Release Hit:13 http://ppa.launchpad.net/webupd8team/java/ubuntu xenial InRelease Ign:14 https://dl.bintray.com/sbt/debian InRelease Get:15 https://dl.bintray.com/sbt/debian Release [814 B] Hit:15 https://dl.bintray.com/sbt/debian Release 0% [Waiting for headers] [Waiting for headers]
止まる箇所はいろいろで、 git clone も必ず失敗する。 何か大きすぎるファイルでもあったかなと思うけど これも止まるパーセンテージが毎回違う
user@server:~$ git clone git@gitserver/repos.git Cloning into 'repos'... remote: Counting objects: 1242, done. remote: Compressing objects: 26% (159/611)
しかも回数試すと落とせている量がだんだん少なくなって不安
user@server:~$ git clone git@gitserver/repos.git Cloning into 'repos'... remote: Counting objects: 1242, done. remote: Compressing objects: 16% (98/611) ^Cfatal: The remote end hung up unexpectedly user@server:~$ git clone git@gitserver/repos.git Cloning into 'repos'... remote: Counting objects: 1242, done. remote: Compressing objects: 13% (80/611) ^Cfatal: The remote end hung up unexpectedly user@server:~$ git clone git@gitserver/repos.git Cloning into 'repos'... remote: Counting objects: 1242, done. remote: Compressing objects: 19% (117/611) ^Cfatal: The remote end hung up unexpectedly
毎回必ず減るわけでもなかった
原因
変えてみて治ったからわかったのだけど、
MTU の設定がお気に召さなかったよう。
今 1500 になっている
user@server:~$ ifconfig ~~~ TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) ethnum Link encap:Ethernet HWaddr nn:nn:nn:nn:nn:nn inet addr:nn.nn.nn.nn Bcast:nn.nn.nn.nn Mask:nn.nn.nn.nn inet6 addr: nnnn.nnnn.nnn.nnnn/nn Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:9272391 errors:0 dropped:0 overruns:0 frame:0 TX packets:11482380 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4768499875 (4.7 GB) TX bytes:8317645986 (8.3 GB) Interrupt:18 Memory:f71c0000-f71e0000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 ~~~
解決方法
mtu を適切に設定
user@server:~$ sudo ifconfig ethnum mtu 1468
最適な MTU の確認方法
パケットのサイズを指定しながら ping を打ってみて、繋がる最大値が最適な値です。
下での確認内容
- 1500 で送ってみて、帰ってこないのでNG (1500は今の値なので当然つながらない)
- 1400 で OK
- 1450 で OK
- 1475 で NG
- 1462 で OK
- 1468 で OK
- 1470 で NG
- 1469 で NG
- 1468 で OK
なので、1468 で設定。
確認がややこしければ1450 とかにしてみて繋がるならそのままでもokです。
効率は悪くなるけど、まずは繋がるんだから . .
user@server:~$ ping -c 1 -s 1500 example.com PING example.com (93.184.216.34) 1500(1528) bytes of data. ^C --- example.com ping statistics --- 1 packets transmitted, 0 received, 100% packet loss, time 0ms user@server:~$ ping -c 1 -s 1400 example.com PING example.com (93.184.216.34) 1400(1428) bytes of data. 1408 bytes from 93.184.216.34: icmp_seq=1 ttl=51 time=129 ms --- example.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 129.984/129.984/129.984/0.000 ms user@server:~$ ping -c 1 -s 1450 example.com PING example.com (93.184.216.34) 1450(1478) bytes of data. 1458 bytes from 93.184.216.34: icmp_seq=1 ttl=51 time=129 ms --- example.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 129.737/129.737/129.737/0.000 ms user@server:~$ ping -c 1 -s 1475 example.com PING example.com (93.184.216.34) 1475(1503) bytes of data. ^C --- example.com ping statistics --- 1 packets transmitted, 0 received, 100% packet loss, time 0ms user@server:~$ ping -c 1 -s 1462 example.com PING example.com (93.184.216.34) 1462(1490) bytes of data. 1470 bytes from 93.184.216.34: icmp_seq=1 ttl=51 time=129 ms --- example.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 129.576/129.576/129.576/0.000 ms user@server:~$ ping -c 1 -s 1468 example.com PING example.com (93.184.216.34) 1468(1496) bytes of data. 1476 bytes from 93.184.216.34: icmp_seq=1 ttl=51 time=130 ms --- example.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 130.739/130.739/130.739/0.000 ms user@server:~$ ping -c 1 -s 1470 example.com PING example.com (93.184.216.34) 1470(1498) bytes of data. ^C --- example.com ping statistics --- 1 packets transmitted, 0 received, 100% packet loss, time 0ms user@server:~$ ping -c 1 -s 1469 example.com PING example.com (93.184.216.34) 1469(1497) bytes of data. ^C --- example.com ping statistics --- 1 packets transmitted, 0 received, 100% packet loss, time 0ms user@server:~$ ping -c 1 -s 1468 example.com PING example.com (93.184.216.34) 1468(1496) bytes of data. 1476 bytes from 93.184.216.34: icmp_seq=1 ttl=51 time=130 ms --- example.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 130.318/130.318/130.318/0.000 ms user@server:~$