【问题标题】:Can't reach wicket quickstart from outside firewall无法从防火墙外部访问检票口快速入门
【发布时间】:2011-03-06 02:26:35
【问题描述】:

我有一个项目,出于服务器配置的目的,它只是一个检票口快速入门原型。我已经添加了一些应用程序代码,但并没有真正改变默认的码头配置。

我可以使用以下方法在本地运行和测试我的应用程序: 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 收到不同的消息: 哎呀!谷歌浏览器无法连接到###.###.###.###:8080

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

谢谢!

【问题讨论】:

    标签: jetty firewall wicket portforwarding


    【解决方案1】:

    首先,尝试使用简单的 apache 或 woof。请务必将其绑定到 0.0.0.0(所有 IP)。 A)如果你无法访问它,这是路由器配置问题。 B)如果可行,你知道它不是码头/检票口配置。

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

    案例 B) Jetty 是否绑定到 0.0.0.0?您可以从本地网络上的其他机器访问它吗?

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

    【讨论】:

    • 感谢这些cmets,有机会我会试试的
    【解决方案2】:

    我一直在我的系统上运行 jetty/wicket 应用程序并远程访问它们。我不认为我对 Jetty 做了什么特别的事情,尤其是没有检票口来完成这项工作。但如果它有帮助,这里是一个示例 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 上。如果是,请将其关闭,因为它可能会干扰您的端口转发。

    【讨论】:

    • 我尝试将 Jetty 端口更改为 4242,并更改服务定义,看看是否可以。我仍然得到“哎呀!” chrome中的页面,所以看起来这不是问题。我还尝试禁用我的 CA 防火墙。我的 Start.java 看起来像这样。无论如何+1的帮助=)
    • @Rmorrisey:我真的认为您应该更多地关注您的防火墙和/或系统配置。除了路由器的防火墙之外,您的系统上可能还有 iptables、Norton 或其他一些防火墙。我敢打赌,这与您的检票口配置或实施无关。祝你好运!
    • 谢谢!我很确定你是对的,我只是没有时间坐下来再次尝试一下
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 2018-09-16
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-11
    相关资源
    最近更新 更多