在端口80上运行red5

我有一个red5应用程序http://code.google.com/p/openmeetings在red5下运行,可以通过端口5080和8443访问

我已经安装在Ubuntu 10.04上

最终的目的是让它可以通过443上的https访问,而不是8443,但是我认为我最初会尝试80,所以任何问题都只是端口configuration,而不是SSL证书。

我已经尝试在red5.properties文件中将端口从5080更改为80,但无法启动。

在我看到的red5.log中

错误oacoyote.http11.Http11Protocol – 初始化端点错误java.net.BindException:权限被拒绝/0.0.0.0:80

在我看到的error.log

错误oacoyote.http11.Http11Protocol – 初始化端点错误java.net.BindException:权限被拒绝/0.0.0.0:80

ERROR org.red5.server.tomcat.TomcatLoader – 加载tomcat时出错,无法绑定连接器。 您可能没有权限使用选定的端口org.apache.catalina.LifecycleException:协议处理程序初始化失败:java.net.BindException:权限被拒绝/0.0.0.0:80

80端口上没有任何东西安装或运行,所以我认为这是“需要成为”的情况。 我宁愿不要以root的身份运行Internet访问的Web服务。

我知道Tomcat可以通过在/ etc / default / tomcat6中将“#AUTHBIND = no”更改为“AUTHBIND = yes”来在端口80上运行,但是我一直无法find与red5类似的东西。

我隐藏到什么地方,还是有更好的办法比作为根运行?

谢谢!

作为普通用户,您不能在Linux上的端口<1024上运行任何操作。 检查这个问题:

  • 如何在Linux上以普通用户的身份在端口80上运行服务器?

和相关的答案。

据我所知,red5没有规定绑定特权端口 ,然后将root权限放回正常的用户帐户,因为许多其他的守护进程(如Apache,tomcat等)都这样做。

因此,虽然可以以root用户身份运行它,并绑定到端口80,但它仍然以root身份运行,并且相当不安全。

要解决这个问题,请使用某种端口转发 。 例如,xinetd内置了端口转发function,所以如果您已经使用了其他function,您可以设置一个简单的端口转发:

service yourservicename { disable = no type = UNLISTED socket_type = stream protocol = tcp user = nobody wait = no redirect = 127.0.0.1 5080 port = 80 } 

我知道这不是你所要求的,但也许使用apache或nginx作为你的应用程序的反向代理可能工作。