2016-07-21 53 views
0

ノードjsサーバーを作成しましたが、ネットワーク外からアクセスできません。外部ネットワークからnodejsサーバーにアクセスできません

var express = require('express'); 
    var nodeapp = express(); 

var http = require('http'); 
var server = http.createServer(handleRequest); 
function handleRequest(request, response){ 
     console.log("Got some request" + request); 
     response.end("Response" + request.url); 
} 


server.listen(8086, "0.0.0.0", function() { 
     console.log("http server on "); 
}); 
sudo iptables -L 
Chain INPUT (policy ACCEPT) 
target  prot opt source    destination   

Chain FORWARD (policy ACCEPT) 
target  prot opt source    destination   

Chain OUTPUT (policy ACCEPT) 
target  prot opt source    destination 

iptablesには何も表示されません。しかし、私はポート8080にあるtomcatサーバーを持っており、私はそれにアクセスできます。

+0

OSとは何ですか? centos/selinuxの問題のように聞こえます – rambossa

+0

@ Michael-R RedHat – user1692342

+0

'semanage'を使ってポートにアクセスしようとしましたか? 80と8080は通常開かれているポートです – rambossa

答えて

1

RedHatの基本インストールを使用している場合は、おそらくSELinuxが有効になっている可能性があります。

SELinuxについての短い話ですが、この質問に関連するのは、httpアクセス用のポートを開いたり閉じたりできることです。 iptablesのようなものを操作する必要はありません。 80と8080のような標準的なポートは、通常、初期設定ですでに開いています。

https://wiki.centos.org/HowTos/SELinux

我々は、非標準ポート上の着信接続を結合して聞くことが許されるApacheなどのサービスをすることができセクション5.4

を参照してください。デフォルトでは、SELinuxポリシーはサービスに関連する認識されたポートへのアクセスのみを許可します。

semanage port -a -t http_port_t -p tcp 81 

サービスが得られることにSELinuxのアクセスを許可されているポートの完全なリスト:私たちはApacheがTCPポート81でリッスンすることを可能にしたい場合は、私たちは「semanage」コマンドを使用していることを許可するルールを追加することができますwith:

semanage port -l 
関連する問題