Я пытаюсь настроить 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
Я не знаю, как решить эту проблему. Есть ли у кого-нибудь предложения?
Проблема в том, что ваш Apache слушает 0.0.0.0:443
, когда вам нужно настроить его для прослушивания localhost: 443
. Тогда вы не получите конфликтующих портов для серверов.
Службы в Сетевом хранилище запускаются в инкрементальном порядке по номеру, затем по алфавиту, а служба 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 скрипт, чтобы убедиться, что мои контейнеры ворвались портов, прежде чем что-либо еще сделал.
.