c # простой сервер для получения соединения из интернета - PullRequest
1 голос
/ 14 июля 2010

Я сделал простой сервер, работающий локально с использованием tcplisten, и он отлично работает в локальной сети, например (127.0.0.11:8888)

Но как мне теперь получать подключения к серверу из интернета, какой ip и порт я должен установить ??

Спасибо

Ответы [ 6 ]

2 голосов
/ 14 июля 2010

Предполагая, что это машина Windows, и предполагая, что это простая сеть (то есть, что ваши брандмауэры пересылают соединения с 8888 на внутренний IP, или что у машины есть соответствующий внешний интерфейс), вы должны иметь возможность подключитьсячерез общедоступный интерфейс к вашей машине.Если вы устанавливаете свой слушатель с определенным IP-адресом (127.0.0.1), возможно, вы запрещаете соединения.

Вы можете использовать IPAddress.Any или сохранить список IP-адресов в конфигурации и загрузить их с диска.

IPEnpoint e = new IPEndPoint(IPAddress.Any, 8888)
TcpListener l = new TcpListener(e);
2 голосов
/ 14 июля 2010

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

1 голос
/ 14 июля 2010

Есть несколько вещей, которые вам нужно сделать:

1) Войдите в свой маршрутизатор и настройте переадресацию портов:

  1. С компьютера, подключенного к маршрутизатору ...
  2. Узнайте IP-адрес локальной сети вашего маршрутизатора и подключитесь к этому адресу в вашем веб-браузере (общие ip: 10.0.1.1 или 10.0.1.254 или 192.168.1.1 или 192.168.1.254).
  3. Найдите в маршрутизаторе пункт меню, позволяющий настроить переадресацию портов.
  4. Добавьте порт для пересылки и введите сетевой IP-адрес вашего сервера (должен быть близок к IP-адресу маршрутизатора) и требуемый номер порта.
  5. Сохранить и закрыть.

2) Добавьте исключение в брандмауэр, чтобы разрешить трафик TCP с желаемого порта.

3) Узнайте общедоступный IP-адрес вашего маршрутизатора (попробуйте http://www.myipaddress.com) и попытайтесь подключиться к вашему серверу, используя этот адрес.

Это должно быть все, что вам нужно сделать.

1 голос
/ 14 июля 2010

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

PS: веб-браузеры по умолчанию подключаются к порту 80. Вы можете подключиться к различным портам, указав порт в URL-адресе, например - http://www.example.com:8080/index.html.

0 голосов
/ 14 июля 2010

Ваш сервер должен работать на компьютере с реальным IP-адресом.Сервер может привязать себя к IP-адресу по умолчанию или вы можете явно указать IP-адрес для привязки.Порты не являются проблемой, если никакое другое серверное приложение не прослушивает тот же IP-адрес: Порт.

0 голосов
/ 14 июля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...