Puncte:1

Cum să utilizați un IP public al unui server gazdă pentru a accesa mai multe VM-uri invitate?

drapel in

Am un server gazdă bare metal cu mai multe VM invitați realizate cu QEMU/KVM folosind opțiunea „implicit”:NAT de rețea virtuală. Există un singur IP public disponibil.

Pentru o mai bună ilustrare:

  • Server gazdă BM (Ubuntu), IP 89.185.xx.xx

  • Server invitat VM (Ubuntu) nr.1, IP 192.168.122.101

    Server invitat VM (Ubuntu) nr.2, IP 192.168.122.102

    Server invitat VM (Ubuntu) nr.3, IP 192.168.122.103

    ...

Acum aș dori să rulez aceeași aplicație folosind un port diferit pe fiecare VM și să mă pot conecta la fiecare instanță din exterior prin același IP public. De exemplu.:

  • 89.185.xx.xx:30334

  • 89.185.xx.xx:30335

  • 89.185.xx.xx:30336

    ...

Configurare similară ca rularea aplicației în mai multe containere docker. Cum aș putea configura asta, te rog?

djdomi avatar
drapel za
nginx ca proxy invers pentru orice fel. asa o folosesc eu
drapel us
Proxy invers pentru HTTP/HTTPS și redirecționare porturi în alte scopuri.
Puncte:3
drapel it

Luat din https://www.systutorials.com/port-forwarding-using-iptables/

pentru a redirecționa portul de la IP public la unul local pentru VM1:

# iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 30334 -j DNAT --to 192.168.122.101:30334
# iptables -I FORWARD 1 -p tcp -d 192.168.122.101 --dport 30334 -j ACCEPT 

Acest exemplu presupune că ambele porturi locale și la distanță sunt 30334 iar numele interfeței publice este eth0.

Curu avatar
drapel in
multumesc pentru raspuns! dar nu o pot face să funcționeze (trebuie să-mi cer scuze în avans, deoarece nu am fundal IT, așa că poate că unele greșeli slabe sunt trecute cu vederea) Am încercat mai întâi asta cu ssh: `$ sudo iptables -A PREROUTING -t nat -i eno2 -p tcp --dport 2222 -j DNAT --to 192.168.122.101:2222` `$ sudo iptables -A FORWARD -p tcp -d 192.168.122.101 --dport 2222 -j ACCEPT` (eno2 - interfață de rețea pe serverul gazdă BM conectat la IP public 89.185.xx.xx)
Curu avatar
drapel in
Am schimbat portul ssh pe VM guest 192.168.122.101 în 2222, m-am asigurat că ufw este inactiv atât pe gazdă, cât și pe oaspete și am testat conexiunea ssh de la serverul gazdă BM care funcționa: `[email protected]:~$ ssh [email protected] -p 2222` Acum am încercat să fac ssh de pe computerul meu local pe VM: `curu@desktop:~$ ssh [email protected] -p 2222` dar scrie: ssh: conectează-te la gazda 89.185.xx.xx portul 2222: conexiune refuzată
Curu avatar
drapel in
problema a fost rezolvată cu punerea regulii înainte pe primul loc în iptables: `iptables -I FORWARD 1 -p tcp -d 192.168.122.101 --dport 2222 -j ACCEPT` (am editat răspunsul original)

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.