希望踩过的坑能为您铺平前进的路
UPDN .CN

如何配置linux可以让普通用户使用80端口或1024以下的端口

报错信息如下:

2018/03/12 12:11:56 [emerg] 20800#0: bind() to 0.0.0.0:80 failed (13: Permission denied)

解决方法一:

CAP_NET_BIND_SERVICE

普通用户不能通过bind函数绑定小于1024的端口,而root用户可以做到,CAP_NET_BIND_SERVICE的作用就是让普通用户也可以绑端口到1024以下。
使用root用户增加CAP_NET_BIND_SERVICE能力到nginx程序,如下:
setcap cap_net_bind_service=+eip /opt/tingyun/nginx/sbin/nginx
再切换到普通用户,启动服务如下:
nginx stop [ok]
使用root去掉CAP_NET_BIND_SERVICE能力,如下
setcap -r /opt/tingyun/nginx/sbin/nginx

解决方法二:

iptables端口转发

这种可以针对像tomcat这种情况,没有一个固定的启动文件添加CAP_NET_BIND_SERVICE能力解决
首先程序绑定1024以上的端口,然后root权限下做转发注意有些系统需要手动开启IP FORWARD功能
vi /etc/sysctl.conf
#修改
net.ipv4.ip_forward = 1
#重新加载
sysctl -p /etc/sysctl.conf

添加防火墙规则
iptables -A PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-port 8080
将规则保存在/etc/sysconfig/iptables文件里
service iptables save

文章转载请标注:http://www.updn.cnUPDN博客 » 如何配置linux可以让普通用户使用80端口或1024以下的端口

评论 抢沙发

UPDN

关于我们联系我们