Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  15 4025
Har nylig satt opp en docker med MineOS (minecraft server) på min hjemmeserver som skal benyttes av noen andre utenfor mitt nettverk.

Har knyttet serveren opp mot et domene (med cloudflare) og det fungerer godt. Prøvde å knytte kartet (dynmap) til minecraft serveren opp mot domenet også, med samme metode, men det fungerte ikke. Etter litt googling tror jeg cloudflare krever https, og dynmap er kun http.

Vil det fungere å knytte karter/dynmap til domenet via en reverse proxy.

Hvordan er det med sikkerhet rundt dette med å ha åpne porter i ruteren som er knyttet til serveren? Er det noe annet jeg bør gjøre for å øke sikkerheten?
NOOOOOOOOOOOOOOOOOO-
robhol's Avatar
Definer "fungerte ikke"?

Domener peker vanligvis til enten en IP-adresse eller et annet hostname (CNAME record) og har ingenting med HTTP/S å gjøre, eller hva som kjører på hosten. Cloudflare ser ut til å være en vanlig domeneregistrar her, så jeg regner ikke med at de snur opp ned på hvordan hele greia fungerer.

"Denne greia støtter ikke HTTPS" er et vanlig problem der reverse proxy er en vanlig-ish løsning - i samme slengen kan du bruke RP til å gjøre URL-en til Dynmap fin og ryddig. Når det er sagt er dette bare en løsning hvis du får koblet til dynmap "utenfra" og nettleseren klager på usikret forbindelse.

Åpne porter er ikke et problem i seg selv, det som eventuelt lytter på dem er. Hold alt du ikke trenger stengt på generelt prinsipp, så klart.
Sist endret av robhol; 25. august 2021 kl. 14:58.
Kjører Cloudflare DDNS på serveren for å tracke og koble ipadressen min til dynamic.mittDomene.no
Inne på Cloudflare har jeg knyttet minecraft.mittDomene.no til dynamic.mittDomene.no:25565 med CNAME og SRV.
Dette fungerer

Gjorde akkurat det samme for dynmap. Knyttet dynmap.mittDomene.no til dynamic.mittDomene.no:8123 med CNAME og SRV.
Når jeg går inn på dynmap.mittDomene.no blir jeg av en eller annen grunn sendt til routerens innloggingsside (UNIFI).

Dynmap fungerer hvis jeg skriver inn min public IP og korrekt port, men fungerer ikke hvis jeg går til dynamic.mittDomene.no:8123, da kommer ingenting opp.

Hvordan vil RP gjøre URL-en fin og ryddig? Googlet nå, og ser at den blir benyttet til å legge inn en epostadresse.
NOOOOOOOOOOOOOOOOOO-
robhol's Avatar
Du kan ikke ha knyttet noe til en port med CNAME, portnummer er ikke en del av hostname. SRV har jeg ikke vært borti i min begrensede tukling med DNS, men gjetter at den er grunnen til at du finner serveren i det hele tatt.

Du burde ikke få opp router-login. Den burde ikke være åpen utenfra, og hvis routeren okkuperer port 80 (http) kommer du uansett til å få problemer når du vil ha en annen tjeneste til å svare der.

Mitt setup ville vært å sørge for at du kan kjøre en ordentlig HTTP-server på port 80. Så CNAME dynmap.whatever og minecraft.whatever til DDNS-en din. Hovedserveren din settes (eventuelt) opp til å reagere på hvilket navn som er i HTTP request, og reverse proxy-e riktig subdomene til/fra riktig tjeneste i "backend", om det er dynmap eller x andre ting.

Nå er jeg ikke sysadmin og har ingen aspirasjoner dithen, så det er mulig noen har bedre idéer.
Jeg har gjort det samme som deg før.
Du har en god ide i forhold til hva du ønsker å gjøre, men det fungerer ikke sånn.
Hvis du besøker http://dynmap.domene.no og http://minecraft.domene.no, så vil du få samme resultat (UNIFI-login)

Årsak:
Du har lagt inn

CNAME - minecraft.domene.no -> dynamic.domene.no:25565.
CNAME - dynmap.domene.no -> dynamic.domene.no:8123.

