Perforce with dynamic ip

时间:2010-12-04 15:11:55

标签: perforce

我在旧的永远在线笔记本电脑上设置了一个perforce服务器,路由器总是为其分配一个保留地址。我在no-ip.com上有一个帐户,它发送到我的路由器,后者又将端口1666请求重定向到这台笔记本电脑。

当我尝试将p4port设置为此no-ip.org地址时,该部分没问题,但是当我运行p4d时,我得到:

Perforce服务器错误:         听USERNAME.no-ip.org:1666失败。         TCP侦听USERNAME.no-ip.org:1666失败。         bind:USERNAME.no-ip.org:1666:WSAEADDRNOTAVAIL

然而,如果我只是将p4port设置为192.168.0.6,我可以使用这个从网络后面访问服务器..但我宁愿能够在外部访问它..

我已经阅读了另一篇文章,其中有人有相同的设置工作(http://stackoverflow.com/questions/2397642/online-perforce-repositories,用户是gamehorror)但是他/她没有深入到我显然需要的深度..

已尝试关闭路由器和Windows xp防火墙,xp和路由器防火墙将1666转发到此本地IP

喝彩!

3 个答案:

答案 0 :(得分:3)

使用

启动p4d
p4d -p 1666

而不是

p4d -p USERNAME.no-ip.org:1666

USERNAME.no-ip.org不是您计算机上的有效界面,因为您位于NAT后面,并且未通过该IP地址直接连接到互联网。通过将服务器上的p4port设置为仅端口号,它应该绑定在所有可用接口上(0.0.0.0)。如果您随后将客户端上的p4port设置为USERNAME.no-ip.org:1666,则NAT将负责其他所有操作。

请注意,如果您尝试从服务器所在的相同NAT后面进行连接,则可能无法正常工作,因此您可能需要从某个外部位置进行测试。这实际上取决于路由器上路由表的设置方式。

答案 1 :(得分:1)

我认为问题来自p4d尝试将其侦听套接字绑定到USERNAME.no-ip.org:1666,并且该地址不是运行p4d的PC的“正确”地址。

一个解决方案是让p4d绑定到0.0.0.0:1666(在p4d的配置中某处?)或说服PC,USERNAME.no-ip.org确实是它的地址 - 将其输入/ etc /主机(或隐藏系统文件中的Windows:c:\ windows \ system32 \ drivers \ etc \ hosts)

答案 2 :(得分:-1)

我的建议是,如果您使用perforce的免费版本并且不必使用它:使用免费的sourceforge.net SVN托管,您的数据将随处可用。如果你必须使用Perforce,那么我建议忘记在外部使用它而不需要静态WAN IP和路由器上的正确端口转发,因为它听起来像很多工作。取决于您真正想要使用源代码控制的内容,perforce实际上只对大项目有价值,因为免费版本非常严格。