在Linux系统中,默认情况下只有root用户才可以绑定1024以下的端口,而普通用户需要绑定1024以下的端口,基本方法是使用的Nginx代理转发或者操作系统的iptables进行端口转发两种方法进行,本文将以tomcat为例,直接以普通用户运行tomcat,并使tomcat程序绑定80端口或者转发代理至tomcat的8080端口。
要使机器的80端口给客户端方法问,可以参考以下方式进行:
iptables端口转发方式
Nginx代理模式
setcap方式
1、iptables方式
RHEL 7
#firewall-cmd –permanent –add-forward-port=port=80:proto=tcp:toport=8080
RHEL 7之前版本
#iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 8080
2、安装Nginx,并将80端口转发至8080
listen 80;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
3、setcap方式
#setcap 'cap_net_bind_service=ep' /usr/local/jdk1.8.0/jre/bin/java
/usr/local/jdk1.8.0/jre/bin/java为tomcat运行的Java环境程序,如果为其他程序,则改为其他程序的绝对路径。
另外:ep为永久生效
通过MAN帮助查询man 7 capabilities
CAP_NET_BIND_SERVICE
Bind a socket to Internet domain privileged ports (port numbers less than 1024).