Poradnik · Sieć w Proxmox VE 9

Poradnik sieciowy Proxmox publiczny adres IP dla każdej maszyny wirtualnej

Ten poradnik sieciowy Proxmox pokazuje, jak nadać maszynie wirtualnej jej własny publiczny adres IP na serwerze Primcast: podłącz ją do mostka vmbr0, wpisz adres, bramę i maskę sieciową, i jest online. Bez restartu i bez wcześniejszego zgłaszania czegokolwiek u nas.

Jeśli chcesz mieć większą kontrolę, poniżej znajdziesz dwa inne rozwiązania: ruch kierowany przez hosta oraz maszyny prywatne współdzielące adres hosta. Wszystkie trzy przetestowaliśmy na własnej sieci, zanim je opisaliśmy.

01

Znajdź swoje publiczne adresy IP i bramę, której każdy z nich używa

Twoje adresy znajdują się w wiadomości Dedicated Server Setup, którą wysłaliśmy w dniu postawienia serwera — najpierw IPv4, potem IPv6. Możesz je też zobaczyć w każdej chwili na swoim koncie: otwórz serwer i spójrz na panel Access, Networking & rDNS.

Na serwerze Proxmox tylko pierwszy adres jest skonfigurowany na hoście. Wiadomość mówi o tym pod listą adresów. Celowo na tym poprzestajemy: host trzymający wszystkie adresy odpowiadałby za każdy z nich, a Twoje maszyny wirtualne nie miałyby czego używać. Reszta należy do Ciebie — możesz je przydzielić maszynom wirtualnym albo hostowi, jeśli chcesz, aby miał więcej niż jeden.

Za każdym razem, gdy przypisujesz adres, potrzebujesz tych samych kilku wartości:

Maska sieciowa
/24Czyli 255.255.255.0.
Brama
.1Adres .1 z zakresu, w którym leży dany adres, więc 203.0.113.58 używa 203.0.113.1.
DNS na hoście
209.244.0.3Twoje maszyny wirtualne mogą używać dowolnego resolvera.
IPv6
/64Brama to prefiks, po którym następuje ::1. Szczegóły w kroku 06.

Gdy coś nie działa, najpierw sprawdź bramę. Adresy otrzymane razem dzielą jeden zakres i jedną bramę. Adresy dodane do serwera później mogą pochodzić z innego naszego zakresu i wtedy używają własnego adresu .1 tego zakresu. Zła brama to najczęstszy powód, dla którego nowa maszyna wirtualna nie może się z niczym połączyć.

02

Spójrz na mostek sieciowy Proxmox, który już masz

Zaloguj się do hosta przez SSH jako root i zobacz, co tam jest:

ip -br addr
cat /etc/network/interfaces

Serwer, który właśnie zainstalowaliśmy, ma plik wyglądający mniej więcej tak. Nazwa Twojego interfejsu i pierwszy adres będą inne:

/etc/network/interfaces

auto lo
iface lo inet loopback

iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
    address 203.0.113.10/24
    gateway 203.0.113.1
    bridge-ports eno1
    bridge-stp off
    bridge-fd 0

Zauważ, że vmbr0 jest już mostkiem z podpiętym Twoim portem sieciowym. To wszystko, czego potrzebuje konfiguracja mostkowana z kroku 03, więc w tym przypadku zostaw ten plik w spokoju.

Proxmox VE 9 działa na Debianie 13 i używa ifupdown2, co oznacza, że zmiany sieciowe są stosowane bez restartu. Po zapisaniu pliku uruchom:

ifreload -a

Jeśli wolisz interfejs webowy Proxmox, Twoje zmiany czekają w /etc/network/interfaces.new, dopóki nie klikniesz Apply Configuration.

Zanim cokolwiek zmienisz, otwórz konsolę na swoim koncie. Dociera ona do serwera przez kartę zarządzającą, a nie przez sieć, więc działa nawet wtedy, gdy literówka odetnie serwer od sieci.

Którą konfigurację wybrać?

Porównanie sieci mostkowanej, kierowanej i prywatnej dla maszyn wirtualnych Proxmox
PytanieMostkowanaKierowanaPrywatna
Używa jednego z Twoich publicznych adresów IPTakTakNie
Zmiany na hościeBrakAdres przenosi się na kartę sieciowąDrugi mostek
Zapora hosta widzi ruchNieCałyCały
Dostępna z internetuTakTakTylko porty, które przekierujesz
DHCP dozwoloneNieNieTak
03

