TL; DR : Estou procurando um script ou um trabalho cron, que será executado periodicamente em um host linux (fedora no raspberry pi) que verificará se ainda existe uma regra de encaminhamento de porta no roteador e o adicionará se não houver . O objetivo é sempre ter acesso ao host raspberry pi linux via SSH, VNC e a interface da web de transmissão, de qualquer máquina na Internet fora da minha rede doméstica. A configuração é dada abaixo:
Roteador :
Roteador ADSL2 Beetel 440Tx1 + modem + wifi.
Configuração :
O roteador está conectado à Internet (ISP Broadband) e possui um IP externo dinâmico. Ele fornece uma rede doméstica privada para meus computadores com IPs internos 192.168.xy, que também atuam como DHCP.
Anfitrião :
Um host ARM raspberry pi com o Fedora Linux, rodando o tempo todo com servidores ssh, vnc, daemon de transmissão iniciados no momento da inicialização. Ele também possui o DUC gratuito do dyndns no-ip.com (cliente de atualização dinâmica), que verifica regularmente o IP externo e o vincula à string do host. Para que eu possa sempre encontrar o IP externo do meu roteador, resolvendo minha string dyndns como myrouter.no-ip.org . O pi tem um IP interno estático como 192.168.1.z.
Encaminhamento de porta :
É necessário fazer login no roteador usando a GUI / navegador com credenciais de fábrica somente se conectado a essa rede por meio de cabo Ethernet ou wi-fi protegido por senha
http://192.168.1.1/html/index1.html
Configurei a regra efetuando login para encaminhar qualquer tráfego nas portas 22, 5900, 9091 no IP externo para os respectivos programas ouvintes (sshd, vncserver, daemon de transmissão) no pi em 192.168.1.z.
Problema :
Este roteador perde a regra de encaminhamento de porta acima quando (o roteador) é reiniciado, ou mesmo se houver um pico de energia elétrica e o no-break precisar intervir momentaneamente, e geralmente obtém um IP externo diferente do meu ISP dinamicamente.
Exigência :
Um script ou tarefa cron que pode ser executada no meu fedora linux pi que pode efetuar login no meu roteador e pesquisar periodicamente a existência dessa regra de encaminhamento de porta e criá-la se ela estiver ausente. Ajuda apreciada.
Respostas:
MiniUPnP é um cliente UPnP de linha de comando que permite ativar o encaminhamento de porta. A fonte está disponível para que você possa compilá-la no Pi.
Acho que essa é a sintaxe que você precisa, mas não tenho uma máquina para testá-la. Você apenas colocaria o seguinte em um script que configuraria as portas uPnP para você
fonte
@reboot <cmd>
no seu crontabifconfig ...
peça não funcionou para mim, então eu usei deifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'
acordo com esta resposta .