web-dev-qa-db-ja.com

WindowsのBashでpingできない

実行しようとすると:

ping www.google.com

次のエラーが発生します。

ping: icmp open socket: Permission denied

Sudoで実行しても違いはありません。

14
Silveri

更新:この問題は、Windows 10 Creators Update(2017年4月)以降修正されています。 WindowsのBashは、pingコマンドを実行するために管理者権限を必要としなくなりました。

「Windows TCP/IPスタックには、セキュリティ対策のためにRAWソケットを開くための管理者権限が必要です」[ source ]。 MSDN post を参照してください。これは、pingによって使用されるICMPなどの低レベルのネットワークプロトコルにのみ適用されます。

管理者として「Bash on Windows」シェルを実行すると、pingコマンドが機能するようになります。ショートカットを右クリックしてオプションを選択するだけです。

Select 'run as administrator' for Bash start menu shortcut

これは、これらの権限で開かれた単一のセッションでのみ機能します。

他のコマンドもインターネットに接続できない場合(例:apt-getwget)次に、 LinuxのWindowsサブシステムでインターネットアクセスが機能しない も確認する必要があります。

23
Silveri

@Silveriの回答で指摘されているように、ICMPプロトコルが必要であるため、以前は機能しませんでした 以前のバージョンでは実装されていませんでした

ビルド14352以降、 管理者権限を持つコンソールで有効 になりました。

ビルド14926から 管理者権限を持たないコンソールで有効 になりました。

2
Gaia