作者:小鱼创业日记
链接:https://www.zhihu.com/question/587596180/answer/2950601182
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
在普通用户下启动 Tomcat 时,由于 80 端口是系统保留端口,需要使用 root 用户权限才能启动。但是,可以通过以下两种方法在普通用户下使用 80 端口启动 Tomcat:
1. 使用 authbind 工具
authbind 是一个 Linux 工具,可以允许普通用户在特定端口上运行网络服务。以下是使用 authbind 启动 Tomcat 的步骤:
1. 安装 authbind 工具:`sudo apt-get install authbind`
2. 创建一个 authbind 的配置文件:`sudo touch /etc/authbind/byport/80`
3. 将文件的权限设置为 755:`sudo chmod 755 /etc/authbind/byport/80`
4. 将 Tomcat 的启动脚本中的端口号改为 80,并在启动命令前加上 authbind 命令:`authbind --deep catalina.sh run`
2. 使用 iptables 转发端口
另一种方法是使用 iptables 工具将 80 端口转发到 Tomcat 使用的端口上。以下是使用 iptables 转发端口的步骤:
1. 安装 iptables 工具:`sudo apt-get install iptables`
2. 添加一个 iptables 规则,将 80 端口转发到 Tomcat 使用的端口上:`sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080`
3. 启动 Tomcat,使用默认的端口 8080:`catalina.sh run`
以上两种方法都可以在普通用户下使用 80 端口启动 Tomcat,但是第一种方法更为简单和安全。