openVPN и myhttpd на порту 433

Я пытаюсь настроить OpenVPN для прослушивания порта 443 на моем NAS Asustor, а затем передать весь HTTPS-трафик в Apache с помощью общего порта. вариант на основе: Совместное использование порта OpenVPN с Apache / SSL

Однако я не могу заставить его работать. Я думаю, проблема в том, что порт 443, похоже, слушает процесс myhttp. Когда я запускаю # netstat -tulpn | grep LISTEN , я получу следующий результат:

tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 4475 / myhttpd

Когда я меняю порт OpenVPN на 444 и запускаю # netstat -tulpn | grep LISTEN снова, я получу следующий результат:

tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 4475 / myhttpd

tcp 0 0 0.0.0.0:444 0.0.0.0 : * СЛУШАТЬ 1507 / openvpn

tcp 0 0 127.0.0.1:1195 0.0.0.0:* СЛУШАТЬ 1507 / openvpn

Я не знаю, как решить эту проблему. Есть ли у кого-нибудь предложения?

0
задан 20 July 2017 в 11:19
2 ответа

Проблема в том, что ваш Apache слушает 0.0.0.0:443 , когда вам нужно настроить его для прослушивания localhost: 443 . Тогда вы не получите конфликтующих портов для серверов.

1
ответ дан 4 December 2019 в 16:11

Службы в Сетевом хранилище запускаются в инкрементальном порядке по номеру, затем по алфавиту, а служба VPN, расположенная в /usr/builtin/etc/init.d/ - это S83vpnconnect.

То, что я в конечном итоге делал для себя было создание стартового скрипта, который убивает все, что использует порты, которые я хочу, как раз перед сценарием, который нуждается в них:

S49killmyhttpd -> /usr/local/AppCentral/killmyhttpd/CONTROL/start-stop.sh

В вашем случае вы, вероятно, захотите, чтобы связать его как S83killmyhttpd, и сценарий будет:

#! /bin/sh

case $1 in
    start)
        PID1="$(fuser 80/tcp)"
        PID2="$(fuser 443/tcp)"
        echo "Killing useless port 80 hog, PID=${PID1}"
        kill -9 ${PID1}
        echo "Killing useless port 443 hog, PID=${PID2}" 
        kill -9 ${PID2} 
    ;;
    stop)
        echo "myhttpdkiller can't bring back what it killed"
    ;;
    reload)
        PID1="$(fuser 80/tcp)"
        PID2="$(fuser 443/tcp)"
        echo "Killing useless port 80 hog, PID=${PID1}"
        kill -9 ${PID1}
        echo "Killing useless port 443 hog, PID=${PID2}" 
        kill -9 ${PID2} 
    ;;
    *)
        echo "usage: $0 {start|stop|reload}"
    exit 1
    ;;
esac
exit 0

Вы можете или не должны, что перезагрузка разделе. Это была одна из самых разочаровывающих вещей в этом NAS для меня - Web GUI интерфейс является то, что начинает myhtttpd, как только порт 80 или 443 освобождаются, целью является только перенаправить их на 8000 и 8001.

Для себя скрипт выше не работал так хорошо, так что я поместил блок убийства в докер init скрипт, чтобы убедиться, что мои контейнеры ворвались портов, прежде чем что-либо еще сделал.

.
0
ответ дан 4 December 2019 в 16:11

Теги

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