Nodejs Server Oluşturma Sorunu
-
Hocalarım şöyle bir sorun var benim normal DigialOcean da olan sunucum da çalışan kod burda çalışmıyor port sorunu mu bilmiyorum eksik birşey mi yaptım çözemedim...
Kodum şudur ;
//JavaScript
var app = require('express')(); var http = require( "http" ).createServer( app ); var io = require( "socket.io" )( http ); http.listen(120, "xxxx.xxx.xx"); io.on('connection',function(socket){ console.log("A user is connected"); });Ufw status dediğimde çıkan sonuç ;
Apache Full ALLOW Anywhere
20/tcp ALLOW Anywhere
22/tcp ALLOW Anywhere
3306/tcp ALLOW Anywhere
21/tcp ALLOW Anywhere
990/tcp ALLOW Anywhere
40000:50000/tcp ALLOW Anywhere
120/tcp ALLOW Anywhere
Apache Full (v6) ALLOW Anywhere (v6)
20/tcp (v6) ALLOW Anywhere (v6)
22/tcp (v6) ALLOW Anywhere (v6)
3306/tcp (v6) ALLOW Anywhere (v6)
21/tcp (v6) ALLOW Anywhere (v6)
990/tcp (v6) ALLOW Anywhere (v6)
40000:50000/tcp (v6) ALLOW Anywhere (v6)
120/tcp (v6) ALLOW Anywhere (v6)
Sunucumda firewall da açık olan portlar

Aldığım hata ;
throw er; // Unhandled 'error' event ^ Error: listen EADDRNOTAVAIL xxxx.xxxxxx:120 at Object.exports._errnoException (util.js:870:11) at exports._exceptionWithHostPort (util.js:893:20) at Server._listen2 (net.js:1224:19) at listen (net.js:1273:10) at net.js:1382:9 at nextTickCallbackWith3Args (node.js:452:9) at process._tickCallback (node.js:358:17) at Function.Module.runMain (module.js:444:11) at startup (node.js:136:18) at node.js:966:3 -
120 numaralı port kullanımda olduğu için bu hatayı veriyordur.
netstat -ltnp | grep ':120'
komutu ile hangi uygulamanın kullandığını bulabilirsin.
RockZs tarafından 27/Şub/17 16:24 tarihinde düzenlenmiştir -
Yok hocam herhangi bir çıktı vermiyor onu denedim 120 port'u boşta 1337'den büyük port verdim 3000'i gene yemedi..
-
ben bu hatayı port kullanımda ise alıyordum. böyle olmadığından eminsen iptables dan öte, bir yazılım/donanım portu kullanmana izin vermiyor olabilir ya da kodlamada bir hata olabilir (bunu geçiyorum çünkü DO da çalışıyor demişsin ama uygulama içinde iki ayrı kez port120 yi çağırma durumu olabilir.)..
DO vps ile localhost (ya da neresiyse) npm, nodejs, express, socketio paketlerinin versionları farklı olabilir..
RockZs tarafından 27/Şub/17 16:33 tarihinde düzenlenmiştir -
Yok hocam çalıştırdığım dosya sadece o üstte gösterdiğim kod parçası sadece o . Denemelik yazdım çalışıyor mu diye ama yemedi..
Server'da firewall var 120 port'u açık ama yemiyor neden çözemedim... Başka ne gibi bir donanım engelleyebilir ki ? hadi 120 engelledi 120-150-1453-3000-3001-1415-1234 i denedim olmuyor hocam hiçbiri yemedi :/
EDİT ; Hocam aynı package.js var direk ordan upload ediyorum tüm dosyaları
MhmdAlmz tarafından 27/Şub/17 16:35 tarihinde düzenlenmiştir -
-
hocam http server ile websocket portları aynı oluyor olabilir.. kod yapısına tekrar bak derim.. express ve socket io bir arada hiç kullanmadım, o yüzden anlayamıyorum tam.
-
Hocam aynı olsa netstat da görürdüm herhalde kimin veya neyin kullandığını port boşta ..... Acaba diyorum sunucudan kapatılmış olabilir. bunu nasıl kontrol edebilirim ?
xxx.xxx.xx 80 'e ping nasıl atabilirim yada bunun dışarıya acık olup olmadığını nasıl görebilirim ?
-
MhmdAlmz bunu yazdı
Hocam aynı olsa netstat da görürdüm herhalde kimin veya neyin kullandığını port boşta ..... Acaba diyorum sunucudan kapatılmış olabilir. bunu nasıl kontrol edebilirim ?
xxx.xxx.xx 80 'e ping nasıl atabilirim yada bunun dışarıya acık olup olmadığını nasıl görebilirim ?
bir de portu 45555 yapıp dener misin?
You can't ping ports, as Ping is using ICMP which doesn't have the concept of ports. Ports belong to the transport layer protocols like TCP and UDP. However, you could use nmap to see whether ports are open or not
nmap -p 80 example.com
ping ICMP protokolü olduğu için port gibi bir olayı yok diyor. nmap ile portun açık olup olmadığını yukarıdaki komutla görebilirsin.
http://serverfault.com/questions/309357/ping-a-specific-port
RockZs tarafından 27/Şub/17 16:56 tarihinde düzenlenmiştir -
RockZs bunu yazdıMhmdAlmz bunu yazdı
Hocam aynı olsa netstat da görürdüm herhalde kimin veya neyin kullandığını port boşta ..... Acaba diyorum sunucudan kapatılmış olabilir. bunu nasıl kontrol edebilirim ?
xxx.xxx.xx 80 'e ping nasıl atabilirim yada bunun dışarıya acık olup olmadığını nasıl görebilirim ?
bir de portu 45555 yapıp dener misin?
You can't ping ports, as Ping is using ICMP which doesn't have the concept of ports. Ports belong to the transport layer protocols like TCP and UDP. However, you could use nmap to see whether ports are open or not
nmap -p 80 example.com
ping ICMP protokolü olduğu için port gibi bir olayı yok diyor. nmap ile portun açık olup olmadığını yukarıdaki komutla görebilirsin.
http://serverfault.com/questions/309357/ping-a-specific-port
hayır hocam olmadı gene aynı hatayı aldım malesef :(
-
portu kontrol etmek için aşağıdaki kodu çalıştırmayı deneyebilirsin. daha sonra ip adresine 120 port dan bağlandığında "Hello World" gibi bişey yazması lazım..
var http = require('http'); var requestListener = function (req, res) { res.writeHead(200); res.end('Hello, World!\n'); } var server = http.createServer(requestListener); server.listen(120);
