外部用户无法访问 VirtualBox 上的 nginx Web 服务器

外部用户无法访问 VirtualBox 上的 nginx Web 服务器

问题
我只能在内部访问我的 nginx Web 服务器。Web 服务器托管在我的虚拟机上。外部世界无法访问它。内部是指在我的虚拟机和主机内,而不是从外部设备(例如未连接到 Wi-Fi 的智能手机)访问。我已将虚拟机网络设置配置为使用桥接适配器,并且我在路由器中配置了端口转发(见下图)。我可以使用外部和内部 IP 访问主机上的 Web 服务器。配置后路由器已重新启动。

目标
我希望外界能够访问我的网络服务器。

规格
主机操作系统:Windows 10
虚拟化软件:VirtualBox(Ubuntu Desktop 20.04.3 LTS)
VM 上的 Web 服务器:Nginx

VirtualBox 网络配置:

Attached to: Bridged Adapter
Name: Intel(R) 82579V Gigabit Network Connection
Adapter Type: Intel PRO/1000 MT Desktop (82540EM)
Promiscuous Mode: Allow All

所有名称选项:

Intel(R) 82579V Gigabit Network Connection
VirtualBox Host-Only Ethernet Adapter
VirtualBox Host-Only Ethernet Adapter 2

网络接口
在此处输入图片描述

路由器 - 端口转发

Status: ON | TCP | Port: 80 | External Host: <ip from checkmyip.com> | Internal Host: 192.168.0.100

从虚拟机配置 ipconfig

mtu 1500
        inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::1070:8c81:f616:2b84  prefixlen 64  scopeid 0x20<link>
        inet6 fdaa:bbcc:ddee:0:7c85:b26e:a007:cfd5  prefixlen 128  scopeid 0x0<global>
        ether 08:00:27:c5:6f:79  txqueuelen 1000  (Ethernet)
        RX packets 400  bytes 320675 (320.6 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 292  bytes 42926 (42.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 173  bytes 15040 (15.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 173  bytes 15040 (15.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

nginx 配置

...
server {
   listen 80;
   server_name 192.168.0.100;
}
...

谢谢!

答案1

在端口转发规则中定义源 IP(外部主机)将访问限制在该 IP 地址。因此端口转发规则

Status: ON | TCP | Port: 80 | External Host: <ip from checkmyip.com> | Internal Host: 192.168.0.100

翻译为

Forward all packets with source IP <MyOwnIPAddr> and port 80 to 192.168.0.100

防火墙上创建了端口转发规则,由于它永远不会接收来自其自身 IP 地址的新连接,因此它会阻止这些连接。源 IP 的配置方式取决于解决方案,我希望可以在防火墙的文档中找到它,但将其留空通常有效。如果没有,则可能采用以下方法之一:

  • 0.0.0.0
  • 0.0.0.0/0
  • 0.0.0.0 255.255.255.255

所有这些都在路由中用于指代未知/未定义的 IP 地址。

相关内容