Opensuse

配置 OpenSuSE 的 xinetd

  • December 3, 2011

我需要在 OpenSuSE 機器上執行approx,這是 Debian / Ubuntu 包的包代理。

到目前為止,我將安裝包.deb.rpm使用alien. 安裝結果.rpm給了我approx二進製文件/usr/sbin/approx

在 Debian 下,approx開始使用inetd. OpenSuSE 似乎更喜歡xinetd. 因此,在 YaST2 的 xinetd 設置中,我使用

  • 服務名稱:“約”(我也試過“9999”,因為我假設這是從服務名稱到埠號的映射發生的地方——這個名稱應該與 /etc/services 中的埠描述匹配,對吧?)
  • 類型:stream
  • 協議:tcp
  • nowait選項
  • 使用者:root
  • 服務:/usr/sbin/approx

但是,無論我為條目分配什麼狀態,只要點擊“確定”,xinetd 配置就會跳轉到“停用”,並且在通過埠 9999 聯繫它時,我無法得到系統的任何反應。

那麼,首先,我對 xinetd 配置的使用是正確的還是我在那裡理解有問題?

其次,YaST2中xinetd配置面板的自動停用是軟體錯誤還是使用者錯誤?

感謝 Nikhil 的投入,我解決了這個問題。

YaST 在設置 xinetd 時只使用服務名稱,而不是埠號。不幸的是,由於某些歷史原因,大約預設為埠 9999。這已註冊到另一個名為“distinct”的服務。

因此,臨時解決方案是在 /etc/services 中將埠 9999 的服務重命名為“近似”,並在 xinetd 配置中輸入一個名為“近似”的新服務(正如我懷疑的那樣,這確實映射到埠 9999 ),使用者大約和組大約。這是 YaST 生成的服務文件:

$ cat /etc/xinetd.d/approx 
service approx
{
   socket_type     = stream
   protocol        = tcp
   wait            = no
   user            = approx
   group           = approx
   server          = /usr/sbin/approx
}

當然,正確的解決方案是將伺服器和所有客戶端機器遷移到不同的埠(一個尚未由 IANA 分配的埠)。

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