Debian
/dev/tcp/host/port, /dev/udp/host/port 這是什麼核心模組?
我在 bash(1) 手冊頁中註意到了這一點。是否有提供此介面的作業系統或某些核心模組?在我的 Debian 安裝上嘗試過,這些設備不存在。
謝謝
/dev/tcp/host/port If host is a valid hostname or Internet address, and port is an integer port number or service name, bash attempts to open the corresponding TCP socket. /dev/udp/host/port If host is a valid hostname or Internet address, and port is an integer port number or service name, bash attempts to open the corresponding UDP socket.
解決方案/答案:這是可行的,它是外殼的一個功能。去測試:
$ nc -l -p 5555 echo Hello > /dev/tcp/localhost/5555 $ nc -l -p 5555 Hello
很酷。
正如 Jeff 所說,這是由 Bash 實現的功能,而不是由核心實現的。它僅適用於 shell 腳本或 shell 的命令行;其他程序打不開
/dev/tcp/...
。要將其實現為核心模組,您必須提供一個新的虛擬文件系統。
要查看實際情況,您可以將 Bash 與 netcat 結合使用。跑
nc -l -p 5555
在一個終端中,然後
echo Hello > /dev/tcp/localhost/5555
在另一個; 你會在終端執行中看到“Hello”
nc
。