1

В настоящее время мои настройки выполняются с помощью XAMPP и простого VPN-сервера, предоставляемого сетевыми подключениями Windows.

Если я удаляю Incoming Connections , запускаю apache, а затем переделываю VPN-сервер следующим образом:

Работает нормально (как VPN, так и apache).

Я уже знаю, что могу изменить Apache для работы на разных портах, но я не хочу этого делать. Можно ли в любом случае остановить систему от использования порта 443?

Поэтому, возможно, в моих интересах также не менять порт VPN-сервера.

Я хочу запустить мой Apache и VPN одновременно, какие-либо рекомендации?

3 ответа3

4

Проблема заключается в том, что Windows 7 пытается принимать входящие VPN-соединения, используя все протоколы, которые она может поддерживать, в том числе SSTP (протокол туннелирования защищенных сокетов). SSTP в основном PPP туннелируется по SSL, и по умолчанию он использует тот же порт 443, что и обычные HTTPS-соединения. Такое использование порта 443 позволяет SSTP проходить через множество HTTP-прокси, которые позволяют подключаться к серверам HTTPS. К сожалению, это также означает, что он будет конфликтовать с запуском HTTPS-сервера на той же машине, что и SSTP VPN-сервер - если только HTTPS-сервером не является Microsoft IIS, который использует тот же драйвер ядра http.sys что и SSTP-сервер для обработки HTTP и HTTPS Запросы.

Обратите внимание, что входящие SSTP-соединения, скорее всего, будут сбои, потому что ваш компьютер, вероятно, не имеет соответствующего сертификата сервера для их принятия. Вероятно, вы увидите предупреждения RasSstp/18 в журнале системных событий, информирующие об этих проблемах. Однако это не мешает системе занимать порт 443, даже если клиентские подключения SSTP к нему фактически потерпят неудачу.

В блоге Routing and Remote Access Blog есть несколько полезных статей о SSTP. Однако я не смог найти способ отключить использование SSTP только для VPN-сервера. Можно отключить устройство «WAN Miniport (SSTP)» в Диспетчере устройств (после включения опции «Показать скрытые устройства»), однако это также может повлиять на исходящие VPN-подключения с той же машины.

Но есть статья о конфигурации сервера SSTP, а также KB947054, в которой описывается способ изменения порта, используемого сервером SSTP для приема входящих соединений. Используя редактор реестра, найдите следующий подраздел:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Sstpsvc\Parameters

Затем установите значение DWORD для ListenerPort на номер порта, который должен использоваться для входящих подключений SSTP. Обязательно укажите его как десятичное значение (по умолчанию выбран переключатель «Шестнадцатеричный»). Выберите порт, который не будет конфликтовать с другими портами, используемыми системой или вашими приложениями.

Чтобы применить новый параметр, перезапустите службу «Маршрутизация и удаленный доступ». Проверьте выходные данные команды netstat -aon чтобы убедиться, что новый указанный порт уже используется, а порт 443 больше не используется.

2

Это старый вопрос, но я хочу добавить некоторые другие варианты.

Преимущество обоих заключается в том, что вы все равно можете продолжать использовать SSTP на порту 443. Это особенно полезно, потому что этот порт открыт в большинстве брандмауэров компании, гостиницы, точки доступа, ..., позволяя вам установить VPN-соединение, при котором PPTP/IPSec/... не будет работать.

Используйте IIS вместо Apache

На IIS вы можете запускать в основном все, что угодно (например, PHP), а также на Apache.

Вы можете использовать установщик веб-платформы Microsoft, чтобы настроить это для себя: http://www.microsoft.com/web/downloads/platform.aspx Оттуда вы можете устанавливать все виды фреймворков.

Если вы хотите использовать PHP специально (он просто запускает установщик веб-платформы с предварительно выбранным PHP): http://www.microsoft.com/web/platform/phponwindows.aspx

Это также будет намного быстрее в Windows, чем Apache.

Apache выходит на IIS в качестве обратного прокси

Пусть IIS прослушивает порт 443 (разгрузка SSL) и пересылает в Apache (на порт 80 или что-то еще).

Ищите "Обратный прокси IIS" в Google. Ваши варианты - перезапись URL или маршрутизация запроса приложения (ARR).

Некоторые веб-приложения могут быть специально настроены для работы за обратным прокси-сервером, поскольку входящий URL-адрес будет изменен прокси-сервером.

0

Я создал файл VBS, чтобы быстро изменить порт SSTP.

If WScript.Arguments.length = 0 Then
    Set ObjShell = CreateObject("Shell.Application")
    ObjShell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """" & " RunAsAdministrator",, "runas", 1
    WScript.Quit
End If

Set objRegistry = GetObject("winmgmts:\\.\root\default:StdRegProv")

strValue = InputBox("Desired new port for SSTP:")
objRegistry.SetDWORDValue &H80000002, "SYSTEM\CurrentControlSet\services\SstpSvc\Parameters", "ListenerPort", strValue
MsgBox "SSTP ListenerPort has been changed to " & strValue & "."

Скопируйте и вставьте его в новый текстовый документ и измените расширение на .vbs .

Вы также можете скачать этот скрипт здесь.

После изменения порта вам необходимо перейти в командную строку в качестве администратора (создать ярлык cmd.exe и запустить от имени администратора). Затем введите эти две команды:

net stop "routing and remote access"
net start "routing and remote access"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .