如何使我的 IP 可公开访问以使我的本地 Tomcat 服务器公开?

jay*_*esh 23 networking hosting ip tomcat

我在我的台式电脑上工作。在这台机器上,我也运行Tomcat我的 Java 开发,以便我可以访问我的本地地址:

 http://192.168.1.1:8080/myapp
Run Code Online (Sandbox Code Playgroud)

现在我去whatsmyip.com让我IP说它是:119.56.1.78

现在我想要的是:我转到另一台 PC(不在我的 LAN 上)或世界上任何连接到 Internet 的 PC 并键入以下地址:

http:// 119.56.1.78:8080/myapp
Run Code Online (Sandbox Code Playgroud)

这应该显示我可以从本地访问的相同页面http:// 192.168.1.1:8080/myapp

这可能吗?

inf*_*k01 15

对的,这是可能的。它被称为“端口转发”

119.56.1.78 - 是您的公共IP 地址
192.168.1.1 - 是您在LAN上的私有 IP地址。

要了解端口转发是如何完成的,请阅读这个非常好的简短教程,其中包含大量精美图片:
如何在路由器上转发端口


小智 5

您需要8080 port通过路由器转发。

如果您的IP更改(您有动态IP或静态IP,这取决于您的ISP),您可以从dyndns获取主机名,并设置您的路由器以在更改时dyndns使用新的更新IP。这将允许您像这样访问您的应用程序:

hostname.dynsns.org/your_app
Run Code Online (Sandbox Code Playgroud)

或者,您可以租用托管服务器和域名。


小智 5

如果是短期的,你可以使用localtunnel(就像ngrok)。

只需按照以下步骤操作(需要:NodeJS):

  1. localtunnel通过运行安装

    npm install -g localtunnel
    
    Run Code Online (Sandbox Code Playgroud)
  2. 假设您的应用程序正在运行http://localhost:8080/,然后运行

    lt --port 8080
    
    Run Code Online (Sandbox Code Playgroud)

    它将创建一个具有随机名称的公共 url 域,如下所示

注意:您也可以创建自定义 url(例如:lt --port 4200 -s "sangeeth"-s表示子域)。

哒哒!完成!