Du har ikke aktivert proxy mode.
Derfor vil oppføringene dine oppfattes som å ikke ha portnummer. Begge resulterer da i å peke til dynamic.domene.no, og ikke dynamic.domene.no:25565 eller dynamic.domene.no:8123.

Cloudflare støtter heller ikke proxy gjennom port 8123 eller 25565, så dette ville likevel vært nytteløst.

Husk også at standard HTTP-port er 80. Din UNIFI-router har nok port 80 åpen mot Internett. Ettersom CNAME-oppføringene kun fører til dynamic.domene.no, vil det da resultere i at nettleseren besøker dynamic.domene.no:80, hvor UNIFI-loginen din er.

Samtidig må du huske på at Minecraft sin standard port er 25565, så det vil si at hvis du legger inn kun IP-adressen til serveren i Minecraft, uten å spesifisere port, f.eks. 127.0.0.1 (eller dynamic.domene.no), så vil Minecraft alltid forsøke å sjekke om det finnes en server på port 25565 uansett.

Prøv å sjekke om du finner serveren ved å skrive dynamic.domene.no. Du finner den. Det samme skjer om du skriver dynamic.domene.no:25565. Likeså om du skriver minecraft.domene.no og minecraft.domene.no:25565. Og dynmap.domene.no / dynmap.domene.no:25565.

Det er fordi Minecraft sjekker CNAME-recorden som gir kun dynamic.domene.no, samtidig som Minecraft likevel sjekker på port 25565. Dvs dynamic.domene.no:25565. Derfor opplever du at denne løsningen fungerer.

Hadde du aktivert proxy mode på minecraft.domene.no og dynmap.domene.no, ville dette ikke ha fungert, fordi man da får Cloudflare sin IP-adresse istedenfor non-proxied IP, som er din.

Det er bedre at du fjerner CNAME-recorden og kun baserer deg på SRV-records, som er mer spesifikk brukbare til formålet.

Du kan selvfølgelig gjerne beholde CNAME minecraft.domene.no -> dynamic.domene.no, ettersom serveren din bruker standard 25565 akkurat nå. Det vil ikke spille noen rolle. Hadde det derimot vært en annen port enn 25565, ville CNAME vært verdiløst, med mindre du isåfall la inn portnummer på slutten (:25500 f.eks.) i Minecraft.

Minecraft bruke enten CNAME eller SRV, ikke begge samtidig. Den prøver CNAME først (dynamic.domene.no), og sjekker om port 25565 brukes, som tidligere beskrevet. Gjør den det, så kobler Minecraft seg til gjennom CNAME-oppføringen. Ellers prøver den videre med SRV og prøver å koble seg til via. SRV-oppføringen.

Hvis du har dette ...

SRV - minecraft.domene.no -> dynamic.domene.no:25565

.. så vil Minecraft forstå at den skal prøve ip-adressen dynamic.domene.no:25565 hvis du skriver minecraft.domene.no.

(Husk å legge inn riktige parametere i resten av SRV-recorden, f.eks. hvilken tjeneste som kjører (_minecraft) og protokoll (tcp), du finner mer info her.)

Hvis din server hadde brukt port 25500, ville ikke Minecraft kunne finne den om du skrev inn bare dynamic.domene.no uten å spesifisere port, fordi Minecraft prøver jo port 25565 som standard. Da ville du ha måttet skrive dynamic.domene.no:25500 for å finne serveren.

Tilsvarende hvis du har ..

SRV - minecraft.domene.no -> dynamic.domene.no:25500

.. så vil Minecraft oppfatte minecraft.domene.no som at den skal forsøke IP-adressen dynamic.domene.no:25500, og dermed finne serveren din.

Slik kan du ha flere servere på samme IP-adresse, men ulike domener ved hjelp av SRV:
Eksempel:
SRV - server1.domene.no -> dynamic.domene.no:25565
SRV - server2.domene.no -> dynamic.domene.no:25500
SRV - server3.domene.no -> dynamic.domene.no:20000

Derfor vil det være forskjellige servere man kontakter ved å besøke hver av recordsene.

Skjønner?

Når det kommer til dynmap-løsningen din, så er dette en HTTP-basert tjeneste, og skal derfor ikke ha behov for en SRV-record.

