Нетти не запускается на vps

Я не могу слушать порт 1616 и все остальные на своем VPS-сервере с помощью Netty. При вводе адреса ххх.ххх.хх.ххх:1616 нет ответа, если запускаю сервер на компе, то все отлично прослушивается, впс сервер нет. Печально то, что когда я запускаю проект на VPS с использованием mvc, он не выдает никаких ошибок, вроде бы все работает хорошо. Я только начинаю изучать нетти.

ЧатСервер.java

import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioServerSocketChannel;


public class ChatServer {
    private final int port;
    ChatServer(int port){
        this.port=port;
    }
    public void run() throws InterruptedException {
        EventLoopGroup bossGroup=new NioEventLoopGroup();
        EventLoopGroup workerGroup=new NioEventLoopGroup();
        try{
            ServerBootstrap bootstrap=new ServerBootstrap().group(bossGroup,workerGroup).option(ChannelOption.SO_REUSEADDR, true).childOption(ChannelOption.SO_KEEPALIVE, true).channel(NioServerSocketChannel.class).childHandler(new ChatServerIntializer());
            bootstrap.bind("localhost",port).sync().channel().closeFuture().sync();
        }
        finally {
            System.out.println("End.");
            bossGroup.shutdownGracefully();
            workerGroup.shutdownGracefully();
        }

    }
    public static void main(String args[]) throws InterruptedException {
        System.out.println("Starting..");
        System.out.println("1.3");
        new ChatServer(1616).run();
    }
}

ChatServerHandler.java


import io.netty.channel.Channel;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import io.netty.channel.group.ChannelGroup;
import io.netty.channel.group.DefaultChannelGroup;
import io.netty.util.concurrent.GlobalEventExecutor;

class ChatServerHandler extends SimpleChannelInboundHandler<String> {
    private static final ChannelGroup channels=new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);

    protected void channelRead0(ChannelHandlerContext channelHandlerContext, String s) throws Exception {
        Channel incoming=channelHandlerContext.channel();
        for(Channel channel : channels){
            channel.writeAndFlush("["+incoming.remoteAddress()+"]"+" write: "+s);

        }
    }

    @Override
    public void handlerAdded(ChannelHandlerContext ctx) throws Exception {
        Channel incoming=ctx.channel();
        for(Channel channel : channels){
            if (incoming==channel){
                continue;
            }
            channel.writeAndFlush("["+incoming.remoteAddress()+"]"+" join in the chat");
        }
        channels.add(ctx.channel());
        super.handlerAdded(ctx);
    }

    @Override
    public void handlerRemoved(ChannelHandlerContext ctx) throws Exception {
        Channel incoming=ctx.channel();
        for(Channel channel : channels){
            channel.writeAndFlush("["+incoming.remoteAddress()+"]"+" exit from the chat");
        }
        channels.remove(ctx.channel());
        super.handlerRemoved(ctx);
    }




}

ChatServerIntializer.java


package com.app;

import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.socket.SocketChannel;
import io.netty.handler.codec.string.StringDecoder;
import io.netty.handler.codec.string.StringEncoder;

class ChatServerIntializer extends ChannelInitializer<SocketChannel> {
    protected void initChannel(SocketChannel socketChannel) throws Exception {
        ChannelPipeline pipeline=socketChannel.pipeline();
        pipeline.addLast("decoder", new StringDecoder());
        pipeline.addLast("encoder",new StringEncoder());
        pipeline.addLast("handler",new ChatServerHandler());
    }
}

Это все я начинаю с команды mvn exec:java -Dexec.mainClass = "com.app.ChatServer"

https://i.imgur.com/nB4cq4i.png

Я хотел бы найти решение или возможные причины

Вы привязываете сервер к localhost, это означает, что вы можете подключиться только из localhost, я так понимаю, это не специально?

Ferrybig 14.06.2019 11:08

@Ferrybig пытался обойтись без локального хоста и написать только порт. Я также попытался написать ip server вместо localhost. В обоих случаях ничего не помогло

sakuraso13 14.06.2019 19:32
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
65
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я понял!

Мне помогло отключение брандмауэра

$ sudo iptables -t nat -F
$ sudo iptables -t nat -X
$ sudo iptables -t mangle -F
$ sudo iptables -t mangle -X
$ sudo iptables -P INPUT ACCEPT
$ sudo iptables -P FORWARD ACCEPT
$ sudo iptables -P OUTPUT ACCEPT```

Другие вопросы по теме