为什么Tomcat使用端口8080而不是80?

时间:2012-05-04 13:40:49

标签: java linux tomcat port firewall

我已经在端口8080下启动并测试了Tomcat(默认)。现在我将连接器端口更改为80并重新启动Tomcat,在我的最小Debian 6.0安装中没有显示任何内容。现在这里的诀窍在哪里?

<Connector port="80" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           URIEncoding="UTF-8"
           redirectPort="8443" />

7 个答案:

答案 0 :(得分:31)

转到/ etc / default / tomcat6并将#AUTHBIND=no更改为AUTHBIND=yes

 # If you run Tomcat on port numbers that are all higher than 1023, then you
 # do not need authbind.  It is used for binding Tomcat to lower port numbers.
 # NOTE: authbind works only with IPv4.  Do not enable it when using IPv6.
 # (yes/no, default: no)
 #AUTHBIND=no

答案 1 :(得分:11)

两个典型的原因:

  • 您很可能无权收听低于1024的端口(通常需要管理员权限,例如root
  • 其他东西可能已经在端口80上监听(例如apache)

答案 2 :(得分:9)

您是否以root身份在端口80上启动Tomcat?您必须是root用户才能绑定到Linux中的端口&lt; = 1024。

答案 3 :(得分:8)

如果之前评论的内容没有任何内容(就像发生在我身上一样),您可以将来自端口80的流量定向到8080

要做到这一点:

http://forum.slicehost.com/index.php?p=/discussion/2497/iptables-redirect-port-80-to-port-8080/p1

简而言之,在终端中输入以下三个命令:

$ sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
$ sudo iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT
$ sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080 

答案 4 :(得分:2)

更改绑定后以root用户身份运行启动脚本。

sudo ./<path to tomcat bin director>/startup.sh

答案 5 :(得分:0)

停止apache服务然后运行tomcat你应该是好的,默认情况下apache在端口80上运行

答案 6 :(得分:0)

您可以使用authbind / privbind或功能绑定到端口80。