Ettersom Cloudflare ikke støtter proxy gjennom port 8123, vil den isåfall ignorere portnummeret og heller besøke dynamic.domene.no på port 80, som er standard for HTTP-trafikk, der du har UNIFI-loginen din, som tidligere nevnt.

For å løse det med dynmap, bytt port på dynmap til en av portene som Cloudflare støtter proxy gjennom.

En av portene som Cloudflare støtter er 2095 for HTTP, og 2096 for HTTPS.
Du sier at dynmap bruker HTTP, derfor forholder du deg til 2095.

Du kan velge mellom to ting å gjøre nå:
- Enten endre innstillingene til dynmap og få den til å bruke port 2095, og så port forwarde port 2095.

- Eller la være å endre innstillingene til dynmap, og heller bare få ruteren til å overføre trafikk fra utgående port 2095 til inngående port 8123.

Jeg ville valgt alternativ 2 for å spare tid og energi. Bare gå inn på port-forwardingen du har satt opp i ruteren din, der du har port forwardet 8123 til 8123. Endre UTGÅENDE port til 2095, så det blir 8123 til 2095.

Nå vil dynmap være tilgjengelig på dynamic.domene.no:2095.

Dermed endrer du CNAME dynmap.domene.no til å peke til dynamic.domene.no:2095, istedenfor dynamic.domene.no:8123.

Husk å aktivere proxied mode, ellers fungerer dette ikke.

Jeg har prøvd å forklare dette med teskje nå, så jeg har ikke brukt helt riktige begrep og lignende.

Jeg følger gjerne opp eventuelle spørsmål du måtte ha.
Sist endret av Tysteren; 25. august 2021 kl. 21:16. Grunn: Mer spesifikk info
Sitat av Tysteren Vis innlegg
Jeg har gjort det samme som deg før.
Du har en god ide i forhold til hva du ønsker å gjøre, men det fungerer ikke sånn.
Hvis du besøker http://dynmap.domene.no og http://minecraft.domene.no, så vil du få samme resultat (UNIFI-login)

Årsak:
Du har lagt inn

CNAME - minecraft.domene.no -> dynamic.domene.no:25565.
CNAME - dynmap.domene.no -> dynamic.domene.no:8123.

Du har ikke aktivert proxy mode.
Derfor vil oppføringene dine oppfattes som å ikke ha portnummer. Begge resulterer da i å peke til dynamic.domene.no, og ikke dynamic.domene.no:25565 eller dynamic.domene.no:8123.

Cloudflare støtter heller ikke proxy gjennom port 8123 eller 25565, så dette ville likevel vært nytteløst.

Husk også at standard HTTP-port er 80. Din UNIFI-router har nok port 80 åpen mot Internett. Ettersom CNAME-oppføringene kun fører til dynamic.domene.no, vil det da resultere i at nettleseren besøker dynamic.domene.no:80, hvor UNIFI-loginen din er.

Samtidig må du huske på at Minecraft sin standard port er 25565, så det vil si at hvis du legger inn kun IP-adressen til serveren i Minecraft, uten å spesifisere port, f.eks. 127.0.0.1 (eller dynamic.domene.no), så vil Minecraft alltid forsøke å sjekke om det finnes en server på port 25565 uansett.

Prøv å sjekke om du finner serveren ved å skrive dynamic.domene.no. Du finner den. Det samme skjer om du skriver dynamic.domene.no:25565. Likeså om du skriver minecraft.domene.no og minecraft.domene.no:25565. Og dynmap.domene.no / dynmap.domene.no:25565.

Det er fordi Minecraft sjekker CNAME-recorden som gir kun dynamic.domene.no, samtidig som Minecraft likevel sjekker på port 25565. Dvs dynamic.domene.no:25565. Derfor opplever du at denne løsningen fungerer.

Hadde du aktivert proxy mode på minecraft.domene.no og dynmap.domene.no, ville dette ikke ha fungert, fordi man da får Cloudflare sin IP-adresse istedenfor non-proxied IP, som er din.

Det er bedre at du fjerner CNAME-recorden og kun baserer deg på SRV-records, som er mer spesifikk brukbare til formålet.

