无法从外部防火墙到达wicket快速入门

时间:2010-06-20 22:23:39

标签: jetty firewall wicket portforwarding

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

我可以使用以下方式在本地运行和测试我的应用程序 http://localhost:8080 要么: http://bekkar:8080(我个人电脑的网络名称) 要么: http://192.168.1.2:8080/(我个人电脑的本地知识产权)

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

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

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

我有一个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问题(属于SO)还是防火墙问题(属于serverfault),所以我先在这里发布。

谢谢!

2 个答案:

答案 0 :(得分:1)

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

案例A)我不知道路由器,但寻找端口转发。我无法让华硕WL500gP通过请求,所以我不是正确的建议:)

案例B)Jetty是否绑定到0.0.0.0?你能从本地网络上的其他机器上拿到它吗?

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

答案 1 :(得分:1)

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

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上。如果是,请将其关闭,因为它可能会干扰您的端口转发。