В качестве альтернативы, вы можете использовать что-то вроде PortMapper AnalogX , чтобы действовать в качестве небольшого петлевого прокси для туннеля частных локально привязанных портов для публично открытых портов.
Например,
- IISExpress локально связан с localhost: 8080
- PortMapper порт 9090 настроен на ретрансляцию трафика на localhost: 8080
Эффективно, любое соединение через порт 9090 (открытое PortMapper ) будетбыть туннелированным на localhost: 8080 ;тем самым обойдя всю ерунду netsh, которая иногда может быть болезненной.
Ниже моя конфигурация:
Преимущество использования этого метода проксирования состоит в том, что он делаетне всегда открывать открытый порт IISExpress на локальном устройстве dev.
Редко бывают случаи, когда я хочу открыть порт публично для собраний;но большую часть времени порт должен быть закрыт и быть доступным только для localhost.Изменение правил брандмауэра на маршрутизаторе каждый раз является проблемой.Вот как у меня все настроено:
- Мой брандмауэр маршрутизатора перенаправляет 9090 порт на PortMapper
- Только PortMapper продолжает перенаправлять трафик на IISExpress (прослушивание 8080 ), только если работает PortMapper .
Примечание
Обязательно закройте все окна PortMapper , чтобы изменения вступили в силу.
Примечание 2
Как уже описывали другие пользователи, вам может потребоваться настроить IISExpress привязки для вашего приложения в
My Documents\IISExpress\applicationhost.config
project\.vs\config\applicationhost.config
к чему-то вроде:
<bindings>
<!-- bindingInformaiton format:
IPToBindTo:Port:DNSHostName -->
<!--OLD:
<binding protocol="http" bindingInformation="*:8080:localhost"/>-->
<!--Change '*' to 127.0.0.1 and remove 'localhost' right of the port number
to avoid invalid DNS hostname errors -->
<binding protocol="http" bindingInformation="127.0.0.1:8080:" />
</bindings>