Então, farei uma lista das coisas que tenho para ter mais clareza.
o que eu quero:
como:
Problema:
problema:
solução manual para o problema:
de que preciso:
Após alteração de ip no log de Kitty
Manual de como resolver o problema
Pimp Juice IT : obrigado ^^ de qualquer forma a ferramenta no-ip também me pareceu bastante adequada. Mas desde que o isp tem NAT duplo e que, basicamente, eu teria que executar um No-ip soft em seu segundo "roteador" atrás do meu. Qual é impossível você concordaria ^^. Realmente gosto do meu problema é realmente simples, na verdade, mas chato, porque parece que a saída é simples. Mas não consegue o caminho certo: /
ps: sim, não se preocupe, a versão antiga é um rascunho grande do que eu queria que fosse ^^ no novo, você tem tudo o que precisa para me ajudar, eu acho: / ^^
Old version
I have a VPS from OVH which I use to tunnel my media server on PLEX from my PC to the VPS. All good and working, except…
My IP is dynamic and double NAT-ed. My external IP changes and renews often, at least once a day. Therefore my connection to the VPS through Kitty (a fork of PuTTY) breaks. That I solved with automated reconnection after a connection abort. Anyhow when that is done the port tunneling that I specified in KiTTY would fail, why because the previous connection wasn’t properly closed.
For the server side it's Debian 9 Stretch.
I found the solution which is that I find the PID of the very connection and kill it manually. There is my issue, I would like to automate that with a script. Here I call for your help by hoping anybody could be giving a hand.
Ps: my skills in scripting are as low as it could seem so be as clear as possible thanks.
Answers to some comments
Scott – when my IP address changes it would crash the connection. Right then it would reconnect thanks to KiTTY. I would in the command line just type in
netstat -lnp
, it would show me all the connection alive. I would find the one linked with the specified port (in this case32400
) and the PID that's associated, then kill the veryPID
withkill
. Last time the PID was12007
for example.Kamil Maciorowski – I tried this (referring to this answer to another question):
permanently by editing the
/etc/sysctl.conf
file, add:net.ipv4.tcp_keepalive_time=300
e
If only you can reconfigure
sshd
on the server, this is in my opinion the most elegant way. Let thesshd_config
contain lines like:ClientAliveCountMax 3 ClientAliveInterval 15
mas nenhum deles funciona para mim quando eu simulei uma queda do meu conexão ele irá se reconectar e o porto ainda estaria ocupado.
Além disso, a solução em
Back to the client
parece que só funciona para mim se eu conseguir me adequar para minha situação.
"but neither of those work for me when I simulated a crash of my connection it will reconnect and the port would still be occupied" – Did you restart sshd? Did you attempt to reconnect right away? With these settings you need to wait up to one minute for the port becoming free. – Kamil Maciorowski
sim, reiniciei o SSHD com o seguinte comando:
/etc/init.d/ssh restart
e por segurança, porque eu não sei que reinicie o sshd
service sshd restart
a reconexão é automatizada e instantânea agora estou procurando uma maneira de atrasar este processo, se você sabe como é só me dizer obrigado, então você sabe o :
net.ipv4.tcp_keepalive_time=300
eu configurei para 10 seg ao invés de 300 é que ainda está bem.
Também não recebi o seu segundo comentário sobre o carregamento de duas sessões ao mesmo tempo fixando-o com o segundo meu objetivo é apenas reiniciar o processo de sessão real que é automatizado agora precisa da porta para ser libertado para que eu possa abri-lo com o novo vínculo.
Clarification: in my comment above there is a generic way to prevent locking oneself out of server. If you broke sshd_config severely enough, you wouldn't be able to ssh anew. That's why you should always test it with a new connection, while the old one still allows you to revert changes no matter what. Note in general it's possible to have a syntactically valid sshd_config and still not be able to connect; so restarting sshd without any error doesn't necessarily mean it's going to work. – Kamil Maciorowski
Então, no final, quais são minhas soluções para esse processo? automatizado e a porta a ser liberada após um curto período de tempo e como atrasar a reconexão no gatinho com um script ou outra coisa ? mais uma vez obrigado homem pelo seu tempo que eu aprecio
"the reconnection is automated and instant I'm now looking for a way to delay this process" – you mean KiTTY tries to reconnect without any delay, right? In Linux on the client side your problem can easily be solved by autossh or looping ssh -o ExitOnForwardFailure=yes … (see this answer). I think ssh under Cygwin should support this option. If you insist on a server-side script, I guess it can be done; but the script must not kill the tunnel if it's not the old tunnel. I have no time now to provide such a cumbersome solution; maybe in 12 hours. – Kamil Maciorowski
Ok, obrigado, até as 12h, até lá. outra solução eu vou deixar você saber como vai graças novamente homem.