Как перейти с локального хостинга на доменное имя? - PullRequest
0 голосов
/ 23 мая 2019

Я не уверен, как сделать публичный сервер с моего ноутбука или с доменного имени, купленного где-то вроде Google.

В настоящее время я следовал руководству по созданию сервера, на котором размещен некоторый код обработки на localhost: 3000, но я хотел сделать его общедоступным, чтобы мои друзья могли подключаться и т. Д. Я пытался использовать мой публичный IP-адрес, а также мой Ipv4 адрес на моем ноутбуке, но, кажется, работает только через подключение к локальной сети. Мне было интересно, если я куплю доменное имя от Google, если можно заменить «localhost: 3000» на доменное имя, используя Node.js и Express.

var socket;

function setup() {
  createCanvas(600,400);
  background(51);
  socket = io.connect('http://localhost:3000');

  socket.on('mouse', newDrawing);
}

function newDrawing(data) {
  noStroke();
  fill(255, 0, 100);
  ellipse(data.x, data.y, 20, 20);
}
function mouseDragged() {
  console.log('Sending: ' + mouseX + ',' + mouseY);

  var data = {
    x: mouseX,
    y: mouseY
  } 
  socket.emit('mouse', data);

Это фрагмент моего кода на стороне клиента, дайте мне знать, если вы хотели бы видеть также и сторону сервера.

Я надеюсь, что смогу подключиться к серверу, запущенному на моем ноутбуке из разных сетей, заменив доменное имя с localhost: 3000 на что-то вроде myprivateserver.com

1 Ответ

0 голосов
/ 23 мая 2019

Самый простой способ, как уже упоминал комментатор, - разместить свой сервер на хостинге, таком как heroku. Ngrok также подходит для разработки, но URL - это очень длинная и запутанная строка, которую ваши друзья не будут рады печатать.

Причина, по которой вы можете получить доступ к вашему серверу из локальной сети, но не из Интернета, заключается в том, как работает ваша внутренняя сеть. Если вы заметили, что все ваши устройства, подключенные к одной и той же сети (WiFi), имеют один и тот же общедоступный IP-адрес, а также имеют собственный частный IP-адрес во внутренней сети (обычно это что-то вроде 192.168.xxx.xxx.). Поскольку машины находятся в одной (частной / внутренней) сети, они могут нормально общаться друг с другом. Вещи сложнее, хотя, если машина из Интернета пытается добраться до них.

Это потому, что машины в Интернете «знают» только о вашем общедоступном IP-адресе и ничего не знают о внутренней сети. Поэтому, когда запрос достигает вашего маршрутизатора, он отбрасывается, так как неясно, на какую машину он должен идти. (На самом деле это функция безопасности, поскольку запросы могут инициироваться только из внутренней сети).

Однако вы можете зайти в настройки вашего маршрутизатора (обычно это можно сделать, набрав 192.168.0.1 из любого браузера / устройства, подключенного к локальной сети) и найти настройки NAT (преобразование сетевых адресов). Затем вы можете сопоставить порт 80 - порт http по умолчанию, хотя вы можете использовать любой порт вашего маршрутизатора на [private-ip-address]: 3000 вашего компьютера, где [private-ip-adress] - это локальный IP-адрес компьютер, на котором размещен сервер узла (возможно, что-то вроде 192.168.xxx.xxx).

Если все сделано правильно, ваш сервер будет доступен из открытого Интернета всем, кто знает ваш публичный IP.

Покупка доменного имени и его использование также требует некоторых дополнительных шагов: это потому, что обычно общедоступные IP-адреса, предоставляемые интернет-провайдерами «домашним» клиентам, динамичны и время от времени меняются. Таким образом, вам нужно будет использовать службу DNS (некоторые бесплатные существуют там, лично я использую этот один), чтобы убедиться, что имя домена всегда указывает на правильный общедоступный IP-адрес!

...