无法从防火墙外部访问 wicket 快速启动

发布于 2024-09-06 16:48:33 字数 1184 浏览 10 评论 0原文

我有一个项目,出于服务器配置的目的,它只是一个 wicket 快速入门原型。我添加了一些应用程序代码,但没有真正做任何事情来更改默认的码头配置。

我可以使用以下命令在本地运行和测试我的应用程序: http://localhost:8080 或者: http://bekkar:8080(我电脑的网络名称) 或者: http://192.168.1.2:8080/(我的电脑的本地 IP)

我想访问我的 wicket 应用程序从我的路由器防火墙外部。 (我最终会在我的 Blackberry 上测试它,但现在我正在使用 Google Chrome 尝试从外部访问它。)

使用 http://www.whatismyip.com/ 我找到了我的路由器的IP。

我用: http://###.###.###。 ###:8080 我看到一个屏幕,显示“需要身份验证”,要求输入用户名和密码。我的检票口应用程序中没有设置任何类型的身份验证。

我有一台 NetGear 路由器 WGR614v7。使用路由器管理,在端口转发下,添加以下自定义服务:

Service Name=wicket
Starting Port=8080
Ending Port=8080
Server IP Address=192.168.1.2 //my computer's local IP

添加端口转发服务定义后,我从 Chrome 收到不同的消息: 哎呀! Google Chrome 无法连接到 ###.###.###.###:8080

如何使我的 wicket jetty 快速启动可以从路由器防火墙外部访问?我不知道这是一个 wicket/jetty 问题(属于 SO)还是一个防火墙问题(属于 serverfault),所以我首先将其发布在这里。

谢谢!

I have a project which, for purposes of server configuration, is just a wicket quickstart archetype. I've added some application code, but haven't really done anything to change the default jetty configuration.

I can run and test my application locally using:
http://localhost:8080
or:
http://bekkar:8080 (my PC's network name)
or:
http://192.168.1.2:8080/ (my PC's local IP)

I want to access my wicket app from outside my router firewall. (I eventually will test it on my Blackberry, but for now I'm using Google Chrome to try to reach it externally.)

Using http://www.whatismyip.com/ I found my router's IP.

I use:
http://###.###.###.###:8080
and I get a screen that says Authentication Required, asking for a username and password. I don't have any kind of authentication set up in my wicket app.

I have a NetGear router, WGR614v7. Using the router admin, under port forwarding, I add the following custom service:

Service Name=wicket
Starting Port=8080
Ending Port=8080
Server IP Address=192.168.1.2 //my computer's local IP

After adding the port forwarding service definition, I get a different message from Chrome:
Oops! Google Chrome could not connect to ###.###.###.###:8080

How can I make my wicket jetty quickstart accessible from outside my router firewall? I don't know if this is a wicket/jetty issue (belonging on SO) or a firewall issue (belonging on serverfault), so I'll post it here, first.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

¢蛋碎的人ぎ生 2024-09-13 16:48:33

首先,尝试使用简单的 apache 或 woof。确保将其绑定到 0.0.0.0(所有 IP)。
A) 如果无法访问,则可能是路由器配置问题。
B) 如果有效,你就知道这不是 jetty/wicket 配置。

情况 A) 我不知道那个路由器,但寻找端口转发。我无法让 ASUS WL500gP 传递请求,所以我不适合在这里提供建议:)

情况 B) Jetty 是否绑定到 0.0.0.0?您可以从本地网络上的其他计算机访问它吗?

没有太多有用的答案,但我希望它能有所帮助。

First, try with just simple apache, or woof. Be sure to bind it to 0.0.0.0 (all IPs).
A) If you can't reach it, it's the router config problem.
B) If that works, you know it't jetty/wicket config.

case A) I don't know that router, but look for port forwarding. I wasn't able to get ASUS WL500gP passing requests in, so I am not the right one to advice here :)

case B) Does Jetty bind to 0.0.0.0? Can you reach it from other machine on the local network?

Not much useful answer, but I hope it helps a bit.

风苍溪 2024-09-13 16:48:33

我一直在我的系统上运行 jetty/wicket 应用程序并远程访问它们。我不认为我在 Jetty 上做过什么特别的事情,尤其是 wicket 来完成这项工作。但如果有帮助的话,这里是一个示例 Start.java 文件(这是来自我的一个应用程序 - 不确定它是否与快速入门中的相同,因为我现在没有可用的快速入门)

public class Start {

    public static void main(String[] args) throws Exception {
        Server server = new Server();
        SocketConnector connector = new SocketConnector();

        // Set some timeout options to make debugging easier.
        connector.setMaxIdleTime(1000 * 60 * 60);
        connector.setSoLingerTime(-1);
        connector.setPort(8080);
        server.setConnectors(new Connector[] { connector });

        WebAppContext bb = new WebAppContext();
        bb.setServer(server);
        bb.setContextPath("/");
        bb.setWar("src/main/webapp");

        // START JMX SERVER
        // MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
        // MBeanContainer mBeanContainer = new MBeanContainer(mBeanServer);
        // server.getContainer().addEventListener(mBeanContainer);
        // mBeanContainer.start();

        server.addHandler(bb);

        try {
            System.out.println(">>> STARTING EMBEDDED JETTY SERVER, PRESS ANY KEY TO STOP");
            server.start();
            System.in.read();
            System.out.println(">>> STOPPING EMBEDDED JETTY SERVER"); 
            // while (System.in.available() == 0) {
            //   Thread.sleep(5000);
            // }
            server.stop();
            server.join();
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(100);
        }
    }
}

:我正在使用 DLink 路由器,所以我不确定如何配置您的路由器。但是,您还应该检查您的路由器,看看它是否打开了远程 Web 管理,以及它是否位于端口 8080 上。如果是,请将其关闭,因为它可能会干扰您的端口转发。

I run jetty/wicket apps on my system all the time and access them remotely. I don't think there is anything special that I've done with Jetty, and especially not wicket to make this work. But if it helps, here is an example Start.java file (this is from one of my apps -- not sure if it is the same as the one in quickstart, as I don't have a quickstart available right now):

public class Start {

    public static void main(String[] args) throws Exception {
        Server server = new Server();
        SocketConnector connector = new SocketConnector();

        // Set some timeout options to make debugging easier.
        connector.setMaxIdleTime(1000 * 60 * 60);
        connector.setSoLingerTime(-1);
        connector.setPort(8080);
        server.setConnectors(new Connector[] { connector });

        WebAppContext bb = new WebAppContext();
        bb.setServer(server);
        bb.setContextPath("/");
        bb.setWar("src/main/webapp");

        // START JMX SERVER
        // MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
        // MBeanContainer mBeanContainer = new MBeanContainer(mBeanServer);
        // server.getContainer().addEventListener(mBeanContainer);
        // mBeanContainer.start();

        server.addHandler(bb);

        try {
            System.out.println(">>> STARTING EMBEDDED JETTY SERVER, PRESS ANY KEY TO STOP");
            server.start();
            System.in.read();
            System.out.println(">>> STOPPING EMBEDDED JETTY SERVER"); 
            // while (System.in.available() == 0) {
            //   Thread.sleep(5000);
            // }
            server.stop();
            server.join();
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(100);
        }
    }
}

I'm using a DLink router, so I'm not sure how to configure yours. However, you should also check your router to see if it has remote web admin turned on, and if it is on port 8080. If so, turn it off, as it might be interfering with your port forwarding.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文