Logo Gray

Rechner hinter DS-Lite/ (dubble-)NUT erreichbar machen

Ob Raspberry oder Server im Heimnetz. Wenn du ein DS-Lite vertrag, eine SIM-Karte für dein Heim-Wifi oder ein NUT aus anderen gründen. Oft bekommt man heute bei Verträgen keine eigene IPv4-adresse. Ein dyndns ist also nicht möglich, da nur eine IPv6 erreichbar/ Verfügbar ist.

Ein mögliche lösung ist ein SSH-Tunnel zu einem Server in einem Rechenzetentrum der anfragen zu deinem HEIM-Rechner durchreicht.

Auf dem HEIM-Rechner

autossh muss sich durch den ssh-key auf remote anmelden können. deshalb brauchen wir einen ssh-key vom HEIM-server auf dem REMOTE-server.

				
					ssh-keygen -t ed25519 -C "autossh-tunnel"

				
			
				
					cat ~/.ssh/id_ed25519.pub | ssh root@<REMOTE-IP> "cat >> ~/.ssh/authorized_keys"

				
			
				
					sudo apt install autossh -y

				
			
				
					sudo nano /etc/systemd/system/autossh-tunnel.service

				
			

Setze die Ports nach deinen Wünschen:

  • -N: Keine Remote-Shell öffnen
  • -R 8080:localhost:3000: Weiterleitung von Port 8080 auf dem Remote-Server zu Port 3000 auf dem Heim-Rechner
  • IP-Adrsse des Remote-Servers
				
					[Unit]
Description=AutoSSH Tunnel to Cloud Server
After=network.target

[Service]
User=jotho
ExecStart=/usr/bin/autossh -N -R 8080:localhost:3000 root@<IP-ADRESSE>
Restart=always
RestartSec=10
Environment="AUTOSSH_GATETIME=0"
Environment="AUTOSSH_POLL=60"
Environment="AUTOSSH_FIRST_POLL=30"

[Install]
WantedBy=multi-user.target

				
			
				
					sudo systemctl daemon-reload
sudo systemctl enable autossh-tunnel
sudo systemctl start autossh-tunnel

				
			
				
					sudo systemctl status autossh-tunnel

				
			
				
					sudo reboot

				
			
				
					sudo systemctl status autossh-tunnel

				
			

Auf dem REMOTE-Server mit fester IP

Port Freigeben: in diesem beispiel 8080.

Nginx-File für Domain:Port Routing anlegen.

Wichtig: gleicher port wie SSH-Tunnel eingang angeben.

				
					server {
    listen 8080;
    server_name subdomain.domain.de;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_redirect off;
    }
}
				
			
				
					 nano /etc/nginx/sites-available/subdomain.domain.de
				
			
				
					ln -s /etc/nginx/sites-available/lilly.menter.de /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx

				
			
				
					sudo certbot --nginx -d prometheus.lilly.menter.de

				
			

Cloud-Server SSH-Tunneling erlauben

				
					sudo nano /etc/ssh/sshd_config

				
			

Stelle sicher, dass folgende Zeilen nicht auskommentiert sind:

				
					
GatewayPorts yes
AllowTcpForwarding yes

				
			
				
					sudo systemctl restart ssh

				
			

Testen

				
					ps aux | grep ssh