Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Archives
Today
Total
관리 메뉴

Flutter 개발 Story

Node.js 서버 구축하기_3(외부 ip접속 허용) 본문

Node

Node.js 서버 구축하기_3(외부 ip접속 허용)

flutter 개발하자 2021. 3. 30. 15:30

이 글이 이번 주제의 핵심일 것 같다. Node관련해서 수많은 포스트들이 있지만, 외부 ip 접속 관련된 글들이 적었고, 필자의 경우 며칠동안 헤매다가 해결 할 수 있었다.

 

우선 서버를 돌릴 ip와 포트를 설정해야한다.

ip의 경우 로컬 ip주소를 넣으면 된다.

www

 

var app = require('../app').app;

var debug = require('debug')('서버명:server');

var http = require('http');

 

//server ip

const hostname = '아이피주소';

 

var port = normalizePort(process.env.PORT || '포트주소');

 

app.set('port', port);

 

 

var server = http.createServer(app);

 

server.listen(port, hostname, () => {

  console.log('Server running at http://${hostname}:${port}/');

});

server.on('error', onError);

server.on('listening', onListening);

 

 

function normalizePort(val) {

  var port = parseInt(val, 10);

 

  if (isNaN(port)) {

    // named pipe

    return val;

  }

 

  if (port >= 0{

    // port number

    return port;

  }

 

  return false;

}

 

function onError(error) {

  if (error.syscall !== 'listen'{

    throw error;

  }

 

  var bind = typeof port === 'string'

    ? 'Pipe ' + port

    : 'Port ' + port;

 

  // handle specific listen errors with friendly messages

  switch (error.code{

    case 'EACCES':

      console.error(bind + ' requires elevated privileges');

      process.exit(1);

      break;

    case 'EADDRINUSE':

      console.error(bind + ' is already in use');

      process.exit(1);

      break;

    default:

      throw error;

  }

}

 

 

function onListening() {

  var addr = server.address();

  var bind = typeof addr === 'string'

    ? 'pipe ' + addr

    : 'port ' + addr.port;

  debug('Listening on ' + bind);

}

 

이러면 서버가 해당 아이피와 포트에서 작동한다.

이제 2가지 작업만 남았다.

첫 번째는 포트를 여는 것이고, 

두 번째는 포트포워딩을 하는 것이다.

 

우선 포트를 여는 방법은 

window버전에서는 

인바운드를 추가하는 것이다. 해당 관련된 글은 많으니 찾아보자

 

ubuntu 버전에서는 

iptables로 포트를 열어주면 된다. 마찬가지로 관련된 글이 많으니 찾아보자

 

포트포워딩의 경우 

공인ip:포트 -> 로컬ip:포트의 구조다

라우팅의 개념과 유사하다.

예를 들어서

123.123.123.123:1000을 검색하면 이것에 연결된 로컬ip:포트로 넘어가는 것이다.

 

ktgiga에서는 

장치설정 -> 트래픽 관리 -> 포트포워딩을 설정하면

포트포워딩이 된다.

 

위의 3가지 작업이 끝나면 외부 접속이 가능해진다. 



 

'Node' 카테고리의 다른 글

Node.js 서버 구축하기_2(서버 설계)  (0) 2021.03.30
Node.js 서버 구축하기_1(세팅)  (0) 2021.03.30
Comments