Mostkowana: publiczny adres IP Proxmox prosto w sieci

Większość osób powinna wybrać tę opcję. Twoja maszyna wirtualna zachowuje się jak własny komputer w tym samym przełączniku, rozmawia bezpośrednio z naszymi routerami, a host nie wymaga żadnych zmian.

W Proxmox dodaj urządzenie sieciowe do maszyny wirtualnej, wybierz vmbr0 jako mostek i zachowaj adres MAC wygenerowany przez Proxmox. Następnie ustaw adres wewnątrz maszyny wirtualnej.

Debian lub Ubuntu z ifupdown

/etc/network/interfaces

auto lo
iface lo inet loopback

auto ens18
iface ens18 inet static
    address 203.0.113.58/24
    gateway 203.0.113.1
    dns-nameservers 209.244.0.3 1.1.1.1

Ubuntu z netplan

/etc/netplan/01-netcfg.yaml

network:
  version: 2
  ethernets:
    ens18:
      addresses: [203.0.113.58/24]
      routes:
        - to: default
          via: 203.0.113.1
      nameservers:
        addresses: [209.244.0.3, 1.1.1.1]

Windows

Wpisz ten sam adres, maskę sieciową i bramę w ustawieniach IPv4 karty sieciowej. System operacyjny nie robi nam żadnej różnicy: Twoja maszyna wirtualna to po prostu kolejny komputer w sieci.

Nie musisz nam niczego zgłaszać

Nie ma żadnego formularza do wypełnienia dla każdej nowej maszyny wirtualnej i nie wysyłasz nam adresów MAC. Niektórzy dostawcy wymagają obu rzeczy. Sprawdziliśmy to po naszej stronie, zanim to napisaliśmy: port przełącznika, którego używa Twój serwer, nie ma limitu adresów MAC, a zabezpieczenie portów jest wyłączone. Sami też przypisaliśmy drugi adres i MAC jednemu z naszych serwerów i połączyliśmy się z nim z internetu.

Kilka zasad sprawia, że to działa:

  • Nadaj każdej maszynie wirtualnej jej własny adres MAC. Jeśli dwie go współdzielą albo jedna kopiuje adres hosta, żadna nie działa poprawnie.
  • Użyj bramy pasującej do zakresu adresu, z kroku 01.
  • Używaj wyłącznie adresów, które są na Twoim koncie. Ten mostek łączy się z siecią, w której są inni klienci, a adres, który nie jest Twój, odbiera im ruch.
  • Nigdy nie uruchamiaj serwera DHCP ani nie wysyłaj ogłoszeń routera na vmbr0, z tego samego powodu. Jeśli chcesz automatycznego adresowania, użyj prywatnego mostka z kroku 05.
04

Kierowana: przepuść każdą maszynę wirtualną przez hosta

Wybierz tę opcję, gdy chcesz, aby zapora hosta widziała każdy pakiet, albo gdy wolisz, żeby Twoje maszyny wirtualne nigdy nie pojawiały się we współdzielonej sieci. Nadal używają prawdziwych publicznych adresów IP z Twojego konta. Zmienia się tylko ścieżka.

Publiczny adres przenosi się z mostka na kartę sieciową, host przekazuje ruch i odpowiada za maszyny znajdujące się za nim. Na hoście:

/etc/network/interfaces (host)

auto lo
iface lo inet loopback

auto eno1
iface eno1 inet static
    address 203.0.113.10/24
    gateway 203.0.113.1
    post-up echo 1 > /proc/sys/net/ipv4/ip_forward
    post-up echo 1 > /proc/sys/net/ipv4/conf/eno1/proxy_arp

auto vmbr0
iface vmbr0 inet manual
    bridge-ports none
    bridge-stp off
    bridge-fd 0
    up ip route add 203.0.113.58/32 dev vmbr0
    down ip route del 203.0.113.58/32 dev vmbr0

Dodaj jedną linię up i jedną down dla każdego kierowanego adresu. Wewnątrz maszyny wirtualnej adres to /32, a host musi być osiągalny przez własną trasę przed trasą domyślną:

