我需要跑大约,OpenSuSE 盒子上的 Debian / Ubuntu 软件包的软件包代理。
到目前为止,我将安装包从 转换.deb
为.rpm
使用alien
.安装结果给了.rpm
我.approx
/usr/sbin/approx
在 Debian 下,approx
开始使用inetd
. OpenSuSE 似乎更喜欢xinetd
.因此,在 YaST2 的 xinetd 设置中,我使用以下命令创建了一个新条目
- 服务名称:“approx”(我也尝试过“9999”,因为我假设这是从服务名称到端口号的映射发生的地方 - 这个名称应该与 /etc/services 中的端口描述匹配,对吗?)
- 类型:
stream
- 协议:
tcp
nowait
选项- 用户:
root
和 - 服务:
/usr/sbin/approx
。
然而,无论我为条目分配什么状态,只要我单击“确定”,xinetd 配置就会跳转到“已停用”,并且在端口 9999 上联系它时,我无法从系统得到任何反应。
那么,首先,我对 xinetd 配置的使用是否正确,还是我理解有问题?
其次,YaST2 中的 xinetd 配置面板自动停用是软件错误还是用户错误?
答案1
感谢 Nikhil 的意见,我解决了这个问题。
设置 xinetd 时,YaST 仅使用服务名称,而不使用端口号。不幸的是,由于某些历史原因,大约默认端口 9999。它已注册到另一个名为“distinct”的服务。
因此,临时解决方案是将端口 9999 的服务重命名为 /etc/services 中的“approx”,并在 xinetd 配置中输入名称为“approx”的新服务(正如我怀疑的那样,这确实会映射到端口 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 尚未分配的端口)。
答案2
您是否尝试过在配置中提及端口号?日志说什么?
service approx
{
flags = REUSE
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/approx
log_on_failure += USERID
disable = no
port = 9999
}