Я пытаюсь создать сервер Half Life, перенаправляя порты через свой маршрутизатор. Это не сработало, я проверил, и мой публичный IP и мой WAN IP были разными, затем я понял, что я в сети операторского класса. Я позвонил провайдеру, спросил их, есть ли способ сделать это без того, чтобы им пришлось перенаправлять порты на мой маршрутизатор, и они сказали: да, парень сделал мой маршрутизатор хостом DMZ. Это было то, что мне было нужно, запросы на мой публичный IP на любой порт передавались через мой маршрутизатор, а затем мой маршрутизатор перенаправлял только тот порт, который меня интересовал, порт 27015, UDP-порт по умолчанию сервера Half Life.
Но это не сработало. Я убедился, что у моего локального хоста статический IP-адрес, и настроил DHCP на резервирование его для меня, установил правила брандмауэра, разрешающие трафик на порту 27015, и использовал все правильные IP-адреса для моего локального хоста, моего шлюза по умолчанию, моего адреса wan и моего публичного адреса.
Мы с парнем из интернет-провайдера снова поговорили и пришли к выводу, что порт каким-то образом закрыт. Я быстро настроил сервер Filezilla (переадресовал порт 27015 в качестве прослушивающего порта и установил диапазон 11000-12000 для передачи файлов как в правилах маршрутизатора, так и в брандмауэре) и спросил его, может ли он вывести мой домашний каталог с моего публичного IP-адреса и порта 27015. ЭТО СРАБОТАЛО, значит, все в порядке, проверил с помощью Wireshark.
Теперь я в ситуации, когда я хочу, чтобы это работало, но не уверен, что происходит. Интернет-провайдер не особо помогает, и я думаю, что либо настроенная им DMZ каким-то образом не пропускает пакеты UDP, поскольку Filezilla использует TCP, а сервер Half-life использует UDP, либо на маршрутизаторе интернет-провайдера установлен брандмауэр, блокирующий пакеты UDP, или порт 27015 не является распространенной службой.
Я новичок в работе с сетями, пытаюсь настроить это скорее как вызов, многому научился, делая и читая, как что-то делать, пожалуйста, не стесняйтесь указывать на любые ошибки и предлагать решения. Также пытаюсь сделать это определенным образом, если у меня не получится, вероятно, попробую использовать ngrok, чтобы заставить игровой сервер работать.