Nova versão

Nova versão

Nova versão

Então, vou fazer uma lista das coisas que tenho para ficar mais claro.

  • PC no Windows 10 executando um servidor de mídia Plex e Kitty
  • VPS da OVH rodando em Debian 9 stretch

o que eu quero :

  • quero acessar meu servidor de qualquer lugar fora da rede local

como :

  • usando o vps como um túnel para meu servidor Plex

Problema :

  • ip dinâmico Double Nat do roteador 4G / LTE do lado isp com uma assinatura
  • nenhum encaminhamento de porta é possível

emitir :

  • quando o ip mudava "diariamente" no PC (windows 10) a conexão com o vps através do kitty travava

solução manual para o problema:

  • encontre o PID do processo que mantém a porta aberta e elimine-o

o que eu preciso :

  • fazer isso automaticamente ou ter outra solução para o problema

Imagens para ajudar você a entender

Após mudança de ip no log da Kitty

Maneira manual de resolver o problema

Perguntas e respostas

Pimp Juice TI: obrigado ^^ de qualquer forma a ferramenta no-ip também me pareceu bastante adequada. Mas como o ISP tem NAT duplo e basicamente eu teria que rodar um software No-ip no segundo "roteador" atrás do meu. O que é impossível, você concordaria ^^. Realmente meu problema é muito simples, mas irritante porque parece que a saída disso é simples. Mas não consigo acertar :/

ps: sim, não se preocupe, a versão antiga é um grande rascunho do que eu queria que fosse ^^ na nova você tem tudo o que precisa para me ajudar, eu acho:/ ^^

Old version

Tenho um VPS da OVH que utilizo para encapsular o meu servidor multimédia no PLEX do meu PC para o VPS. Tudo bem e funcionando, exceto…

Meu IP é dinâmico e com NAT duplo. Meu IP externo muda e renova frequentemente, pelo menos uma vez por dia. Portanto, minha conexão com o VPS através do Kitty (um fork do PuTTY) é interrompida. Isso resolvi com a reconexão automatizada após uma interrupção da conexão. De qualquer forma, quando isso for feito, o tunelamento de porta que eu especifiquei no KiTTY falharia, porque a conexão anterior não foi fechada corretamente.

Para o lado do servidor é o Debian 9 Stretch.

Eu encontrei a solução que é encontrar o PID da própria conexão e matá-lomanualmente. Esse é o meu problema, gostaria de automatizar isso com um script. Aqui peço a sua ajuda, esperando que alguém possa ajudar.

Ps: minhas habilidades em scripts são tão baixas quanto podem parecer, então seja o mais claro possível, obrigado.


Respostas a alguns comentários

Scott– quando meu endereço IP muda, a conexão trava. Nesse momento ele se reconectaria graças ao KiTTY. Eu apenas digitaria na linha de comando netstat -lnp, isso me mostraria toda a conexão ativa. Eu encontraria aquele vinculado à porta especificada (neste caso 32400) e o PID associado e, em seguida, mataria o mesmo PIDcom kill. Da última vez o PID foi 12007por exemplo.

Kamil Maciorowski– Eu tentei isso (referindo-se aesta resposta para outra pergunta):

permanentemente editando o /etc/sysctl.confarquivo, adicione:

net.ipv4.tcp_keepalive_time=300

e

Se você puder reconfigurar sshdno servidor, esta é, na minha opinião, a maneira mais elegante. Deixe sshd_configconter linhas como:

ClientAliveCountMax 3
ClientAliveInterval 15

mas nenhum deles funciona para mim quando simulei uma falha na minha conexão, ela será reconectada e a porta ainda estará ocupada.

Também a solução abaixo

De volta ao cliente

pareceria funcionar para mim apenas se eu fosse capaz de adaptá-lo à minha situação.

"mas nada disso funcionou para mim quando simulei uma falha na minha conexão, ela será reconectada e a porta ainda estaria ocupada" - Você reiniciou o sshd? Você tentou se reconectar imediatamente? Com essas configurações você precisa esperar até um minuto para que a porta fique livre. –Kamil Maciorowski

sim, reiniciei o SSHD com o seguinte comando:

/etc/init.d/ssh reiniciar

e para estar seguro porque não sei, reinicie o sshd

serviço sshd reiniciar

a reconexão é automatizada e instantânea. Agora estou procurando uma maneira de atrasar esse processo, se você souber como é só me agradecer para saber:

net.ipv4.tcp_keepalive_time=300

Eu configurei para 10 segundos em vez de 300, ainda está bom.

Além disso, não recebi seu segundo comentário sobre o carregamento de duas sessões ao mesmo tempo, corrigindo-o com o segundo, meu objetivo é apenas reiniciar o processo de sessão real, que é automatizado, só agora preciso que a porta seja liberada para que eu possa abri-la novamente com o novo vínculo.

Esclarecimento: no meu comentário acima existe uma maneira genérica de evitar o bloqueio do servidor. Se você quebrou o sshd_config com severidade suficiente, não seria capaz de fazer o ssh novamente. É por isso que você deve sempre testá-lo com uma nova conexão, enquanto a antiga ainda permite reverter as alterações de qualquer maneira. Observe que, em geral, é possível ter um sshd_config sintaticamente válido e ainda assim não conseguir se conectar; portanto, reiniciar o sshd sem nenhum erro não significa necessariamente que funcionará. –Kamil Maciorowski

Então no final quais são as minhas soluções para que esse processo seja automatizado e a porta seja liberada após um período menor de tempo e como atrasar a reconexão no kitty com um script ou outra coisa? mais uma vez obrigado cara pelo seu tempo, eu aprecio

“a reconexão é automatizada e instantânea, agora estou procurando uma maneira de atrasar esse processo” – quer dizer que o KiTTY tenta se reconectar sem demora, certo? No Linux, no lado do cliente, seu problema pode ser facilmente resolvido com autossh ou looping ssh -o ExitOnForwardFailure=yes… (veja esta resposta). Acho que o ssh no Cygwin deve suportar esta opção. Se você insiste em um script do lado do servidor, acho que isso pode ser feito; mas o script não deve eliminar o túnel se não for o túnel antigo. Não tenho tempo agora para fornecer uma solução tão complicada; talvez em 12 horas. –Kamil Maciorowski

Ok, obrigado, te vejo em 12h de qualquer maneira, até então vou tentar todas as outras soluções e te conto como foi, obrigado novamente cara.

informação relacionada