AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1592050
Accepted
LeRouteur
LeRouteur
Asked: 2020-10-10 06:41:36 +0800 CST2020-10-10 06:41:36 +0800 CST 2020-10-10 06:41:36 +0800 CST

Como abrir apenas a porta TCP 25565 para vários servidores Minecraft?

  • 772

Desejo criar vários servidores do Minecraft que serão executados em vários servidores da minha rede.

O objetivo principal é ter apenas uma única porta (TCP 25565) voltada para a Internet e, em seguida, passar o nome do host da solicitação (mc.example.com) para o servidor back-end correto.

Existe alguma maneira de conseguir isso? Eu sei que um proxy reverso pode ser usado, mas é para HTTP, então alguma maneira de fazer isso para o Minecraft?

EDIT: como disse @attie, não será possível usar uma única porta IF para vários servidores Minecraft.

Agora, digamos que eu abra um intervalo de 10 portas (25565 a 25575) para esses servidores. O que devo fazer a seguir para tornar isso mais fácil de usar? Quero dizer, redirecionando diretamente o usuário para a porta IF quando ele está entrando em mc.example.com?

networking proxy
  • 3 3 respostas
  • 925 Views

3 respostas

  • Voted
  1. sLunda
    2021-03-29T09:36:36+08:002021-03-29T09:36:36+08:00

    Você pode tentar fazer com o Bind9 do Linux (usei Debian com raspberrypi [Raspbian]) com o SVR Records .

    • Instale o Bind9 no Linux: sudo apt-get install bind9 bind9-doc -y
    • E reinicie o daemon do Bind9 quando terminar de instalar: /etc/init.d/bind9 restart

    Você precisa fazer seu primeiro Domínio, pois para isso você precisa fazer o seguinte:

    zone "origensone.net" {
            type master;
            file "/var/lib/bind/origensone.net.hosts";
    };
    

    O texto para cima é o link do arquivo de configuração desse banco de dados de DNS do domínio. (Isso é que você precisa inserir no arquivo o que eu digo para você continuar)
    Por exemplo meu domínio desta forma é: origensone.net

    ARQUIVO: /etc/bind/named.conf.local
    //
    // Do any local configuration here
    //
    
    // Consider adding the 1918 zones here, if they are not used in your
    // organization
    //include "/etc/bind/zones.rfc1918";
    
    // This is a new area for our domain:
    zone "origensone.net" {
            type master;
            file "/var/lib/bind/origensone.net.hosts";
    };
    
    • O arquivo "/var/lib/bind/origensone.net.hosts"; é onde ficam os DNS com os SubDomínios, é como fica um banco de dados de DNS desse domínio e subdomínios, ALIAS, CNAMEs, etc.

    É assim que tenho meus servidores Minecraft no meu servidor DNS local:

    ARQUIVO: /var/lib/bind/origensone.net.hosts
    $ttl 3600
    origensone.net.    IN    SOA    DnsServer. (
                1616892692 ; Serial
                3600 ; Refresh
                600 ; Retry
                1209600  ; Expire
                3600 ) ; Minimum
    origensone.net.    IN    NS    DnsServer. ; --// DnsServer is the hostname of the machine == 127.0.0.1 or 192.168.1.10 == DnsServer.local //--
    origensone.net.    IN    A    <PublicIP (of IP Router)>
    
    ; --// Subdomain to IP Directions: //--
    dnsservidor        IN    A    <PrivateIP-1_for_DNSServerHosting> ; --// 192.168.1.10 for example for the DNSServer. //--
    mcservidor        IN    A    <PrivateIP-2_for_MinecraftServerHosting>  ; --// 192.168.1.11 for the server of minecraft hosting servers. //--
    mcservidortorouter        IN    A    <PublicIP (of IP Router)>
    
    ; --// The Canonical Names: //--
    mcmods                    IN    CNAME    mcservidor
    mcsurvi                    IN    CNAME    mcservidor
    
    ; --// This're the SVR records: //--
    _minecraft._tcp.mcsurvi.origensone.net. SRV 0 5 25566 mcservidortorouter.origensone.net. 
    _minecraft._tcp.mcmods.origensone.net. SRV 0 5 25567 mcservidortorouter.origensone.net.
    

    _service . _protocol.name. Porta de peso de prioridade de classe TTL SRV Alvo : _minecraft . _tcp . mcsurvi.origensone.net. SRV 0 5 25566 mcservidortorouter.origensone.net.

    1. _serviço = _minecraft
    2. _protocol.name = _tcp
    3. TTL é o mesmo de Time to Live (Is in Default ).
    4. Classe = mcsurvi.origensone.net
    5. SRV
    6. Prioridade = 0
    7. Peso = 5
    8. Porta = 25566
    9. Alvo → mcservidortorouter.origensone.net.

    O localhost é o IP: 127 . 0 . 0 . 1

    Este é um exemplo em registros SVR ; Neste caso estou usando dois subdomínios em ALIAS para poder pegar os dois servidores: origensone.net (domínio):

    1. mcsurvi (subdomínio) → Para sobrevivência = mcsurvi . origensone.net
    2. mcmods (subdomínio) → Para mods = mcmods . origensone.net

    Quando você tiver isso com o servidor DNS Bind9 e todas as partes concluídas, encontre as instruções aqui para confirmar o que funciona bem no DNS para a porta aqui! .

    Ou quando você terminar para confirmar que está tudo bem, você precisa fazer isso:

    1. Em um terminal do Linux coloque esses comandos:
    • nslookup
       # Press Enter.
      set query=srv
      _minecraft._tcp.mcsurvi.origensone.net
      

    Isso está no Windows CMD: [Os espaços em cinza são meu IP público para isso são censurados] insira a descrição da imagem aqui

    Isso está em Raspbian (DnsServer.): [Bloco cinza é meu nome pois está censurado] insira a descrição da imagem aqui

    Para tentar fazer isso você pode fazê-lo no mesmo servidor ou em outro computador que tenha esse servidor DNS conectado na placa de rede desse host).

    E SE funcionar, quando formos fazer um PING para este subdomain.domain o console nos dará o ping correto de 192.168.1.11 ou seja o mesmo IP do Minecraft Hosting Server.

    • 2
  2. Best Answer
    Attie
    2020-10-10T06:52:51+08:002020-10-10T06:52:51+08:00

    A única razão pela qual isso funciona para HTTP é porque há um Host:cabeçalho dentro do protocolo que pode ser inspecionado. Não é possível fazer isso escutando em uma única porta se você também não tiver algo no protocolo que indique para onde a conexão deve ser roteada.

    Não acredito que o protocolo do Minecraft contenha essas informações extras... Se você está absolutamente 100% restrito a uma única porta voltada para a Internet, suas opções não são fáceis de usar:

    • Túnel (por exemplo: VPN / SSH / SOCKS) - os usuários precisarão configurar o software do seu lado. Uma vez conectados, eles podem se conectar ao servidor real do Minecraft. NOTA : isso provavelmente também afetará a jogabilidade (ou seja: maior latência)
    • Roteamento de pacote baseado na origem - cada usuário pode acessar um servidor, mas pode ver um servidor diferente, dependendo de onde o usuário está se conectando.

    Eu recomendo que você ouça em várias portas.

    • 1
  3. Ohjurot
    2021-12-24T01:47:25+08:002021-12-24T01:47:25+08:00

    Existe um projeto chamado "Minecraft Redirect Proxy" ( https://github.com/RenegadeEagle/minecraft-redirect-proxy ) que está fazendo exatamente o que você deseja.

    @attie O protocolo do Minecraft inclui o nome do host solicitado. É enviado com o primeiro pacote que o servidor recebe.

    A configuração também é muito fácil. Aqui um exemplo não testado:

    {
      "versionName": "ProxyCup",
      "maxPlayers": 0,
      "onlinePlayers": 0,
      "motd": "Couldnt connect to requested backend server. If you believe this to be an issue, contact the administrator of this proxy.",
      "port": 25565,
      "nodes": [
        {
          "hostname": "domain1.com",
          "remoteHostname": "localhost",
          "remoteHostPort": 25566
        },
        {
          "hostname": "domain2.com",
          "remoteHostname": "localhost",
          "remoteHostPort": 25567
        }
      ]
    }
    
    • 0

relate perguntas

  • A conexão do usuário ao servidor SFTP usando o FileZilla se recusa a conectar

  • Como forçar o chrome a usar o arquivo pac no macos?

  • Como funciona um NAT atrás de um NAT (NAT do roteador e NAT do ISP)?

  • Win10 1803: Como tornar o ponto de acesso móvel uma rede privada?

  • Como o nc identifica nomes de serviço

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve