Linux普通用户绑定80端口

在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).

 

 

Comments are closed.