我构建了一个使用 libpcap(通过 jpcap)的 webapp。
为了能够获取网络接口列表或绑定到网络接口,应用程序(在本例中是从 tomcat 服务器运行的 webaap)必须以 root 权限运行。
在开发过程中,我只是以 root 权限(sudo eclipse)运行 Eclipse,并且我的 webapp 与 Eclipse 的本地 tomcat 服务器配合得很好。
但是,当我尝试将我的 webapp 部署到“真实”的 tomcat 服务器时,它不起作用。我还尝试使用 sudo 启动 tomcat6 服务,并将 TOMCAT6_USER 定义(在 /etc/init.d/tomcat6 中定义)从“tomcat6”更改为“root”,但没有任何区别。
我应该怎么做才能让它发挥作用?
答案1
启动 tomcat可能会做你想做的事情Authbind=yes
。/etc/default/tomcat6
答案2
为什么为了安全起见不让 tomcat 以非 root 身份运行,并让 iptables 将端口 80 转发到 8080?
例如在 iptables 中:
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-port 8080