Networking

什麼在使用這個網路套接字?

  • November 4, 2015

我正在嘗試使用 NTP 更新我機器上的時間。但是,它給了我一個錯誤:

host # ntpdate ntp1.example.org
10 Aug 12:38:50 ntpdate[7696]: the NTP socket is in use, exiting

錯誤“套接字正在使用中”是什麼意思?如何查看正在使用此套接字的內容?

這發生在我的 CentOS 4.x 系統上,但我也在 FreeBSD 7.x、Ubuntu 10.04 和 Solaris 10 上看到它。

你可以做

lsof -n | grep -i "TCP\|UDP" | grep -v "ESTABLISHED\|CLOSE_WAIT"

查看您所有的監聽埠,但要查看 ntpd 正在執行的甜甜圈的美元:

service ntpd status

至於“socket in use”是什麼意思?如果我可以原諒我撫平了一些皺紋(並且對於非常基本的解釋,大部分的道歉對你來說是補救)…… TCP / IP(網際網路的語言)指定每台電腦都有一個IP地址,它在網際網路上唯一標識該電腦。此外,每個 IP 地址上還有 65,000 個編號的埠可以連接。

當您想連接到 Web 伺服器時,您在瀏覽器中打開該站點,但下面的機器實際上將您連接到 Web 伺服器 IP 上的埠 80。Web 伺服器的守護程序(監聽到埠 80 的連接的程序)使用“套接字”來保持該埠的打開,並為自己保留它。一次只能有一個程序使用同一個埠。

由於您執行了 ntpd,因此它正在使用該埠。’ntpdate’ 試圖訪問那個埠,但由於它已經保持打開狀態,你得到了 ‘socket already in use’ 錯誤。

編輯

更改為也考慮 UDP

引用自:https://unix.stackexchange.com/questions/17