因为要在本地跑一个web application,使用eclipse的HSF Jetty插件绑定80端口不成功,8080端口则没有问题:
2012-09-17 11:36:43.470:WARN::failed SelectChannelConnector@0.0.0.0:80: java.net.SocketException: 权限不够
2012-09-17 11:36:43.473:WARN::failed Server@327ac9a7: java.net.SocketException: 权限不够
java.net.SocketException: 权限不够
1. 猜想有其他进程已经占用了80端口
$ sudo netstat -anpt | grep LISTEN
结果80端口是available的
2. Linux的问题?
好吧,想起来了,Linux下只有root用户才能绑定使用1024以下的端口。尝试用sudo eclipse启动IDE,然后编译,发现maven的本地库有些问题,偷个懒把原用户的本地库复制一份后正常
$cd /home/ningoo/.m2 $cp -r * /root/.m2
3. iptables神器
虽然sudo大法有效,感觉还是不太爽。于是神器iptables出场,设置将80端口转发到8080端口,这样eclipse中的jetty插件还是可以绑定在8080端口,/etc/hosts绑定本地到日常的域名也可以通过80端口自动转发,方便。
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080
如果不需要转发了,通过以下命令清除设置
iptables -t nat -F PREROUTING iptables -t nat -F OUTPUT
如果要保存iptables设置以便重启后生效,可以参考这里
您可能也喜欢: |
linux上大量tcp端口处于TIME_WAIT的问题 |
Oracle11gR1 for Linux可以下载了 |
在64位Linux上安装MemCached |
Redhat Enterprise Linux 5安装截图欣赏 |
Redhat Linux如何设置用户默认属性 |
无觅 |