普通用户进程如何使用80端口

  只有root用户才能使用0-1024之内的端口,普通用户想使用1024之内的端口,方法有二:
1.使用iptables转发数据包,
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000

2.iptables毕竟是转发,感觉不爽。第二种方法是,root可以让普通用户以root的身份执行程序,即给应用的模式加上s位,但程序运行之后,进程的用户是root,因此,启动程序并占用端口后,需要修改进程的用户和组。

以nodejs为例:
chmod u+s /usr/local/bin/node

require('http').createServer(require('express')()).listen(80, function(){
  if (process.getgid && process.setgid){ //windows 下无此方法
    process.setuid('jim');
    process.setgid('jim');
  }
});

你可能感兴趣的:(用户)