端口 433 上的 openVPN 和 myhttpd

端口 433 上的 openVPN 和 myhttpd

我正在尝试设置 OpenVPN 来监听我的 Asustor NAS 上的端口 443,然后通过使用基于以下内容的端口共享选项将所有 HTTPS 流量传递给 Apache: OpenVPN 与 Apache/SSL 端口共享

但是我没能让它工作。我认为问题在于端口 443 似乎正在监听进程 myhttp。当我运行# netstat -tulpn | grep LISTEN命令,我将得到这个结果:

tcp 0 0 0.0.0.0:443 0.0.0.0:* 监听 4475/myhttpd

当我将 OpenVPN 上的端口更改为 444 并运行# netstat -tulpn | grep LISTEN再次命令,我将得到下一个结果:

tcp 0 0 0.0.0.0:443 0.0.0.0:* 监听 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

我不知道如何解决这个问题。有人有什么建议吗?

答案1

问题是您的 Apache 正在监听0.0.0.0:443,而您需要将其设置为监听localhost:443。这样您就不会遇到服务器端口冲突的问题。

答案2

NAS 上的服务按数字和字母顺序依次排列,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 界面会在端口 80 或 443 释放后立即启动 myhttpd,其目的只是将它们重定向到 8000 和 8001。

对于我自己来说,上面的脚本不能很好地工作,因此我将 kill 块放在 docker init 脚本中,以确保我的容器在其他任何脚本执行之前捕获端口。

相关内容