在我家,我有一台通过以太网电缆连接到调制解调器/路由器的台式机。在这个 Ubuntu 16.04 台式机上,我正在运行一个网络服务器0.0.0.0:8000
,因此当我在这个台式机上的浏览器中访问时http://0.0.0.0:8000/directory/
,我会看到我正在服务的网站。我想从我家以外的其他计算机连接到这个网站。
我目前已完成的步骤:
打开桌面上的防火墙
sudo ufw allow 8000
,允许外界连接到我的计算机。sudo gedit /etc/network/interfaces
通过添加以下我从以下位置获得的数字来为我的桌面设置静态 IP 地址ifconfig
:iface eth0 inet static address (with the inet number here) netmask (with the Mask number here) gateway (with the Bcast number here)
在我的路由器中添加了端口转发,其值如下
Service Type: TCP/UDP Server IPv4 Address: (same as inet/address number above) Server IPv6 Address: (has some numbers here for the first 4 then 4 blank ones, maybe this is what I'm missing?) Start Port: 8000 End Port: 8000
在路由器管理中,我看到一个 WAN IP 地址,xx.xxx.xx.xx
所以,现在我已经完成了所有这些,我希望xx.xxx.xx.xx:8000
在手机未连接到 WiFi 时,通过手机浏览器访问我漂亮的小网站,就像我在桌面浏览器中看到的一样。然而,我得到的却是“无法连接到服务器”。真伤心!
有人能看到我遗漏的任何步骤或错误配置,从而阻止我访问我的网站吗?
编辑:由于 @tetsujin 的评论,我已将本地计算机上的服务器更改为托管在http://127.0.0.1:8000
答案1
我不确定这是否是打字错误,但确实,我看到了错误配置。
在您放在桌面上的静态 IP 配置中,您说您使用“Bcast 号码”作为网关。
这不对。网关是路由器的 IP 地址。如果没有正确的网关 IP,您也无法从桌面访问互联网。
另外,需要注意的是,您不应重复使用现有的动态 IP 并将其设置为桌面上的静态 IP。您的路由器有一个可用的 IP 地址池,它通过 DHCP 动态地将这些地址分配给每个设备。您需要选择一个超出此范围的静态 IP 地址。如果您重复使用路由器动态提供给您的 IP 地址,它很可能会最终将该 IP 地址分配给其他设备并导致 IP 地址冲突。
检查您的路由器配置,确定它可用于 DHCP 的 IP 池,如有必要,将其修改为较小的范围,然后在您的桌面上设置一个新的静态 IP(位于 DHCP 范围之外),并确保在您的静态 IP 配置中为网关地址指定路由器的 IP 地址。
答案2
- 0.0.0.0 是互联网上的所有地址
- 你需要在互联网的 ISP 端设置静态 IP
- 然后你可以设置你的调制解调器/路由器,将 IP 转发到你的本地机器或创建 DMZ