Du kan selvfølgelig gjerne beholde CNAME minecraft.domene.no -> dynamic.domene.no, ettersom serveren din bruker standard 25565 akkurat nå. Det vil ikke spille noen rolle. Hadde det derimot vært en annen port enn 25565, ville CNAME vært verdiløst, med mindre du isåfall la inn portnummer på slutten (:25500 f.eks.) i Minecraft.

Minecraft bruke enten CNAME eller SRV, ikke begge samtidig. Den prøver CNAME først (dynamic.domene.no), og sjekker om port 25565 brukes, som tidligere beskrevet. Gjør den det, så kobler Minecraft seg til gjennom CNAME-oppføringen. Ellers prøver den videre med SRV og prøver å koble seg til via. SRV-oppføringen.

Hvis du har dette ...

SRV - minecraft.domene.no -> dynamic.domene.no:25565

.. så vil Minecraft forstå at den skal prøve ip-adressen dynamic.domene.no:25565 hvis du skriver minecraft.domene.no.

(Husk å legge inn riktige parametere i resten av SRV-recorden, f.eks. hvilken tjeneste som kjører (_minecraft) og protokoll (tcp), du finner mer info her.)

Hvis din server hadde brukt port 25500, ville ikke Minecraft kunne finne den om du skrev inn bare dynamic.domene.no uten å spesifisere port, fordi Minecraft prøver jo port 25565 som standard. Da ville du ha måttet skrive dynamic.domene.no:25500 for å finne serveren.

Tilsvarende hvis du har ..

SRV - minecraft.domene.no -> dynamic.domene.no:25500

.. så vil Minecraft oppfatte minecraft.domene.no som at den skal forsøke IP-adressen dynamic.domene.no:25500, og dermed finne serveren din.

Slik kan du ha flere servere på samme IP-adresse, men ulike domener ved hjelp av SRV:
Eksempel:
SRV - server1.domene.no -> dynamic.domene.no:25565
SRV - server2.domene.no -> dynamic.domene.no:25500
SRV - server3.domene.no -> dynamic.domene.no:20000

Derfor vil det være forskjellige servere man kontakter ved å besøke hver av recordsene.

Skjønner?

Når det kommer til dynmap-løsningen din, så er dette en HTTP-basert tjeneste, og skal derfor ikke ha behov for en SRV-record.

Ettersom Cloudflare ikke støtter proxy gjennom port 8123, vil den isåfall ignorere portnummeret og heller besøke dynamic.domene.no på port 80, som er standard for HTTP-trafikk, der du har UNIFI-loginen din, som tidligere nevnt.

For å løse det med dynmap, bytt port på dynmap til en av portene som Cloudflare støtter proxy gjennom.

En av portene som Cloudflare støtter er 2095 for HTTP, og 2096 for HTTPS.
Du sier at dynmap bruker HTTP, derfor forholder du deg til 2095.

Du kan velge mellom to ting å gjøre nå:
- Enten endre innstillingene til dynmap og få den til å bruke port 2095, og så port forwarde port 2095.

- Eller la være å endre innstillingene til dynmap, og heller bare få ruteren til å overføre trafikk fra utgående port 2095 til inngående port 8123.

Jeg ville valgt alternativ 2 for å spare tid og energi. Bare gå inn på port-forwardingen du har satt opp i ruteren din, der du har port forwardet 8123 til 8123. Endre UTGÅENDE port til 2095, så det blir 8123 til 2095.

Nå vil dynmap være tilgjengelig på dynamic.domene.no:2095.

Dermed endrer du CNAME dynmap.domene.no til å peke til dynamic.domene.no:2095, istedenfor dynamic.domene.no:8123.

Husk å aktivere proxied mode, ellers fungerer dette ikke.

Jeg har prøvd å forklare dette med teskje nå, så jeg har ikke brukt helt riktige begrep og lignende.

Jeg følger gjerne opp eventuelle spørsmål du måtte ha.
Vis hele sitatet...
Aha! Dette gir mening.
Jeg har dessverre ikke mulighet for å teste dette før helga, men jeg setter stor pris på at du tok deg tid til å svare. Dette var jo leselig for meg også

Takk så lenge!
Fått prøvd? Hvordan går det?
Har endelig fått satt meg ned og prøvd litt. Dessverre fungerte ikke alt som jeg hadde håpet.

