2016-07-02 3 views
0

Я следующий код, написанный с узлом/Коа, который служит для port 80:Веб-страница не является общедоступной через порт 80

const 
koa = require('koa'), 
route = require('koa-route'), 
network = koa(), 
common = require('koa-common'), 
PORT = 80; 

// enable logger middleware 
network.use(common.logger('dev')); 

// enable static middleware 
network.use(common.static(__dirname + '/public')); 

network.use(route.get('/', index)); 
network.use(route.get('/about', about)); 
function *index() { 
this.body = "<h1>Is this message on my computer, or on yours...?</h1>"; 
} 
function *about() { 
this.body = "<h2>How about now...</h2>"; 
} 
var server = network.listen(PORT, function() { 
    console.log('Listening on port %d', server.address().port); 
}); 

Я зарезервировали адрес (168.192.1.91) для хост-компьютера, настроить порт переадресация по этому адресу на port 80, сделал исключение в брандмауэре Windows 10 для port 80 при подключении к с помощью любого протокола, и протестированы с You Get Signal:

Port Forwarding Tester

, который подтверждает, что порт в настоящее время открыт. Когда я просматриваю localhost:80, я вижу страницу по умолчанию. Однако, когда я печатаю публичный IP-адрес компьютера в браузер (я печатаю в одном, что я частично затемняюсь, который я считаю, должно быть правильным):

IP Address

этой страница терпит неудачу загрузить со следующей ошибкой:

This site can’t be reached 

109.[...] took too long to respond. 
Try: 
Reloading the page 
Checking the connection 
Checking the proxy and the firewall 
ERR_CONNECTION_TIMED_OUT 

и нет никакой активности в журнале Коа (который входит хорошо, когда я просматриваю туда через localhost:80). Любые идеи, что может блокировать соединение?

Я также попытался добавить адрес хоста в качестве второго параметра, как это:

const HOST = "127.0.0.1"; 

    var server = network.listen(PORT, HOST, function() { 
    console.log('Listening on port %d', server.address().port); 
}); 

Это работает для адреса замыкания на себя, но когда мне указать публичный IP я получаю эту ошибку:

C:\Sites\order-server>node --harmony cheese.js 
events.js:154 
     throw er; // Unhandled 'error' event 
    ^

Error: listen EADDRNOTAVAIL [My public IP here]:80 
    at Object.exports._errnoException (util.js:890:11) 
    at exports._exceptionWithHostPort (util.js:913:20) 
    at Server._listen2 (net.js:1221:19) 
    at listen (net.js:1270:10) 
    at net.js:1379:9 
    at _combinedTickCallback (node.js:386:13) 
    at process._tickCallback (node.js:407:11) 
    at Function.Module.runMain (module.js:449:11) 
    at startup (node.js:142:18) 
    at node.js:939:3 
+0

Вы также открыли порт в своем маршрутизаторе? –

+0

@BubbleHacker Я настроил переадресацию портов. Разве это не одно и то же? –

ответ

0

может КоА по умолчанию только связывается с 127.0.0.1, так что вы можете попробовать связывание с любым хостом явно с .listen(80, '0.0.0.0')

в противном случае, если муравей брандмауэра порт forwa rding настроен соответствующим образом, проблема может заключаться в том, что ваш интернет-провайдер где-то блокирует входящие соединения. Вы можете попробовать использовать порт более 1024, если он только блокирует порты ниже.

+0

Ах. Я думаю, ты, возможно, прав Джулиан. Мне было интересно, нужно ли мне менять IP-адрес, которому он служит, но я не мог узнать, как в любом из документов. Я мог бы просто использовать выражение, я полагаю, но я думаю, что предпочел бы Коа, потому что мне нравится, как все это модульное. Мне нужно спать сейчас, но завтра я, вероятно, просто попробую добавить IP-адрес в качестве второго параметра так, как вы это делаете, с выражением завтра и посмотреть, работает ли это. Если да, то я приму свой ответ :). –

+0

Хорошо, я закончил тем, что пробовал это, прежде чем ложиться спать, но он действительно работает :(Добавил сообщение об ошибке, я попал на вопрос. –

+0

Nevermind. Мне просто нужно указать IP-адрес компьютера, а не публичный IP-адрес, а затем переадресацию порта –

Смежные вопросы