/etc/network/interfaces (maszyna wirtualna)

auto lo
iface lo inet loopback

auto ens18
iface ens18 inet static
    address 203.0.113.58/32
    post-up ip route add 203.0.113.10 dev ens18
    post-up ip route add default via 203.0.113.10
    dns-nameservers 209.244.0.3 1.1.1.1

Zachowaj linię proxy_arp. Nasze routery pytają sieć, kto trzyma dany adres, a ta linia sprawia, że host odpowiada za maszyny znajdujące się za nim. Bez niej nie można ich znaleźć. Aby oba ustawienia były trwałe w stylu sysctl, umieść to w pliku w /etc/sysctl.d/:

net.ipv4.ip_forward=1
net.ipv4.conf.eno1.proxy_arp=1

Dodatkowa praca daje Ci hosta, który może filtrować i logować cały ruch. Jeśli tego nie potrzebujesz, konfiguracja mostkowana ma mniej ruchomych części.

05

Prywatna: maszyny wirtualne współdzielące adres hosta

Wiele maszyn wirtualnych musi tylko wychodzić do sieci, a nigdy nie być osiągalnymi: runnerzy buildów, workery, baza danych, która ma pozostać ukryta. Nadaj im prywatne adresy na drugim mostku, a host przetłumaczy ich ruch na swój własny publiczny adres IP. To nie zużywa żadnego z Twoich adresów, więc możesz uruchomić ich tyle, na ile pozwala sprzęt.

Dodaj drugi mostek i zostaw vmbr0 takim, jaki jest:

auto vmbr1
iface vmbr1 inet static
    address 10.10.10.1/24
    bridge-ports none
    bridge-stp off
    bridge-fd 0
    post-up echo 1 > /proc/sys/net/ipv4/ip_forward
    post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE
    post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o eno1 -j MASQUERADE

Podłącz maszyny wirtualne do vmbr1 i nadaj każdej adres z tego zakresu, z 10.10.10.1 jako bramą. Internet widzi je jako Twój serwer. Nic nie może się z nimi połączyć z zewnątrz, dopóki nie przekierujesz portu, co wymaga jeszcze jednej pary linii na porcie, którego host nie używa:

post-up iptables -t nat -A PREROUTING -i eno1 -p tcp --dport 8443 -j DNAT --to 10.10.10.2:443
post-down iptables -t nat -D PREROUTING -i eno1 -p tcp --dport 8443 -j DNAT --to 10.10.10.2:443

Ponieważ vmbr1 nie ma fizycznego portu, serwer DHCP na nim jest bezpieczny i stanowi łatwy sposób adresowania wielu maszyn.

06

Dodaj swoje adresy IPv6

Otrzymujesz pojedyncze adresy IPv6, a nie blok do podziału. Są one wymienione na końcu wiadomości konfiguracyjnej i przypisujesz je pojedynczo, tak samo jak IPv4: jeden na hoście, jeśli chcesz, aby host był osiągalny przez IPv6, pozostałe na maszynach wirtualnych, które ich potrzebują. Żaden z nich nie jest skonfigurowany za Ciebie w momencie instalacji.

Zapisz każdy adres z /64. Brama to prefiks, po którym następuje ::1, więc adres w 2001:db8:1234::/64 używa 2001:db8:1234::1. Na hoście, obok istniejącego mostka:

iface vmbr0 inet6 static
    address 2001:db8:1234::2/64
    gateway 2001:db8:1234::1

W maszynie wirtualnej na mostku:

iface ens18 inet6 static
    address 2001:db8:1234::5/64
    gateway 2001:db8:1234::1

Uruchom ponownie ifreload -a. Ponieważ te adresy nie są Twoim własnym blokiem, nie ogłaszaj tras ani nie rozdawaj adresów, których Ci nie przydzielono. Jeśli potrzebujesz więcej, zapytaj nas.

07

Ustaw rewers DNS dla każdego adresu

Rewers DNS możesz ustawić samodzielnie dla dowolnego ze swoich adresów. Zaloguj się, otwórz serwer i przejdź do Access, Networking & rDNS. Każdy adres pokazuje swoją bieżącą nazwę z przyciskiem Edit rDNS obok, a adresy IPv6 działają tak samo.

