Windows Subsystem for Linuxのnet-tools関係が部分的に動かない [Linux]
WSL(Ubuntu)を使ってLinux入門のさわりをしてきましたが、使っていて気になったところを書いておきます。やっぱりいくつか普通のLinuxとは違う動きをするところもあるようなので。
一つはarpコマンドがあんまりうまく動いてないこと。
こんな感じ。エラーメッセージが何を示しているのかは不明。
Windowsのarpは
で普通に動いていたし、sshで他のマシンにつないでarpを何もつけないで動かすときちんとテーブルが表示される。やっぱりWSLでは上手く動いていないんでしょう。パラメータを付ければ動くかもしれないけど、そういう面倒な事はしたくありません。というか全体のテーブルが出てこないんだから、個別に指定したところでどうにもならないんじゃないかと。
他のネットワーク系のコマンドを打ってみようとしましたが、tracerouteがIPv6版のtraceroute6しか元から入っていないようなので、
で入れてみました。ダメでした。IPv6かどうかの問題じゃない。
同じローカルアドレスのマシンでうまくいっているのに、なんでうまくいかないのかなぁと。もしかしたらpingさえもローカルで通らないんじゃないかと思ってやってみました。
ん?pingは普通に通るな。むーん、Windowsのファイヤーウォールとかの問題じゃないっぽい。やっぱWSLの問題なんだろう。rebootとかshutdownが使えないのはともかくとして、ネットワーク系のコマンドが使えないというのは由々しき問題かもしれない。考えられるのは
・WSLの対応が腐っている
・環境の設定が足りていない
くらいのことかもしれない。
音を上げてググったら
http://d.hatena.ne.jp/labunix/20121028
/dev/route
/etc/ethers
がないと動かないようなので、WSLの中を探してみてもどちらもなかった。普通に動くUbuntu内を探してみると、/dev/routeはなく、/etc/ethersが/etc/ethertypesになっている模様。
/etc/ethertypesをWSLに持ってきたり、名前をethersに変えてみたものの変化はなし。そもそも/proc/net/arpがないと言っているので、素直に見に行ってみると素直にありませんでしたw。コマンドがなけりゃ動かないよな。ただ、インストールされているとしてるのに実態がないというのはどういう事なんだろう。
arpを入れ直してみようと思ったら単独パッケージは存在していなくてnet-toolsというものでした。
とあったのですが、そもそもすでに入っていると言われるし。そのくせifconfigは普通に動くという訳の分からなさ。たぶん、泥縄式に作っているのでしょうね。まぁここまでの完成度を見せた時点でMSとしては奇跡な気がするし、しばらくの間は目をつぶらないといけないのかもしれません。
そんなこんなで、WSL自体は普通に使えないどころか、ビギナーにも不向きなんじゃないかと思われます。ディストリビューションは多くのツールが動くという状態を維持してディストリビューション足るものなのでしょうから、正直この状態は寸足らずと言っていいと思います。入門にお勧めしておいてなんだけど、ユーザーランド以外のものなどを少し使おうとするとダメだねこりゃ。プログラミング環境としてもどこまで使えるものなのかよく分からない。わけわからんのでtracerouteも放置w。
《後記》
tailみたいな簡単なコマンドでも動かないという報告が他で見られたので、ユーザーランド全体が腐っている可能性は高い。MSを信じた自分に腹が立つw。
一つはarpコマンドがあんまりうまく動いてないこと。
$ arp
/proc/net/arp: そのようなファイルやディレクトリはありません
こんな感じ。エラーメッセージが何を示しているのかは不明。
Windowsのarpは
arp -a
で普通に動いていたし、sshで他のマシンにつないでarpを何もつけないで動かすときちんとテーブルが表示される。やっぱりWSLでは上手く動いていないんでしょう。パラメータを付ければ動くかもしれないけど、そういう面倒な事はしたくありません。というか全体のテーブルが出てこないんだから、個別に指定したところでどうにもならないんじゃないかと。
他のネットワーク系のコマンドを打ってみようとしましたが、tracerouteがIPv6版のtraceroute6しか元から入っていないようなので、
sudo apt install traceroute
で入れてみました。ダメでした。IPv6かどうかの問題じゃない。
同じローカルアドレスのマシンでうまくいっているのに、なんでうまくいかないのかなぁと。もしかしたらpingさえもローカルで通らないんじゃないかと思ってやってみました。
ん?pingは普通に通るな。むーん、Windowsのファイヤーウォールとかの問題じゃないっぽい。やっぱWSLの問題なんだろう。rebootとかshutdownが使えないのはともかくとして、ネットワーク系のコマンドが使えないというのは由々しき問題かもしれない。考えられるのは
・WSLの対応が腐っている
・環境の設定が足りていない
くらいのことかもしれない。
音を上げてググったら
http://d.hatena.ne.jp/labunix/20121028
/dev/route
/etc/ethers
がないと動かないようなので、WSLの中を探してみてもどちらもなかった。普通に動くUbuntu内を探してみると、/dev/routeはなく、/etc/ethersが/etc/ethertypesになっている模様。
/etc/ethertypesをWSLに持ってきたり、名前をethersに変えてみたものの変化はなし。そもそも/proc/net/arpがないと言っているので、素直に見に行ってみると素直にありませんでしたw。コマンドがなけりゃ動かないよな。ただ、インストールされているとしてるのに実態がないというのはどういう事なんだろう。
arpを入れ直してみようと思ったら単独パッケージは存在していなくてnet-toolsというものでした。
$ sudo apt show net-tools Package: net-tools Version: 1.60-26ubuntu1 Priority: important Section: net Origin: Ubuntu Maintainer: Ubuntu DevelopersOriginal-Maintainer: net-tools Team Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 725 kB Depends: libc6 (>= 2.14) Conflicts: ja-trans (<= 0.8-2) Replaces: ja-trans (<= 0.8-2), netbase (<< 4.00) Homepage: http://net-tools.berlios.de/ Task: minimal Supported: 5y Download-Size: 175 kB APT-Manual-Installed: yes APT-Sources: http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages Description: NET-3 networking toolkit 本パッケージには Linux カーネルのネットワークサブシステムを制御するための 重要なツールが含まれます。それらには、arp, ifconfig, netstat, rarp, nameif そして route が含まれます。さらに、本パッケージには特定のネットワーク ハードウェアに関連するユーティリティ (plipconfig, slattach, mii-tool) および IP 設定の先進部門に関連するユーティリティ (iptunnel, ipmaddr) が含まれます。 . 上流パッケージでは、'hostname' とその相棒も含まれていますが、独自の "hostname*.deb" が存在するので、本パッケージでは、それらはインストール されません。
とあったのですが、そもそもすでに入っていると言われるし。そのくせifconfigは普通に動くという訳の分からなさ。たぶん、泥縄式に作っているのでしょうね。まぁここまでの完成度を見せた時点でMSとしては奇跡な気がするし、しばらくの間は目をつぶらないといけないのかもしれません。
そんなこんなで、WSL自体は普通に使えないどころか、ビギナーにも不向きなんじゃないかと思われます。ディストリビューションは多くのツールが動くという状態を維持してディストリビューション足るものなのでしょうから、正直この状態は寸足らずと言っていいと思います。入門にお勧めしておいてなんだけど、ユーザーランド以外のものなどを少し使おうとするとダメだねこりゃ。プログラミング環境としてもどこまで使えるものなのかよく分からない。わけわからんのでtracerouteも放置w。
《後記》
tailみたいな簡単なコマンドでも動かないという報告が他で見られたので、ユーザーランド全体が腐っている可能性は高い。MSを信じた自分に腹が立つw。
タグ:Linux入門
コメント 0