如何在Redhat 5中创build一个没有权限的特权端口?

所以我有一个RedHat 5盒子,我想运行我编写的实现SLP的应用程序。 SLP使用端口427来应答服务查询。 我的理解是,低于1024的端口是“特权”的,因此不能被任何非root用户绑定。 我不能以root身份运行这个应用程序,因为它是通过tomcat启动的。

我真正喜欢的一个创造性的解决scheme是简单地编写一个iptables规则来将特权端口路由到非特权端口。 在我的概念validationtesting中,这个工作非常好。 不幸的是,如果我的应用程序在安装时不需要使用iptables的话,那么这些权力就会变得非常可理解。

所以我听到了一个谣言,找不到任何东西来validation这是有某种命令或参数,可以设置为使我想要的任何端口非特权。 这是真的? 如果是的话,这是怎么做的? 谢谢!

UPDATE

所以我看到这个post堆栈溢出: https : //stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on看起来他使用了一些叫做function的东西。 这个问题似乎需要内核2.6.24 +,但我只能访问内核2.6.18。 有没有办法在2.6.18盒子上设置function?

Bandaid的方法是监听非特权端口,然后从特权端口redirect到xinetd。

$ grep bandaid /etc/services bandaid 190/tcp # bandaid $ cat /etc/xinetd.d/bandaid service bandaid { disable = no bind = 10.0.0.45 socket_type = stream protocol = tcp wait = no user = nobody redirect = localhost 8888 } 

这是一个可怕的想法海事组织,但有时你没有任何其他的select。