我正在尝试在我的 Linux 机器(ubuntu 9.04)上安装 svn 服务器。我将一行复制svnserve
到inetd.conf
文件中并重新启动inetd
。但我无法使用 svn 客户端连接到服务器。我总是收到错误消息
连接被拒绝
现在到了奇怪的部分:如果我打电话
netcat localhost 3690
连接也会被拒绝。但如果我调用
telnet localhost 3690
我收到了一些回复svnserve
。
有什么想法可能导致这种情况 - 以及如何使我的 svnserver 正常工作?
更多细节:
- 我安装了
inetutils-inetd
(版本 2:1.6-1) netstat
给我线tcp6 0 0 :::3690 :::* 侦听
如果我禁用中的所有“特殊 IPv6 地址”
/etc/hosts
,telnet
它就会停止工作并出现“连接被拒绝”的提示。- 我尝试激活(端口 13)
daytime
的服务。同样的情况:无法连接。inetd
netcat
telnet
- 据我所知,没有防火墙(
ufw
已安装但未启用)。
答案1
Netcat 仅适用于 IPv4,并且服务器仅监听 IPv6。
尝试设置此内核选项,然后终止并重新启动inetd
:
sysctl net.ipv6.bindv6only=0
(并将 inetd 服务行更改为tcp
。是时候开始使用 v6 了)
答案2
我自己找到了答案......
问题出在这行inetd.conf
:
svn stream tcp nowait subversion /usr/bin/svnserve svnserve -i -r /home/svn
将关键字切换为 后tcp
,tcp4
一切正常。现在 netstat 给出了以下输出:
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN