相关疑难解决方法(0)

在Ubuntu上使用Java应用程序打开端口80

我需要做的是运行一个Java应用程序,它是Restlet的RESTful服务服务器端writetern.此服务将由另一个在Google App Engine上运行的应用程序调用.

由于GAE的限制,每个http调用仅限于具有HttpUrlConnection类的端口80和443(http和https).因此,我必须在端口80或443上部署我的服务器端应用程序.

但是,由于应用程序在Ubuntu上运行,并且非root用户无法访问1024以下的端口,因此在运行应用程序时将抛出Access Denied异常.

我想到的解决方案包括:

  1. 将文件驻留在/lib/security/java.policy中的JRE的安全策略更改为grantjava.net.SocketPermission"*.80""listen,connect,accept,resolve"权限.但是,两者都不使用命令行要包含此文件或覆盖JRE的java.policy文件中的内容,同样的异常会不断出现.

  2. 尝试以root用户身份登录,但由于我对Unix的不熟悉,我不知道该怎么做.

  3. 我没有尝试的另一个解决方案是将所有80的呼叫映射到更高的端口,如1234,然后我可以在1234上部署我的应用程序而没有问题,并且GAE调用发送请求到端口80.但是如何连接缺少的差距仍然是一个问题.

目前我正在使用"黑客"方法,即将应用程序打包到jar文件中,并使用root权限运行jar文件.它现在可以工作,但在真实的部署环境中绝对不合适.

所以,如果有人对解决方案有任何想法,非常感谢!

java ubuntu port

6
推荐指数
2
解决办法
7741
查看次数

将SonarQube的端口更改为80

我一直在尝试将SonarQube的端口从9000更改为80.我所做的是取消注释sonar.web.port并在/opt/sonar/conf/sonar.properties文件中将其设置为80 ,然后:

sudo update-rc.d sonar defaults
sudo /etc/init.d/sonar restart
Run Code Online (Sandbox Code Playgroud)

但是当我尝试点击URL时,没有任何显示(没有来自服务器的回答).如果我还原我的更改并再次执行前两个命令,SonarQube不会再回来.我必须重新启动机器.

我正在运行最新版本的Ubuntu和SonarQube.该数据库位于SQL Azure上.一切都在端口9000上工作.

我对SonarQube的了解是有限的,所以我最有可能做错了但却无法弄清楚是什么.

ubuntu configuration sonarqube

6
推荐指数
1
解决办法
5878
查看次数

将Web服务器绑定到端口80而不是root用户

我在C中编写了自己的Web服务器.如何将其绑定到端口80而不是root,这样安全性不会受到影响(缓冲区溢出等)?

我应该简单地转发来自在端口80上运行的另一个"稳定"服务器的任何流量吗?

c linux

5
推荐指数
1
解决办法
1870
查看次数

Node.JS 运行时切换用户

以 root 身份运行的 Node.JS 程序是否可以在运行时降低其权限?这将是它首先要做的事情之一,目的当然是限制它可能造成的损害,以防万一出现漏洞或在此过程中运行不可信的代码。

或者,是否有一种方法可以让以 root 身份运行的 Node.JS 进程启动一个单独的非 root 进程?(最好中间不加一层,比如sudo)

security node.js

5
推荐指数
1
解决办法
3472
查看次数

如何修复 ubuntu 上的 java.net.SocketException:权限被拒绝

我正在使用 apache mina sshd 来生成一个 ssh 服务器,以便用户能够远程访问特定系统。

这是我的代码的一部分:

    SshServer sshd = SshServer.setUpDefaultServer();
    sshd.setPort(830);
    sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider("hostkey.ser"));
    sshd.setShellFactory(new ProcessShellFactory(new String[] { "/bin/sh", "-i", "-l" }));
    sshd.setCommandFactory(new ScpCommandFactory());
    sshd.setPasswordAuthenticator(new PasswordAuthenticator() {
        public boolean authenticate(String username, String password, ServerSession session) {
            return true;
            // just to make sure everything is right
            // this will implement later
        }
    });

    sshd.start();
Run Code Online (Sandbox Code Playgroud)

在 Windows 上运行此代码时,此代码看起来没问题,但在 Linux (Ubuntu 18.04) 上,出现此错误:

Exception in thread "main" java.net.SocketException: Permission denied
at java.base/sun.nio.ch.Net.bind0(Native Method)
at java.base/sun.nio.ch.Net.bind(Net.java:455)
at java.base/sun.nio.ch.Net.bind(Net.java:447)
at java.base/sun.nio.ch.AsynchronousServerSocketChannelImpl.bind(AsynchronousServerSocketChannelImpl.java:164)
at org.apache.sshd.common.io.nio2.Nio2Acceptor.bind(Nio2Acceptor.java:59) …
Run Code Online (Sandbox Code Playgroud)

java linux permissions ubuntu apache-sshd

5
推荐指数
0
解决办法
8110
查看次数

如何将Django作为服务运行?

我在Ubuntu服务器上运行Django有困难.我能够运行Django但我不知道如何将其作为服务运行.

Distributor ID:    Ubuntu
Description:       Ubuntu 10.10
Release:           10.10
Codename:          maverick
Run Code Online (Sandbox Code Playgroud)

这是我在做的事情:

  1. 我登录到我的Ubuntu服务器
  2. 启动我的Django进程: sudo ./manage.py runserver 0.0.0.0:80 &
  3. 测试:流量通过,应用程序显示正确的页面.
  4. 现在我关闭终端窗口,一切都停止了.我想我需要以某种方式将其作为服务运行,但我无法弄清楚如何做到这一点.

即使我没有登录,如何让我的Django进程在端口80上运行?

另外,我知道我应该通过Apache链接它,但我还没准备好.

python django ubuntu

4
推荐指数
3
解决办法
2万
查看次数

使用非本地主机,实时站点去Revel框架

我正在尝试使用Go和Revel框架在我的live,social-website.com上运行一个简单的应用程序.

我在本地开发并测试localhost:8888时一切正常.但是,在我的Web服务器上安装并从root运行我的应用程序后,# run revel personalwebsiteapp我收到以下错误:

ERROR 2013/10/01 04:01:35 harness.go:167: Failed to start reverse proxy: listen tcp xx.xxx.xx.xx:80: cannot assign requested address
Run Code Online (Sandbox Code Playgroud)

在这里完全失去了.我是否需要在Revel之上运行像Nginx这样的代理服务器?

这可能是我的conf/app.conf文件的相关部分:

http.addr="personal-website.com"
http.port=80 #whether I set this to 80 or 8888 doesn't matter, I get the same error
Run Code Online (Sandbox Code Playgroud)

port http nginx go revel

3
推荐指数
1
解决办法
1264
查看次数

在没有root特权的情况下更改Linux中的网络设置

我正在谈论的设置是IP,子网掩码和默认网关(设置和获取)。为了设置所有这些设置,我使用了该ioctl函数以及诸如SIOCSIFADDR和等选项SIOCSIFNETMASK。为了获得IP和掩码,我使用相同的方法,但具有类似的选项SIOCGIFADDR。为了获得默认网关,我解析了文件/proc/net/route并读取了接口的相应默认网关地址。

这整个过程非常完美,但是具有root特权。有什么方法可以在不授予root用户的情况下更改这些设置?这是我无法解决的要求。像这样的问题来更改所有权可以通过将代码放在单独的可执行文件中并将该可执行文件的所有权更改为root,然后从主应用程序调用它来解决问题。

我只想知道是否可以在不授予该应用程序根访问权限的情况下更改此类设置。

c linux privileges network-programming root

3
推荐指数
1
解决办法
2718
查看次数

无法在443上运行节点js应用程序监听

我有一个套接字应用程序,我试图在端口443(https)上进行监听.如果我改变端口(例如8080)我没有问题.

显示的错误是

error raised: Error: listen EACCES
Run Code Online (Sandbox Code Playgroud)

我的应用源代码是:

var fs = require('fs');

// create the https server and listen on port
var options = {
    ca:   fs.readFileSync('ca.pem'),
    cert: fs.readFileSync('cert.pem'),
    key:  fs.readFileSync('server.key')
};

var server = require('https').createServer(options);
var portNo = 443;
var app = server.listen(portNo, function() {
  console.log((new Date()) + " Server is listening on port " + portNo);
});

// create the socket server on the port
var io = require('socket.io').listen(app);


// This callback function is called every time a …
Run Code Online (Sandbox Code Playgroud)

javascript node.js socket.io webrtc

2
推荐指数
1
解决办法
5023
查看次数

Haproxy Bind Error

你好StackOverflow,

我的haproxy似乎有一个错误,这是我尝试运行它时得到的

[ALERT] 208/051346 (5865) : Starting proxy ah1: cannot bind socket
[ALERT] 208/051346 (5865) : Starting proxy ah2: cannot bind socket
Run Code Online (Sandbox Code Playgroud)

我正在为TCP代理运行它.

这是我的配置:

#---------------------------------------------------------------------
# Example configuration for a possible web application.  See the
# full configuration options online.
#
#   http://haproxy.1wt.eu/download/1.3/doc/configuration.txt
#
#---------------------------------------------------------------------

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
    global
    log         127.0.0.1 local2 
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will 
# use if …
Run Code Online (Sandbox Code Playgroud)

linux proxy tcp rhel5 haproxy

2
推荐指数
1
解决办法
1万
查看次数

GCP上的golang =>监听tcp:443:绑定:权限被拒绝

尝试使用golang在Google Cloud Platform上设置https时遇到问题,让我们加密

  • 我已经有一个针对实例IP的域

  • 我还让我们对保存在/etc/letsencrypt/live/mydomain.com/上的证书和链进行加密

  • 我已经将myapp设置为使用证书,并配置为通过systemctl使用myapp.service作为服务运行

在完成所有这些配置之后,我总是得到下一条错误消息:


Feb 14 11:29:47 https https[1982]: 2019/02/14 11:29:47 listen tcp :443: bind: permission denied
Feb 14 11:29:47 https systemd[1]: https.service: Main process exited, code=exited, status=1/FAILURE
Feb 14 11:29:47 https systemd[1]: https.service: Unit entered failed state.
Feb 14 11:29:47 https systemd[1]: https.service: Failed with result 'exit-code'.
Run Code Online (Sandbox Code Playgroud)

https go google-cloud-platform lets-encrypt

2
推荐指数
2
解决办法
1779
查看次数

没有sudo运行Flask?

是否可以将Flask(http://flask.pocoo.org/)作为标准用户运行?

我需要在我的Pi上运行一个Web服务,但不确定当它需要通过我的防火墙暴露给Web时,作为超级用户运行它是多么安全.

python sudo firewall flask web

1
推荐指数
1
解决办法
2323
查看次数