我在 PC 上运行 Apache Tomcat。我的 PC 连接到我家的路由器,路由器连接到我的 ISP。现在我想在我的 PC 上运行一个服务器,以便我的朋友可以查看我 PC 上托管的网站。如果我访问该网站https://whatismyip.com我知道我的 IP 地址是 xx.xx.xx.xx。我猜这是我的路由器的 IP。如果我输入http://xx.xx.xx.xx在我的浏览器中,然后我的路由器要求输入用户名和密码。这意味着我的朋友可以连接到我的路由器。我如何允许他们查看在我的 PC 上运行的 Tomcat 上托管的网站?
由于某些原因,我不想使用商业托管,而只想将我的电脑用作服务器。
我的路由器的内部IP是192.162.1.1,我的电脑的内部IP是192.162.1.2。
答案1
您需要将对 Web 服务器(可能是端口 80)的请求转发到您的计算机 (.1.2)。您可以在路由器上进行配置。
答案2
你需要做以下几件事:
确保更改路由器密码并锁定路由器,因为您将公开自己的 IP,因此路由器的配置非常重要。下载最新固件以防止安全漏洞可能是个好主意。
在路由器上将您的网络请求转发到本地计算机。查找“端口转发”选项,这将强制将路由器某个端口上的所有请求转发到您的计算机的 IP 地址
尽量确保你的内部 IP 地址保持不变。一些高级路由器可以为你电脑的 MAC 地址保留一个特定的 IP 地址,因此请对路由器进行此配置。如果你的路由器软件无法做到这一点,那么每当你的电脑重新启动(或以某种方式获得另一个 IP 地址)时,你可能都必须在“端口转发”映射中更新你的内部 IP 地址。你也可以将你的电脑配置为使用硬编码的内部 IP 地址,但这可能会增加额外的问题,超出了本文的讨论范围。
如果您的 ISP 为您提供了动态 IP 地址,那么每次更改 IP 地址时向您的朋友发送新 IP 地址可能会很麻烦,因此您可以注册动态 IP 服务 (www.dyndns.org),该服务将有一个程序可以为您更新 DNS 条目。大多数现代路由器都将此服务器内置在固件中,您可以查找它,然后不必在您的机器上运行该软件。
出于安全原因,请减少发送到此机器的其他请求数量(例如 Windows 文件共享、ftp、bit torrent 等)。
端口 80 是 Web 浏览器和服务器使用的默认端口,因此当您访问网站时http://www.mysite.com,您正在端口 80 上请求它)
端口 8009 是 tomcat 使用的默认端口,因此如果您使用 tomcat,您可能需要将下面的端口 80 替换为端口 8009。
您不必在本地计算机上为 Web 服务器进行任何其他端口配置,您可以让路由器进行映射并让 Web 服务器在您的计算机上的端口 80 或 8009 上运行。
例如,假设我想使用端口 12345,那么我可以配置我的路由器,以便路由器上端口 12345 上的任何请求都将发送到我本地计算机上的端口 80(或 8009)。这样,您只需转到http://本地主机/ 或者http://本地主机:8009 . 网络上的其他内部机器必须通过 IP 地址访问 (http://192.168.1。X)或者您可以编辑您的 hosts 文件并指定一个名称。
需要注意的是,大多数 ISP 都会阻止将 80 端口(以及其他常用端口)用作 Web 服务器,因此,即使您已将所有内容配置妥当,您的朋友仍可能无法访问您机器上的 80 端口。这样做通常是为了让 ISP 客户为他们的“业务”产品支付更多现金。因此,如果您真的希望您的朋友访问您的 Web 服务器,您可能必须在另一个端口上打开路由器。您需要远离低端口号,并且您还需要避免使用路由器配置的端口。
如果你正确完成了上述所有操作,你应该能够获得一个稳定的 URL(例如http://我的用户名.dyndns.org:12345)您的朋友可以收藏并随意使用
答案3
您需要将 HTTP (tcp/80) 端口转发到您的 PC (192.162.1.2)。每个路由器都略有不同,因此您需要找到针对您的特定型号的一些说明。
如果你的路由器支持 UPnP,那么(它们是屏幕抓取 - 不使用 UPnP)你也可以这样做根据需要自动(更好的安全性)只需花费 $$。
答案4
如果您对端口转发不感兴趣,或者觉得它很复杂,大多数路由器都有称为 DMZ 的设置。将您的网络服务器(托管网站的机器)放在 DMZ 中,以便外界可以看到它。然后,如果您还没有注册域名,请让您的朋友在他的浏览器中输入您的 IP。