modules.conf
に次の行を入力しました /etc/modules-load.d/modules.conf
の下のファイル パス:
alias char-major-10-200 tun
次に、Debian9.5Linuxプロンプトから次のコマンドを入力しました。
$ depmod -a
しかし、次のエラーメッセージが表示されました:
"depmod: ERROR: could not open directory /lib/modules/4.4.0-17134-Microsoft:
No such file or directory"
および
"depmod: FATAL: could not search modules: No such file or directory"
上記の「エイリアス」コードとそれに続くコマンドは、次のリンクにあります:「http://bochs.sourceforge.net/doc/docbook/user/config-tuntap.html」
>miredo_1.2.3-1.1_amd64(正しく理解していれば、Teredoサーバー)を実行して、Debianバージョン9.5Linuxオペレーティングシステムで通常のトンネル接続を確立しようとしています。 miredoの「README」ファイルには、「CONFIG_TUN」と「CONFIG_IPV6」が必要であると記載されています。
何か提案はありますか?
承認された回答:
/lib/modules
から あなたが私たちに提示するメッセージ、あなたがWSL用のDebian GNU / Linux(Windows10用)を使用していることは明らかです。
残念ながら、WSLカーネル/ WindowsHALは異なる抽象化レイヤーの下で/Windowsの下で異なる方法で動作し、「通常の」LinuxカーネルDebian実装で与えられているようないくつかの難解な機能をサポートしません。
より高度なIPソケット機能で動作するこのようなソフトウェアを実行する場合は、DebianWSLではなくVMでDebianを実行する必要があります。
Windows 10 Proを使用している場合は、Hyper Vを使用する方が適しています。この場合、VirtualBox(無料)またはVMWareを実行すると、Teredoサーバーを使用できます。
depmod -a
また、WSLは真のLinuxカーネルを使用しておらず、Linuxカーネルモジュールをロードできないため、機能しません。
すべてのLinuxアプリをWSLで実行できますか?
いいえ! WSLは、必要なユーザーがWindowsでBash
およびコアLinuxコマンドラインツールを実行できるようにすることを目的としたツールです。
Windows10でLinuxツールを使用する際に知っておくべき18のことから
WSLはLinuxディストリビューションであり、Linuxカーネルではありません
WSLは、PCにLinuxディストリビューションをインストールします。 Linuxバイナリは通常どおり
システムコールを実行しますが、ターナー氏は、これらのシステムコールは
代わりにWindowsカーネルに送信されるだけだと説明しています。
MicrosoftWSLgithubからhttps://github.com/Microsoft/WSL/issues/2340
では、tunはどの段階でも実装される予定ですか?
今のところありそうもない…。 WSLの設計を考えると、WSLがネイティブLinuxカーネルモジュールをロードする方法はありません。
Linux上のABIに面したユーザースペースは
Linuxカーネル間でかなり安定していますが、カーネルに面したABI
(ドライバーとモジュール用)は絶えず変化し、変化しています。
また、MSGithubWSLプロジェクトhttps://github.com/Microsoft/WSL/issues/874
tun/tapデバイスのサポートをリクエストしているようです。
実装されるとは思いません。これには、カーネル側の特別な注意が必要になります。ユーザースペースツールを機能させるだけの問題ではありません。
RTNETELINKが「無効な引数」エラーを出している理由は、ソケットのカーネル側が現在存在しないためです。
Linuxカーネルと完全なABI/サポートがない場合、MSチームがすべての機能をエミュレートしていない間は、バイナリをコンパイル、使用、または実行することができます。
関連:グロブされたファイル名へのリダイレクトは失敗しますか?
簡単なメモ:WSLはiptablesファイアウォールルールを実行していません。また、script
を実行することもできます。 コマンド。
もう一度言いますが、通常のLinuxカーネルはありません。マイクロソフトのエンジニアによって作成されたエミュレーション「カーネル」があり、LinuxカーネルABIのサブセットを変換/エミュレートし、WindowsHALを呼び出します。一般的な高度なサーバーサービスを実装しようとしないスクリプトとユーザーランドバイナリの大部分を実行できるようにするのに十分なサブセット。