Wpisz nazwę hosta: litery, cyfry, myślniki i kropki, co najmniej dwie części, każda o długości od 1 do 63 znaków. Kropka końcowa jest dodawana za Ciebie. Zmiana zajmuje kilka minut.

Jeśli maszyna wirtualna wysyła e-maile, ustaw rewers DNS dla adresu, z którego poczta wychodzi. W konfiguracji prywatnej jest to adres hosta. Dodaj też pasujący rekord forward u swojego dostawcy DNS, ponieważ serwery odbierające pocztę sprawdzają, czy oba są zgodne, i odrzucają wiadomości, gdy nie są.

08

Pytania o sieć w Proxmox — z odpowiedziami

01Jak nadać maszynie wirtualnej Proxmox publiczny adres IP?

Podłącz maszynę wirtualną do mostka vmbr0 i ustaw w niej jeden ze swoich dodatkowych publicznych adresów IP, z maską /24 i adresem .1 z zakresu tego adresu jako bramą. Na serwerze Primcast host nie wymaga do tego żadnych zmian i nie musisz rejestrować u nas adresu MAC.

02Moja maszyna wirtualna działa, ale nie ma sieci. Co powinienem sprawdzić?

Zacznij od bramy: musi to być adres .1 z zakresu, do którego należy dany adres, a adresy dodawane w różnym czasie mogą leżeć w różnych zakresach. Następnie upewnij się, że adres jest na Twoim koncie, maska to /24 i żadna inna maszyna nie używa tego samego adresu MAC.

03Czy muszę wysyłać Primcast adres MAC każdej maszyny wirtualnej?

Nie. Twój port przełącznika uczy się tylu adresów MAC, ilu używasz, a zabezpieczenie portów jest wyłączone, więc maszyna wirtualna pojawia się jak każdy fizyczny komputer. Zachowaj adres MAC wygenerowany przez Proxmox i nigdy nie nadawaj dwóm maszynom tego samego.

04Dlaczego na moim nowym serwerze Proxmox skonfigurowany jest tylko jeden adres IP?

Po to, aby Twoje maszyny wirtualne miały adresy do użycia. Gdyby host trzymał je wszystkie, odpowiadałby za każdy z nich. Konfigurujemy pierwszy adres, abyś mógł połączyć się z serwerem, a wiadomość konfiguracyjna odnotowuje to pod Twoją listą adresów.

05Czy w Proxmox powinienem użyć sieci mostkowanej czy kierowanej?

Użyj mostkowanej, chyba że potrzebujesz, aby host filtrował ruch. Nie zmienia ona niczego na hoście, a każda maszyna wirtualna zachowuje się jak zwykły komputer w sieci. Sieć kierowana sprawdzi się, gdy zapora hosta musi widzieć każdy pakiet, w zamian za nieco więcej konfiguracji wewnątrz każdej maszyny.

06Czy mogę używać DHCP dla moich maszyn wirtualnych Proxmox?

Tak, na prywatnym mostku bez fizycznego portu, takim jak vmbr1 w kroku 05. Nigdy na vmbr0: łączy się on z siecią współdzieloną przez innych klientów, a serwer DHCP lub ogłoszenia routera odpowiadałyby tam maszynom, które nie są Twoje.

07Zastosowałem złą konfigurację sieci i straciłem serwer. Jak się z powrotem zalogować?

Otwórz konsolę ze swojego konta Primcast. Działa ona przez kartę zarządzającą serwera, a nie przez jego sieć, więc działa, gdy sieć jest zepsuta. Napraw /etc/network/interfaces, uruchom ifreload -a, a serwer znów będzie osiągalny.

08Jak uzyskać więcej adresów IP dla moich maszyn wirtualnych?

Zapytaj na czacie na żywo lub otwórz zgłoszenie i powiedz nam, do czego każdy adres ma służyć, ponieważ rejestry adresów wymagają uzasadnienia dla każdego przydziału. Dodatkowe adresy IPv4 są rozliczane co miesiąc na tym samym koncie i pojawiają się w panelu sterowania po ich przydzieleniu.

Utknąłeś na jakimś kroku? Zapytaj nas na czacie.

Nasz asystent AI odpowiada w kilka sekund i może sprawdzić Twój serwer oraz jego adresy. Poproś o człowieka, kiedy tylko chcesz.

Zobacz serwery Proxmox