我已经绞尽脑汁调试了好几个星期,这个 LEMP 网络服务器曾经运行完美。我使用的设置相对复杂。让我们从一开始一切运行完美的设置开始。
步骤 1(工作设置):lemp 服务器/nginx > Raspberry Pi > 带转发端口的辅助路由器 > 带转发端口的主路由器 > 公共互联网服务网页
我在 Raspberry Pi 4 上运行基于 Raspian OS 的 Lemp 服务器。Nginx 通过连接到主路由器/调制解调器的辅助路由器运行反向代理。主路由器/调制解调器将 https 和 http 端口转发到辅助路由器,然后辅助路由器将这些端口转发到 Raspberry Pi。Raspberry Pi 成功从 certbot 获取证书,并运行一个可从公共互联网访问的功能齐全的网站。
步骤 2a(工作设置):lemp 服务器/nginx > Raspberry Pi > 辅助路由器 > EC2 Openvpn-AS 隧道 > 带转发端口的主路由器 > 提供网页服务的公共 Amazon Internet 接下来,我创建了一个 AWS EC2 OpenVPN-AS 实例,并将其作为服务器运行。从那里,我在 raspberry pi lemp 服务器上安装 openvpn,将我的域 dns 更改为指向我的 OpanVPN-AS 实例的 IP 地址而不是我的家庭 IP,然后在我的 lemp 服务器上运行 openvpn 作为客户端,成功地通过 OpenVPN AWS 实例将我的 Web 服务器隧道传输到公共互联网。此设置有效。
直到....
我做了一些事情来完全停止通过 vpn 与服务器的所有连接。问题是,我完全不知道我做了什么来改变这个曾经有效的设置。我知道我更新了 pi,我想我可能更改了内部主机名,但在我的 pi 成为死机服务器之前,我能记得的就这么多了。
在内部网络上,使用 EC2 隧道时,Web 服务器仍使用本地 ip 工作。
我注意到的奇怪现象是,尽管 AWS 隧道设置阻止了我的 Web 服务器工作,但一旦我将服务器重新插入没有调谐器的家庭路由器,并将 DNS 重新指向家庭路由器,服务器就会再次开始公开工作。我只是无法确定,自从我的服务器通过 AWS OVPN 隧道工作以来,到底发生了什么变化,现在,它无法解析,但它以某种方式在我的家庭 IP 上解析,只需更改最少的设置。从 AWS 切换到家庭路由器时,我真正改变的唯一事情是域 DNS 指向的 IP,以及 VPN 隧道是否应该启动或关闭。
至于亚马逊 ovpn 隧道,它也能正确解析,并且服务器也能正确获取新的亚马逊 IP 地址。
我知道如何构建服务器,但是,在调试服务器和找出连接问题所在方面,我简直就是个超人菜鸟。所以我的问题是...
有人能尝试指导我完成一些步骤来调试这个问题,并使用亚马逊 IP 地址通过我的 openvpn 实例重新启动并运行我的 websever 吗?除了通过亚马逊隧道成功 ping 以及看起来健康的跟踪路由之外,我根本不知道从哪里开始。
我的 EC2 端口 443 和 80 是开放的,我甚至尝试关闭所有防火墙,但无济于事。
任何建议、提示、演练或适合初学者的垫脚石,如果能帮助我调试这个并确定连接断开的位置,我将不胜感激!
答案1
VPN 日志是否确认隧道确实已启动并正在运行?
您说您可以成功跟踪到公共 IP 地址。您可以使用 telnet 进行手动连接吗?例如:如果您的主机 IP 是 123.456.789.123:telnet 123.456.789.123 80
你应该得到如下的回应:
正在尝试 123.456.789.123... 已连接到www.example.com. 转义字符是 '^]'。
如果有效,您可以使用以下命令测试服务器:GET /index.htm HTTP/1.1 host: 123.456.789.123 <换行符 - 按两次回车键>
服务器应使用索引页 html 进行响应:HTTP/1.1 200 OK Date:...等