次のコマンドを使用して、UbuntuでTCPまたはUDPソケットを開く方法を知っています。
exec 3<>/dev/tcp/google.com/80
たとえば、
ポート80ではTCPソケットを開くことができますが、Kali Linuxでは開くことはできません。TCPディレクトリ頼る実装する注文する。
Kali Linuxでソケットを開く方法を教えてくれる人はいますか?
bash(スクリプト)を使用してTCP / UDPソケットを開くより良い、より標準的な方法はありますか?
答え1
問題のコードは、実際には/dev/tcp
ファイルシステムの既存のコードには依存しません。むしろこれは Bash 自体の機能です。たとえば、例のファイル記述子 3 に単純な HTTP 要求を作成すると、次のような応答が必要です。
> ls /dev/tcp ls: /dev/tcp: No such file or directory
> exec 3<>/dev/tcp/google.com/80
> echo -e "GET / HTTP/1.1\n\r" >&3
> cat <&3
HTTP/1.1 302 Found
Cache-Control: private
Content-Type: text/html;
charset=UTF-8
[...SNIP...]
これがシェルで機能しない場合は、使用しているプライマリシェルにこの特定の機能がない可能性があります。
シェルスクリプト内でTCP / UDP接続を確立するための他の広く使用されている方法は次のとおりです。netcat
そしてsocat
公共施設。