Can';不要在SonarQube上使用端口80
第一次尝试使用root用户运行SonarQube时,失败了。在互联网上搜索,我发现新的声纳应该由非root用户执行。我使用以下命令创建了用户声纳Can';不要在SonarQube上使用端口80,sonarqube,sonarqube7,Sonarqube,Sonarqube7,第一次尝试使用root用户运行SonarQube时,失败了。在互联网上搜索,我发现新的声纳应该由非root用户执行。我使用以下命令创建了用户声纳useradd-m-s/bin/bash-sonar,并执行了chmod-R 777-sonaqube-7.0。然后我登录sonar用户:sudoSuSonar。当我执行/sonar.sh控制台时一切正常。但是,当我将端口默认更改为端口80时,这将失败。使用命令netstat-plunt我检查端口80是否正在使用,但我使用的唯一端口是22(sshd)、5
useradd-m-s/bin/bash-sonar
,并执行了chmod-R 777-sonaqube-7.0
。然后我登录sonar用户:sudoSuSonar
。当我执行/sonar.sh控制台时
一切正常。但是,当我将端口默认更改为端口80时,这将失败。使用命令netstat-plunt
我检查端口80是否正在使用,但我使用的唯一端口是22(sshd)、5432(postgres)和25(exim4)。我认为发生这种情况是因为用户声纳没有使用端口80的权限。我如何才能将端口80与SonarQube一起使用
我当前的操作系统是debian 9您当前无法通过端口80使用SonarQube实际上是因为几乎所有Linux发行版都提供了一个限制:特权端口 非root用户执行的程序无法监听1024以下的所有端口,也就是说,只有用户“root”可以运行在这些端口上运行的程序。这是为了确保当您连接到在该端口上运行的应用程序时,该应用程序是“真实的”,而不是黑客伪造的
因为SonarQube不允许您以root用户身份执行它,所以将端口80代理到SonarQube正在执行的1024以上的端口是绕过此限制的唯一方法。您当前无法通过端口80使用SonarQube实际上是由于几乎所有Linux发行版都提供了一个限制:特权端口 非root用户执行的程序无法监听1024以下的所有端口,也就是说,只有用户“root”可以运行在这些端口上运行的程序。这是为了确保当您连接到在该端口上运行的应用程序时,该应用程序是“真实的”,而不是黑客伪造的
由于SonarQube不允许您以root用户身份执行,因此将端口80代理到SonarQube正在执行的1024以上的端口是绕过此限制的唯一方法。存在一些允许非root用户使用端口80和433的方法,使用
iptables
重定向端口请求,CAP\u NET\u BIND\u服务
和authbind
。更简单的方法是authbind
使用authbind
授予一次性访问权限,并具有更好的用户/组/端口控制:
()工具正是为此而存在的
authbind
sudo touch /etc/authbind/byport/80
sudo touch /etc/authbind/byport/443
sudo chmod 777 /etc/authbind/byport/80
sudo chmod 777 /etc/authbind/byport/443
authbind
执行命令(可选指定--deep
或其他参数,请参见手册页):
例如
此选项向用户/组授予信任,并提供对每个端口访问的控制,但AFAIK仅支持IPv4 以下是我用来记录我的链接:
存在一些允许非root用户使用端口80和433的方法,使用
iptables
重定向端口请求,CAP\u NET\u BIND\u服务
和authbind
。更简单的方法是authbind
使用authbind
授予一次性访问权限,并具有更好的用户/组/端口控制:
()工具正是为此而存在的
authbind
sudo touch /etc/authbind/byport/80
sudo touch /etc/authbind/byport/443
sudo chmod 777 /etc/authbind/byport/80
sudo chmod 777 /etc/authbind/byport/443
authbind
执行命令(可选指定--deep
或其他参数,请参见手册页):
例如
此选项向用户/组授予信任,并提供对每个端口访问的控制,但AFAIK仅支持IPv4 以下是我用来记录我的链接:
可能是重复的,我已经读过了,但我认为使用nginx或apache从端口80代理到9000不是一个好主意,如果这可以通过使用sonar config文件完成不幸的是,您不能以非root用户的身份在端口=<1024上运行程序;大多数Linux发行版的开发人员故意使其无法实现。更多细节将在下面的回答中。可能重复的我已经读过了,但我认为使用nginx或apache从端口80到9000代理不是一个好主意,如果可以使用sonar配置文件完成,不幸的是,您不能以非根用户身份在端口=<1024上运行程序;大多数Linux发行版的开发人员故意使其无法实现。更多细节将在下面的答案中给出。
authbind --deep java -jar SomeServer.jar