Dela samma port till två olika IP adresser

Permalänk
Medlem

Dela samma port till två olika IP adresser

Hej Alla

Jag har en dilemma. Har två VM-s med olika IP-adresser. Jag vill komma åt båda två via internet.
På 192.168.1.100 port 80 och 443 använder jag för server1 (fungerar bra inga konstighet).
På 192.168.1.200 port 80 använder jag en annan server2 (i min lokal nät fungerar bra, men inte från internet)

När jag skriver https://min_dns.com då kommer jag till server1.
När jag skriver http://min_dsn.com/test då kommer jag IGEN till server1, samt att jag vill komma till server2.

Router är inställd som det ska.

Kan jag på nåt sätt lösa den här dilemman?

mvh
Njanja

Permalänk
Medlem

Det funkar inte att säga att [din IP]:80 leder till 192.168.1.100:80 och 192.168.1.200:80 samtidigt. Det finns inget sätt att (på TCP-lagret) avgöra vilken dator en ny anslutning ska vidarebefordras till*. Du behöver använda olika portar eller använda dig av reverse proxy som kan skicka vidare till olika webbservar baserat på sökvägsprefix (/test) eller hostname (om du vill ha olika subdomännamn som leder till olika servrar, ex: https://server100.min_dns.com och https://server200.min_dns.com).

*Inte på ett sätt som TS vill i alla fall. Går givetvis att göra dumheter som till exempel att skicka anslutningar från vissa IP-adresser till ena datorn och resten till andra, men det är tveksamt användbart i det här fallet.

Permalänk
Medlem

Du kan ju välja en annan port på utsidan, kanske inte optimalt om andra ska nå servern men om bara du använder den så är det ett mindre problem.
T.ex. extern-ip:81 -> 192.168.1.200:80
extern-ip:80 -> 192.168.1.100:80
extern-ip:443 -> 192.168.1.100:443

Permalänk
Medlem

Sätt upp en ARR/Reverse Proxy på server 1 som agerar proxy för server 2.

[din publia IP/domännamn.tld]:80/test eller [din publika IP/domännamn.tld]:443/test -> 192.168.1.100:80|443/test -> 192.168.1.200:80/

Vad har du för webfront på server1? Det heter lite olika beroende på vilken webbserver du valt.
NGINX guide: https://docs.nginx.com/nginx/admin-guide/web-server/reverse-p...

Permalänk
Medlem
Skrivet av LemonIllusion:

Det funkar inte att säga att [din IP]:80 leder till 192.168.1.100:80 och 192.168.1.200:80 samtidigt. Det finns inget sätt att (på TCP-lagret) avgöra vilken dator en ny anslutning ska vidarebefordras till*. Du behöver använda olika portar eller använda dig av reverse proxy som kan skicka vidare till olika webbservar baserat på sökvägsprefix (/test) eller hostname (om du vill ha olika subdomännamn som leder till olika servrar, ex: https://server100.min_dns.com och https://server200.min_dns.com).

*Inte på ett sätt som TS vill i alla fall. Går givetvis att göra dumheter som till exempel att skicka anslutningar från vissa IP-adresser till ena datorn och resten till andra, men det är tveksamt användbart i det här fallet.

Hej,

och tack, ska testa när jag kommer hem.

Skrivet av Robortic:

Du kan ju välja en annan port på utsidan, kanske inte optimalt om andra ska nå servern men om bara du använder den så är det ett mindre problem.
T.ex. extern-ip:81 -> 192.168.1.200:80
extern-ip:80 -> 192.168.1.100:80
extern-ip:443 -> 192.168.1.100:443

Hej

Det vet jag, men på jobbet alla portar är stänga utom 80, 443. Samt en server använder både 80 och 443 port.

mvh
Njanja

Permalänk
Medlem

Hej försökte att få igång reverse proxy men en del jag har inte förstått riktigt.
Reverse proxy är installerat på en VM (Ubuntu linux) och har ip 10.10.10.50.
Dessa VM-s som jag vill komma åt är Plex, Unifi C. och Guacamole server på port 80 från utsida.
Unifi C. har 10.10.10.10:8443, Plex har 10.10.10.20:32400 och Guavamole 10.10.10.30:8080.

Koden ser ut så här:

server{
listen 80;
server_name plex.lan;

location / {
proxy_pass "http://10.10.10.20:32400";
}

server{
listen 80;
server_name guacamole.lan;

location / {
proxy_pass "http://10.10.10.30:8080";
}
}

# Port 80 redirect to 443

server{
listen 80;
server_name unif.lan;

location / {
return 301 http://$host$request_uri;
}
}

# Port 443 proxy using SSL and header modification (Used for Unifi Controller)

server{
listen 443 ssl http2;
ssl_certificate /etc/nginx/ssl/mydomaincert.crt;
ssl_certificate_key /etc/nginx/ssl/myprivatekey.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;

server_name unifi.lan;

location / {
proxy_pass "https://10.10.10.10:8443";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
}
location /wss {
proxy_pass "https://10.10.10.10:8443";
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_read_timeout 86400;
}
}