Задать вопрос
@DazzleBizzareAdventure

Как открыть порт на Windows 11?

В общем, пытаюсь открыть порт 31200 на Windows 11.
Прописал в настройках Firewall в Inbound Rules и Outbound Rules этот порт для TCP и UDP.
Далее настроил port forwarding на своем роутере ASUS
677d0cb31a469054484743.png

Но сайт: https://www.yougetsignal.com/tools/open-ports/ продолжает говорить, что этот порт закрыт.
В чем может быть проблема? Может быть на стороне провайдера есть какие-то ограничения?
Как можно обойти эти ограничения? Мне просто нужно с товарищем законнектится в старую игру.
  • Вопрос задан
  • 258 просмотров
Подписаться 2 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 5
В том, что ваш роутер находится за CGNAT и недоступен снаружи
Ответ написан
Комментировать
@Drno
Во первых - есть ли у Вас услуга от провайдера "внешний \ белый" IP ? если нет - ничего не выйдет
во вторых если есть - попробуйте просто отключить фаерволл в винде для проверки
Ответ написан
Комментировать
@kalapanga
Как можно обойти эти ограничения?

Кроме покупки у провайдера белого ip, можно попробовать воспользоваться каким-нибудь сервисом DynDNS (есть бесплатные).
Ответ написан
akelsey
@akelsey
на Windows 11 сохранить файл как port31200.ps1
# Задаем порт для прослушивания
$port = 31200

# Создаем TcpListener для указанного порта
$listener = [System.Net.Sockets.TcpListener]::new([System.Net.IPAddress]::Any, $port)
$listener.Start()

Write-Host "Сервер запущен и слушает порт $port..."

try {
    while ($true) {
        # Ожидание входящего подключения
        $client = $listener.AcceptTcpClient()
        Write-Host "Клиент подключился: $($client.Client.RemoteEndPoint)"

        # Получаем поток данных от клиента
        $stream = $client.GetStream()
        $reader = New-Object System.IO.StreamReader($stream)

        # Читаем данные, пока клиент не отключится
        while ($true) {
            if ($stream.DataAvailable) {
                $data = $reader.ReadLine()
                if ($null -ne $data) {
                    Write-Host "Получено: $data"
                }
            }
            Start-Sleep -Milliseconds 100
        }

        # Закрываем соединение
        $reader.Close()
        $client.Close()
        Write-Host "Клиент отключился."
    }
} catch {
    Write-Host "Ошибка: $_"
} finally {
    # Останавливаем прослушиватель при завершении
    $listener.Stop()
    Write-Host "Сервер остановлен."
}

запустить,

с другой windows 11 проверить:
echo Hello World! | telnet <PublicIP> 31200
Ответ написан
Комментировать
mainheader
@mainheader
Divide et impera
Если нет белого ip - не прокатит. Надо у провайдера покупать, ибо вы за NAT'ом находитесь
Но если сильно нужно, можете ngrok использовать например
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы