Домашний сервер майкрософтофила
Всегда мечтал о своем сервер с белым ip, стоящим у меня дома. Краткий обзор как же я его сделал на стеке Microsoft Windows 10 + ASP NET Core
Разобраться можно и без скриншотов, но я
Белый IP
Для начала нужно получить белый IP. Возможность сделать это полностью зависит от провайдера и региона
Пока у меня был МТС я просто физически не мог его приобрести. Они продавали его только для Москвичей. Уж не знаю с чем это связано. Возможно, это тайный план обострить конфликт между провинцией и столицей.
Но, поскольку у меня случился переезд и МТС не мог провести Интернет в новый дом, я начал искать другого провайдера.
Когда я спосил совета у друзей, мне единодушно порекомедовали Ростелеком, поскольку у него есть технология оптоволокна.
Оказалось, что так как мой дом старый, сюда можно подвести только обычный ethernet-кабель. Но даже без этого, сравнив скорость интернета и абонентскую плату, я решил выбрать Ростелеком.
И вот у них как раз и оказалась доступна услуга статического (белого) IP. При чем она ещё и стоила в два раза дешевле чем в Москве. Здесь раскачивают уже в другую сторону.
У Ростелекома подключение интернета идет через PPPoE и после активации статического IP ничего дальше настраивать не нужно.
Это не реклама.
Кстати, я удивлен почему это услуга все ещё доступна. Разве нас не пугали что все IPv4 адреса заняты?
NAT
Отныне мой роутер торчит наружу в интернет. Но он не умеет сам обрабатывать HTTP-запросы. Нужно настроить NAT для переадресации запросов на компьютер
Мой роутер - Zyxel NBG6615. Настроить можно переадресацию конкретных протоколов и конктреных портов, но для теста я включил переадресацию всех запросов без фильтров на локальный IP сервера
Кроме этого, нужно отключить firewall. Я бы все таки хотел как-то настроить его, а не отключать, но возможности такой не нашел.
Брандмаузер
Теперь запросы приходят на компьютер, но он их отбрасывает, так как порты не открыты наружу.
Заходим в Брандмаузер и добавляем новое правило и разрешаем нужный диапазон портов. Для теста 5000-5010
Картинки
Отдает XP-шностью
ASP NET Core
Открываем Visual Studio (потому что на Rider кончилась студенческая подписка) и создаем базовый шаблон для ASP NET Core
Меняем метод CreateHostBuilder
в Program.cs
UseKestrel
для того, чтобы не ставить IIS
UseUrls
чтобы указать открытый порт и хостовать приложение на локальном IP а не localhost