【问题标题】:Port closed even when I port forwarded即使我转发了端口,端口也关闭了
【发布时间】:2020-02-23 00:23:35
【问题描述】:

我想制作服务器(用于多人游戏),但我无法通过我的公共 IP 地址连接到我的电脑。 我的服务器是这样用 Java 编写的:

    int port =  60000;
    int client_num = 0;
    ClientHandler clientHandler;

    try (ServerSocket serverSocket = new ServerSocket(port)) {

        System.out.println("Server is listening on port " + port);
        while (true) {
            Socket client = serverSocket.accept();

            System.out.println("New client connected: "+client);
        }

    } catch (IOException ex) {
        System.out.println("Server exception: " + ex.getMessage());
        ex.printStackTrace();
    }

客户端是这样用javascript编程的(我正在使用websockets):

    var websocket = new WebSocket(
        'ws://127.0.0.1:60000');

    websocket.onopen = function () {
      $('h1').css('color', 'green');
      websocket.send("Hello");
      $('h1').css('color', 'purple');
    };

你可以看到,我在服务器和客户端都使用相同的端口(60 000)。在我写IP地址(ws://127.0.0.1)的客户端中,我可以写localhost(127.0.0.1)或我的私人IP(192.168.0.100) - 它工作!但是当我在那里写我的公共 ip(类似于 91...***)时,它不起作用并且服务器不写消息“新客户端已连接:”(比如如果是本地主机)...所以我认为问题出在端口转发上。但我尝试移植,如图所示:

但它仍然不起作用。我还尝试在我的路由器中使用 DMZ。结果相同。我还尝试关闭我的防病毒软件的防火墙和网络防护。同样的结果......即使我尝试通过一些在线测试(https://www.yougetsignal.com/tools/open-ports/)检查我的端口 60 000 是否打开,它说我的端口已关闭......那么为什么它不起作用? 我发现,即使我打开侦听端口 80 和 443 的 Apache,检查打开端口的工具也会显示此端口(80 和 443)已关闭(即使我在路由器上打开 DMZ)...为什么? 注意:我确定,我使用正确的本地 IP 来设置端口转发和 DMZ,我使用 IP 给我 ipconfig(正如我已经写过的 - 当我使用这个本地地址(192.168.0.100 )我的电脑运行服务器...) 请帮我! :)

【问题讨论】:

  • 问题:你定义了那个端口转发规则后,你保存重启路由器了吗?
  • 我点击了保存设置。我尝试重启设备,但它更改了所有本地 IP 地址,所以我的端口转发规则无效......所以我无法重启设备,只能保存设置。还有什么建议吗?
  • 您需要在 DHCP 中根据其 MAC 地址为您的 PC 提供一个固定地址,或者使用静态 IP 配置它并将该 IP 从 DHCP 中排除。然后你就可以重启路由器了。顺便说一句,这个问题与 StackOverflow 无关,因为它是关于配置的问题,而不是关于编程的问题。
  • 好的,当我再次重启设备时,它给了我相同的 IP(即使我没有给我的 PC 固定地址),所以端口转发规则是正确的......但它仍然没有t 工作...有什么建议吗?

标签: javascript java websocket portforwarding dmz


【解决方案1】:

您的问题与网络和网络路由有关。尝试从本地网络外部连接到您的服务器。来自互联网的某个地方。购买 VPS 或询问您的朋友。首先,您可以使用nmap 检查您的端口是否打开。如果它已打开,您就可以连接到您的服务器。否则可能是您的 D-LINK 问题。我看到你已经有 22 个端口转发了。当我使用 D-LINK DIR-600 路由器时,我遇到了类似的问题 - 端口已正确调整,但我无法通过打开的端口连接。我只能通过使用 DD-WRT - 非官方固件来解决这个问题。

【讨论】:

    猜你喜欢
    • 2017-04-12
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 2018-08-26
    相关资源
    最近更新 更多