我有一个red5应用程序http://code.google.com/p/openmeetings,它在red5下运行,可以在端口5080和8443上访问。
我在Ubuntu10.04上安装了它
最终的目标是通过https 443而不是8443来访问它,但我想我一开始会在80上试用,这样任何问题都只能归结于端口配置,而不是SSL证书。
在red5.properties文件中,我尝试将端口从5080更改为80,但未能启动。
在我见过的red5日志中
错误o.a.coyote.http11.Http11Protocol -初始化端点java.net.BindException时出错:权限被拒绝/0.0.0.0:80
在我见过的error.log里
错误o.a.coyote.http11.Http11Protocol -初始化端点java.net.BindException时出错:权限被拒绝/0.0.0.0:80
和
错误org.red5.server.tomcat.TomcatLoader -错误加载tomcat,无法绑定连接器。您可能没有使用所选端口org.apache.catalina.LifecycleException的权限:协议处理程序初始化失败: java.net.BindException:权限被拒绝/0.0.0.0:80
在端口80上没有任何其他安装或运行,所以我假设这是一个“需要是根”的情况。我宁愿不运行一个互联网访问的web服务作为根。
我知道Tomcat可以在端口80上运行,方法是将/etc/#AUTHBIND=no/AUTHBIND=yes 6中的“AUTHBIND=yes”更改为“AUTHBIND=yes”,但是我还没有找到类似的red5。
我是什么都不知道,还是有比根跑更好的方法?
谢谢!
发布于 2011-06-29 01:36:37
发布于 2012-07-21 06:53:00
据我所知,red5没有为绑定一个特权端口然后将根特权降回正常的用户帐户做任何准备,就像其他许多守护进程一样(比如Apache、tomcat等等)。做。
因此,虽然您可以将它作为root运行并绑定到端口80,但它仍然作为root运行,并且非常不安全。
要解决这个问题,请使用某种端口转发。例如,xinetd内置了端口转发,因此如果您已经将其用于其他方面,则可以设置一个简单的转发端口:
service yourservicename
{
disable = no
type = UNLISTED
socket_type = stream
protocol = tcp
user = nobody
wait = no
redirect = 127.0.0.1 5080
port = 80
}发布于 2012-06-21 05:31:44
我知道这不是你想要的,但也许使用apache或nginx作为应用程序的反向代理可能会很好。
https://serverfault.com/questions/285116
复制相似问题