非root启动80端口

Linux非root用户如何使用80端口启动程序

默认情况下Linux的1024以下端口是只有root用户才有权限占用,我们的tomcat,apache,nginx等等程序如果想要用普通用户来占用80端口的话就会抛出java.net.BindException: Permission denied:80的异常。

www.2cto.com

解决办法有两种:

1.使用非80端口启动程序,然后再用iptables做一个端口转发。

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

用root用户直接去执行就可以了!

2.假设我们需要启动的程序是nginx,那么这么做也可以达到目的。

一开始我们查看nginx的权限描述:   www.2cto.com

-rwxr-xr-x 1 nginx dev 2408122 Sep  5 16:01 nginx

这个时候必然是无法正常启动的。

首先修改文件所属用户为root:

chown root nginx

然后再加上s权限:

chmod u+s nginx

再次查看权限描述的时候:

-rwsr-xr-x 1 root root 2408122 Sep  5 16:01 nginx

这样就能启动了。

时间: 2024-10-08 17:04:59

非root启动80端口的相关文章

linux系统非ROOT用户80端口不能启动tomcat问题的变通办法——通过Iptables端口转发

2010-07-17 13:21:42 org.apache.tomcat.util.digester.SetPropertiesRule begin 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not find a matching property. 2010-07-17 13:21:42  org.apache.catalina.core.Ap

Mac下如何进行端口转发,方便一系列需要使用80端口进行的调试工作

上篇文章介绍到,可以在本地hosts文件中添加一条记录将微信公众号中的可信域名解析道本地127.0.0.1,但tomcat在Mac下非root权限80端口是启动不了的,所以我们可以利用pfctl端口转发来将本地80端口上的请求转发到比如8080端口,从而实现通过80端口的访问. 注意:Mac OS 会使用80端口做网络文件共享, 需要先关闭掉. 一.修改/etc/pf.conf 先对pf.conf进行备份:cp /etc/pf.conf /etc/pf.conf.normal.bak , 之后在

80端口占用解决方法(转)

今天启动Apache的时候老是提示失败,很简单,使用 netstat -ano 发现80端口被占用. 方法/步骤 今天启动Apache的时候老是提示失败,很简单,使用 netstat -ano 发现80端口被占用.如图所示: 按照PID 来说:在任务管理器中查看PID 的进程名 既然是system.那么 应该不回是真正的系统. 而是 微软的其他系列产品的进程在运行. [注意:我已经在服务 services.msc中结束了 IIS ADmin 服务] 但是 其实 IIS 服务真正没有关闭. 80端

80端口被system占用的问题

今天启动Apache的时候发现无法启动80端口被占用. 1.Netstat命令 1)"运行"中输入cmd 2)在命令行中输入netstat -ano,得到端口号对应的PID 3)打开任务管理器,点击"查看"菜单,选择"选择列",给进程列表中添加"PID"列,然后找到PID对应的进程就可以了. 检查进程发现是system进程id=4给占用了这个是系统进程啊.  检查了半天,终于发现原来是SQL server 2008的报表服务在

mac 80 端口

1. 查看端口 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff } span.s1 { } sudo lsof -i tcp:80 2.杀死进程 kill pid 3.启动80端口 如 sudo npm run dev sudo 是需要管理员权限的

实现tomcat与IIS公用80端口

一.80端口被system占用的问题 目前生产环境的需要两种方式网站发布: [1].使用IIS发布.net开发的网站: [2].使用tomcat发布java开发的网站: 启动tomcat的时候发现无法启动80端口被占用,请试图排查下如下原因: 在安装了Ms SQL server如果安装了报表服务ReportServer,此服务默认占用了80端口,如果是,请关闭此服务,并将其启动类型变成禁用或手动 二.实现tomcat与IIS公用80端口 实现tomcat与IIS公用80端口,目前解决方案是:双I

非root用户无法启动监听80端口的Tomcat

一.问题 网站绑定域名后直接通过域名访问使用的是80端口,因此tomcat须监听80端口.而为了安全起见tomcat一般不用root身份运行,因此需要以普通用户来运行监听80端口的root.此时就会启动失败,报没有权限,因为只有root身份才能监听1024以内的熟知端口. 二.解决 (以下未经验证) There are a few different solutions to work around this: Install and configure Apache or nginx as a

tomcat非root用户启动443或80端口

非root用户没有权限使用1024以内的端口,tomcat默认是root启动,如果用普通用户启动,必须是1024以上的端口,不能使80或443 如果一定用到80或是443所以只能用iptables端口转发 iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443 原文地址:https://www.cnblogs.com/wangdidi/p/11510986.html

普通用户从非80端口启动tomcat,通过端口转发监听80端口

linux下小于1024的端口都需要root去绑定. root权限启动tomcat是不明智的,可以使用非root权限启动tomcat监听8080端口,然后利用端口转发实现对80端口的监听. 端口转发: # iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 -A PREROUTING 添加新规则-p 检查tcp协议--dport 80 指定目标端口-j REDIRECT 目标跳转--to-prot