Как использовать туннели ngrok tcp с сокетом C #

#c# #sockets #tcp #ngrok

#c# #сокеты #tcp #ngrok

Вопрос:

Мне нужно подключиться к локальному tcp-серверу с помощью ngrok. Я пытался подключиться следующим образом:

 Socket _clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_clientSocket.Connect(IPAddress.Parse("<int>.tcp.ngrok.io"), 10543); // Port of tcp tunnel
 

Но есть проблема в том, что он не подключается ко мне.

Ответ №1:

Загрузите файл ngrok с веб-сайта и запустите его с помощью команды:

 ngrok tcp (your port here)
 

когда вы запустите его, после переадресации вы должны увидеть домен. скопируйте его без tcp://
после этого откройте cmd и введите:

 ping (ngrok domain eg. 2.tcp.ngrok.io:69420 becomes 2.tcp.ngrok.io)
 

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

 Client.Connect(IPAddress.Parse("ip in the cmd output"), port of the ngrok domain);
 

Я считаю, что это работает, хотя и не совсем уверен, но стоит попробовать.

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