1. Jeg fikk ikke koblet til minecraftserveren ved å gå til dynamic.domene.no (fikk timeout), MEN jeg fikk se hvor mange som var logget på.
2. Får ikke lagt til CNAME med portnummer på Cloudflare
3. Får ikke akitivert proxy når jeg benytter SRV på Cloudflare

Prøvde å sette opp en SRV for dynmap, men får det ikke til å fungere. Får opp kartet ved å gå til dynamic.domene.no:2095. Mulig dette ikke fungerer fordi jeg ikke får aktivert proxy?
Æhhhh, nå ble jeg plutselig usikker på hvordan jeg gjorde det den gangen jeg skulle få Cloudflare til å lage en proxy til en spesifikk port, jeg brukte port 2095, men husker ikke hvilke innstillinger / hvilken DNS-record jeg lagde for å gjøre dette..

1: Årsaken til det er ukjent, men ikke tenk så mye på det, så lenge SRV-recordene fungerer til å finne og bruke serveren.
2: Ja, usikker.. Skal undersøke litt mer hvordan jeg gjorde det den gangen..
3: Du skal ikke kunne aktivere proxy, det ville isåfall ha vært helt feil, fordi da får brukeren ikke IP-adressen til serveren din, men Cloudflare sin.

4: SRV fungerer ikke i forhold til HTTP-trafikk, så det er derfor du ikke får det til. Det er en annen type DNS-record du må sette opp for å forwarde til dynmap.domene.no:2095, det er det som er problemet, jeg husker ikke hva jeg gjorde.

Uansett, en annen løsning er at du setter opp webserver på maskinen din selv, og får denne webserveren til å videresende til 2095 Har du erfaring med Apache / Nginx webserver?
Sitat av Tysteren Vis innlegg
Æhhhh, nå ble jeg plutselig usikker på hvordan jeg gjorde det den gangen jeg skulle få Cloudflare til å lage en proxy til en spesifikk port, jeg brukte port 2095, men husker ikke hvilke innstillinger / hvilken DNS-record jeg lagde for å gjøre dette..

1: Årsaken til det er ukjent, men ikke tenk så mye på det, så lenge SRV-recordene fungerer til å finne og bruke serveren.
2: Ja, usikker.. Skal undersøke litt mer hvordan jeg gjorde det den gangen..
3: Du skal ikke kunne aktivere proxy, det ville isåfall ha vært helt feil, fordi da får brukeren ikke IP-adressen til serveren din, men Cloudflare sin.

4: SRV fungerer ikke i forhold til HTTP-trafikk, så det er derfor du ikke får det til. Det er en annen type DNS-record du må sette opp for å forwarde til dynmap.domene.no:2095, det er det som er problemet, jeg husker ikke hva jeg gjorde.

Uansett, en annen løsning er at du setter opp webserver på maskinen din selv, og får denne webserveren til å videresende til 2095 Har du erfaring med Apache / Nginx webserver?
Vis hele sitatet...
Takker for flere oppklaringer. Skal undersøke litt mer jeg også.

Har så godt som ingen erfaring med apache/nginx. Satte opp en nettside i rein html og CSS på en webserver for en del år tilbake.
Tenker du at å sette opp en CNAME til en nettside, som automatisk sender meg videre til dynamic.domene.no:2095?
Sitat av GreenRay Vis innlegg
Takker for flere oppklaringer. Skal undersøke litt mer jeg også.

Har så godt som ingen erfaring med apache/nginx. Satte opp en nettside i rein html og CSS på en webserver for en del år tilbake.
Tenker du at å sette opp en CNAME til en nettside, som automatisk sender meg videre til dynamic.domene.no:2095?
Vis hele sitatet...
Det stemmer jeg har politiske greier å ta meg av idag, men jeg skal ikke glemme deg og denne tråden! Vi snakkes

Stem venstre / SV!
Sist endret av Tysteren; 4. september 2021 kl. 12:20.
Ja, halloen!
Ser ut til at jeg tok feil i forhold til at SRV ikke kan brukes for HTTP-trafikk.
Det har blitt mulig å gjøre det siden jeg var liten og lærte om DNS.


Gjør dette

Tilsvarende med Minecraft, du gjør isåfall sånn:


Jeg glemte å sette TTL på bildene jeg lastet opp, men sett gjerne det til 2 minutter.
Husk at det vil ta noe tid før innstillingene blir oppdatert i DNS-servere over hele verden, og det vil fungere.

Du kan aktivere proxied mode på SRV-recorden for dynmap.
Du kan IKKE aktivere proxied mode på SRV-recorden for Minecraft, det vil isåfall ikke være mulig å kontakte Minecraft-serveren.
Sist endret av Tysteren; 5. september 2021 kl. 17:08.
NOOOOOOOOOOOOOOOOOO-
robhol's Avatar
Du trenger ikke SRV record for dynmap, og det vil ikke gjøre noen forskjell - nettleseren din vet ikke at den skal sjekke SRV records, eller hva den skulle sett etter i dem. Den sender HTTP requests dit du ber den, enten direkte (f.eks. http://localhost:42069) eller implisitt på 80/443 som standard HTTP/-S-port.

Du trenger den sannsynligvis ikke for Minecraft heller, den er bare relevant for å slippe å angi portnummer hvis du har konfigurert det til noe ikke-standard. Eventuelt har noe forandret seg drastisk.

Korriger meg gjerne hvis jeg tar feil, men dette høres veldig rart ut.
Sitat av robhol Vis innlegg
Du trenger ikke SRV record for dynmap, og det vil ikke gjøre noen forskjell - nettleseren din vet ikke at den skal sjekke SRV records, eller hva den skulle sett etter i dem. Den sender HTTP requests dit du ber den, enten direkte (f.eks. http://localhost:42069) eller implisitt på 80/443 som standard HTTP/-S-port.

Du trenger den sannsynligvis ikke for Minecraft heller, den er bare relevant for å slippe å angi portnummer hvis du har konfigurert det til noe ikke-standard. Eventuelt har noe forandret seg drastisk.

Korriger meg gjerne hvis jeg tar feil, men dette høres veldig rart ut.
Vis hele sitatet...
Jeg har ikke fullstendig peiling på det med SRV-record for HTTP, men da jeg googlet litt rundt, fant jeg altså at man kan sette _http som en parameter, og at nyere http-protokoller eventuelt kunne støtte det: https://stackoverflow.com/questions/...se-srv-records

Nå som det har gått flere år siden informasjonen i den tråden ble skrevet, tenkte jeg at det kanskje fungerer nå, ettersom _http kan settes som en parameter. Verdt et forsøk iallefall.

Trådstarter ønsker å unngå å skrive port til mc-serveren, slik jeg oppfatter det. Dermed blir SRV aktuelt der
ओम नमो नारायण
Dodecha's Avatar
DonorCrew
Det her må være et av de større stormene i et vannglass jeg har sett her inne, du har hengt deg opp små detaljer av teknologi du ikke helt ser ut til å beherske.

Det er vanlig praksis at klienten som skal koble seg til noe, definerer hvilken port man kobler seg til, når du bruker nettleser, vil den alltid koble seg til port 80. Når en minecraft klient kobler seg til et domene så vil den alltid koble seg til port 25565. Jeg har aldri brydd meg med SRV records, det er overflødig og i ditt tilfelle: skaper mer problemer enn løsninger.

Når vi hadde minecraftserver her på freak var den knyttet opp til domenet thorcraft.no, som pekte mot IP til minecraft serveren og dynmap kjørte der også. Websiden var på et annet sted så vi pekte www.thorcraft.no der.

Så dropp SRV, porter og faenskapen, pek CNAME eller A record mot serveren og len deg tilbake, alle webklienter vil peke mot port 80 og gi de nettsiden/dynmap siden din og alle minecraft klienter vil koble seg mot minecraft serveren din.
Sist endret av Dodecha; 8. september 2021 kl. 12:10.
NOOOOOOOOOOOOOOOOOO-
robhol's Avatar
Eneste problemet som sitter igjen da er HTTPS (og eventuelt URL) på Dynmap. Som er enkle å fikse med en reverse proxy.

Jeg vet heller ikke hvorfor dette ble så komplisert.
Sist endret av robhol; 8. september 2021 kl. 10:22.