KMatuszak | 2019-09-09 11:26:56 UTC | #1
Cześć! W tym poradniku pokażę jak podzielić VPS KVM na mniejsze VPS’y (kontenery) z wirtualizacją LXC. Każdy kontener będzie miał przydzielone inne porty, więc wystarczy nam tylko jeden adres IP. Całością będziemy zarządzać przez darmowy panel ProxmoX który sami zainstalujemy :smile:
## 1. Co będzie nam potrzebne?
- Dowolny VPS z aktualnej oferty LVL UP (oprócz KVM PL 1GB)
- Trochę czasu
Przechodzimy na oficjalną stronę ProxmoX’a oraz kilkamy zakładkę Downloads
. W kategorii Download Proxmox software, datasheets and documentation Files
klikamy przycisk Download
w pierwszej pozycji.
Po chwili rozpocznie się pobieranie pliku ISO - ma ono około 600MB więc musimy chwilę poczekać :slight_smile:
Może to trochę dziwnie zabrzmi, ale musimy teraz przesłać pobrane ISO panelu ProxmoX do panelu ProxmoX gdzie możemy zarządzać serwerem VPS. Aby to zrobić, musimy się najpierw zalogować - w panelu klienta przechodzimy do zakładki z serwerem VPS oraz klikamy przycisk:
Po chwili zobaczymy dane logowania do panelu ProxmoX naszego serwera VPS. Przechodzimy pod podany adres. Dla ułatwienia wybieramy język polski z rozwijanej listy. Po zalogowaniu z lewej strony przeglądarki wybieramy ostatni element.
Obok zaznaczamy
Teraz klikamy przycisk w górnej części panelu oraz wybieramy i przesyłamy pobrany wcześniej obraz ISO. Ponownie musimy chwilę poczekać. Po poprawnym przesłaniu obrazu zobaczymy go na liście.
Teraz klikamy na i przechodzimy do zakładki
po czym dwukrotnie klikamy
. Teraz wybieramy przesłany obraz ISO:
Zatwierdzamy przyciskiem OK i przechodzimy do zakładki . Teraz musimy działać szybko - z rozwijanej listy wybieramy Restart:
Odrazu po kliknięciu klikamy również na obszar gdzie widzimy konsolę serwera w celu ukatywnienia okna. Zanim napis ProxmoX
zniknie musimy wcisnąć na naszej klawaiaturze przycisk ESC
. Jeżeli zobaczysz napisy podobne do tych
to znaczy że się udało. Teraz już nie musimy się śpieszyć. Jeżeli jednak uruchamia się system operacyjny z dysku to oznacza to, że robisz coś nieprawidłowo lub zbyt wolno. Teraz zgodnie z widocznymi napisami chcemy uruchomić instalator ProxmoX’a z napędu DVD na ata1 a więc wciskamy na klawiaturze przycisk 3
. Po chwili powinien być widoczny taki ekran:
Teraz zatwierdzamy pierwsza opcję wciskając przycisk enter. Po chwili instalator załaduje się. Prawdopodobnie zobaczysz taki komunikat:
Należy go zignorować wciskając przycisk OK. Teraz czytamy () i akceptujemy EULA przyciskiem
. Kolejny ekran dotyczy konfiguracji dysków - zostawiamy domyślne ustawienia i klikamy przycisk
. Upewnij się, że na dysku nie ma żadnych potrzebnych ci danych, ponieważ wszystko zostanie usunięte. W następnym kroku wpisujemy
Poland
w pierwszym polu tekstowym i ponownie klikamy przycisk .
W kolejnym etapie dwukrotnie wpisujemy hasło którym chcemy się logować do panelu ProxmoX oraz nasz adres e-mail na który otrzymamy powiadomienie jeżeli któryś z kontenerów z jakiegoś powodu nie będzie działał prawidłowo. Klikamy przycisk .
Teraz w polu Hostname
wpisujemy nazwę hosta - może być to np. p1.example.com
.
Resztę ustawień zostawiamy domyślnie - powinny one zostać wykryte automatycznie dzięki serwerowi DHCP. Teraz klikamy przycisk i czekamy aż instalacja zakończy się. Powinno to zająć mniej niż 5 minut :slight_smile:. Po zakończeniu instalacji zobaczymy
Teraz klikamy i czekamy aż serwer uruchomi się ponownie. Tym razem nie musimy nic wciskać.
Po ponownym uruchomieniu powinniśmy zobaczyć taki ekran:
Wchodzimy w przeglądarce pod adres https://xxx.xxx.xxx.xxx:8006
zastępując xxx.xxx.xxx.xxx
adresem IP naszego VPS’a.
Uwaga! Koniecznie trzeba użyć protokołu https ponieważ ProxmoX wymusza jego użycie.
Pewnie zobaczysz taki komunikat:
Klikamy przycisk oraz napis
Otwórz stronę xxx.xxx.xxx.xxx (niebezpieczną)
Teraz na ekranie logowania wprowadź nazwę użytkownika root
, podane przy instalacji hasło oraz wybierz język polski. Pozostaw domyślnie wybraną autoryzację Linux
. Kliknij przycisk .
Zobaczysz taki komunikat:
Jest to tylko zachęta do kupna lepszej wersji - kliknij przycisk
Jak widać panel wygląda identycznie tak jak ten od zarządzania serwerem VPS:
Zanim zaczniemy tworzyć kontenery LXC, musimy edytować jeszcze plik /etc/network/interfaces
na serwerze gdzie zainstalowany jest panel ProxmoX. Łączymy się z SFTP używając programu np. WinSCP używając adresu IP serwera VPS, nazwy użytkownika root
oraz hasła podanego przy instalacji. Otwórz wspomniany wyżej plik przy użyciu programu np. Notepad++.
Aktualnie plik powinien wyglądać podobnie do tego:
auto lo
iface lo inet loopback
iface ens18 inet manual
auto vmbr0
iface vmbr0 inet static
address xxx.xxx.xxx.xxx
netmask 255.255.255.255
gateway 51.68.154.254
bridge_ports ens18
bridge_stp off
bridge_fd 0
Należy na jego końcu dokleić poniższy tekst:
auto vmbr2
iface vmbr2 inet static
address 192.168.100.1
netmask 255.255.255.0
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 '192.168.100.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE
Ostatecznie plik powinien wyglądać tak:
auto lo
iface lo inet loopback
iface ens18 inet manual
auto vmbr0
iface vmbr0 inet static
address xxx.xxx.xxx.xxx
netmask 255.255.255.255
gateway 51.68.154.254
bridge_ports ens18
bridge_stp off
bridge_fd 0
auto vmbr2
iface vmbr2 inet static
address 192.168.100.1
netmask 255.255.255.0
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 '192.168.100.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE
Teraz zapisujemy plik i łączymy się z SSH tymi samymi danymi co do SFTP. Wpisujemy komendę reboot
i czekamy aż panel uruchomi się ponownie. Przechodzimy ponownie pod adres panelu i logujemy się.
Musimy teraz pobrać szablony systemów operacyjnych. Po lewej stronie wybieramy . Teraz u góry klikamy przycisk
. Wybieramy interesujący nas system operacyjny z listy:
Ja wybiorę Debiana 8. Klikamy przycisk i czekamy aż szablon pobierze się. Gdy zobaczysz
możesz zamknąć okno przyciskiem
. Szablon jest już pobrany. Możesz pobrać ich więcej, ale nam na potrzeby poradnika wystarczy tylko Debian 8 :wink:.
Po prawej stronie w górnej części panelu klikamy przycisk . Teraz wpisujemy nazwę naszego kontenera oraz dwukrotnie wpisujemy hasło którym chcemy logować się do konta root. Klikamy przycisk
.
Teraz wybieramy jeden z pobranych wcześniej szablonów i znów klikamy przycisk
Wybieramy rozmiar dysku dla naszego kontenera - nam wystarczy 5GB, klikamy przycisk
Wybieramy ilość rdzeni dla naszego kontenera i klikamy przycisk
Wybieramy ilość ramu oraz swapu dla naszego kontenera i klikamy przycisk
Uwaga! Pamiętaj aby zostawić przynajmniej 512MB ramu dla hosta!
W kolejnym kroku zmieniamy Bridge na vmbr2
W polu IPv4/CIDR
wpisujemy 192.168.100.x/24
gdzie x
to liczba 3 lub większa - każdy kontener musi mieć inną liczbę, zapamiętaj ją ponieważ będzie potrzeba do przydzielania portów :smile:
W polu Gateway (IPv4)
wpisujemy 192.168.100.1
Resztę ustawień zostawiamy domyślnie i klikamy przycisk
W kolejnym kroku nic nie wpisujemy - klikamy przycisk
Teraz widzimy podsumowanie informacji o naszym kontenerze - jeżeli wszystko się zgadza to zaznaczamy checkboxa i klikamy przycisk
Widzimy napis czyli wszystko poszło OK :smile:
Zamykamy okienko klikając przycisk
Teraz w zakładce sprawdzamy czy nasz kontener działa
Jeżeli widzisz napis running
to jest uruchomiony :slight_smile:
Teraz ponownie logujemy się na SSH hosta używając danych logowania do panelu
Aktualizujemy repozytoria:
apt-get update
(Jeżeli zobaczysz w konsoli takie napisy: E: Failed to fetch https://enterprise.proxmox.com/debian/pve/dists/stretch/pve-enterprise/binary-amd64/Packages 401 Unauthorized
to możesz je zignorować)
Instalujemy narzędzie pozwalające zachować reguły iptables nawet po restarcie serwera:
apt-get -y install iptables-persistent
Wybieramy Yes
i potwierdzamy enterem
Wybieramy No
i potweirdzamy enterem
Dodajemy reguły umożliwiające komunikację z kontenerami:
iptables -A POSTROUTING -s 192.168.100.0/24 -o vmbr0 -j MASQUERADE -t nat
iptables -A POSTROUTING -s 192.168.100.0/24 -o vmbr0 -j SNAT --to-source X -t nat
W drugiej komendzie należy wpisać adres IP serwera VPS w miejsciu X
Komenda umożliwiająca przydzielenie portu:
iptables -A PREROUTING -i vmbr0 -p X1 -m X2 --dport X3 -j DNAT --to-destination 192.168.100.X4:X5 -t nat
X1 = udp lub tcp małymi literami
X2 = to samo co X1
X3 = port który chcemy przydzielić
X4 = liczba podana przy konfiguracji sieci podczas tworzenia kontenera
X5 = port który chcemy przekierować
Przykład:
iptables -A PREROUTING -i vmbr0 -p tcp -m tcp --dport 44 -j DNAT --to-destination 192.168.100.3:22 -t nat
Ta komenda przekieruje serwer SSH z portu 22 na port 44 :smile:
Po ustawieniu wszystkiego zapisujemy reguły tak aby nie zresetowały się po restarcie:
iptables-save > /etc/iptables/rules.v4
Przechodzimy do zakładki i klikamy dwukrotnie na
. Zaznaczamy ptaszka i klikamy przycisk
Klikamy dwukrotnie na . W polu
Start/Shutdown order
wpisujemy jako który w kolejności ma uruchomić się kontener. Pole Startup delay
przy pierwszym kontenerze zostawiamy puste, ale przy następnych zawsze wpisujemy liczbę o 15 większą, czyli przy drugim będzie to 15 a przy trzecim 30. Pole Shutdown timeout
zawsze zostawiamy puste.
Dziękuję @liamdj23 za pożyczenie serwera VPS do napisania poradnika :heart:
Miłego korzystania z kontenerów! :smile:
Użyte strony:
- https://www.hungred.com/how-to/setup-lxc-nat-proxmox/
DBanaszewski | 2019-01-21 18:29:31 UTC | #2
Poradnik bardzo fajny, sam musiałem kiedyś chodzić po stronach i czytać jak to skleić, a teraz już wiem gdzie trzeba się udać :slight_smile:
SystemZ | 2019-01-21 18:29:35 UTC | #3
Bardzo dokładny poradnik, brawo :slight_smile:
Proxcepcja jak najbardziej zadziała.
O ile pamiętam da się zainstalować Proxmoxa korzystając z repo i instalując paczki na już zainstalowanym Debianie pomijając kroki związane z instalacją systemu z .iso
bopke | 2019-01-21 18:34:27 UTC | #4
Kawał dobrej roboty, brawo! =)
Już za miesiąc nowość w ofercie LVLUP - LXC GAME PRO
dominixz | 2019-01-21 18:48:36 UTC | #5
Poradnik przejrzyście napisany i w zrozumiały sposób. Na pewno mi się przyda :slight_smile:
liamdj23 | 2019-01-21 18:50:19 UTC | #6
Opłacało się VPSa pożyczyć, gratuluję świetnego poradnika! :heart:
Kevin94 | 2019-01-23 06:45:42 UTC | #7
zainstalowałem na debian 9 stretch z https://pve.proxmox.com/wiki/InstallProxmoxVEonDebian_Stretch
tylko w /etc/network/interfaces
mam
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto eth0
iface eth0 inet dhcp
Podpowiedział byś mi jak to uzupełnić ? xd bo moja niewiedza nie pozwala mi na skonfigurowanie tego :p
liamdj23 | 2019-01-22 23:04:10 UTC | #8
Musisz uzupełnić danymi z poradnika zgodnie z tym co masz napisane w panelu lvlup
Kevin94 | 2019-01-22 23:23:43 UTC | #9
[quote=”KMatuszak, post:1, topic:9819”]
address xxx.xxx.xxx.xxx netmask 255.255.255.255 gateway 51.68.154.254
[/quote]
wpisać to tak jak podałeś ?
address xxx.xxx.xxx.xxx
netmask 255.255.255.255
gateway 51.68.154.254
KMatuszak | 2019-01-22 23:26:35 UTC | #10
Pamiętaj aby wszędzie zastąpić xxx.xxx.xxx.xxx
adresem swojego serwera VPS oraz wpisać prawidłowy gateway
Kevin94 | 2019-01-23 14:23:24 UTC | #11
ok czyli w moim przypadku gateway to będzie
10.156.0.1
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.156.0.1 0.0.0.0 UG 0 0 0 eth0
10.156.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 vmbr2
a w polu addres to ip zewnętrzne kvm ? czy wewnętrzne ? czy co xd
przepraszam że tak dopytuję ale pusty jestem w tym…
liamdj23 | 2019-01-23 13:27:05 UTC | #12
w polu address wpisz IP przez które łączysz się z VPS np. przez SSH
KMatuszak | 2019-01-23 14:35:00 UTC | #13
Nie sądzę aby taki był gateway, masz go w panelu tam gdzie konfiguracja sieci w czterech ostatnich linijkach
SystemZ | 2019-01-24 12:47:40 UTC | #14
Trochę źle doradzacie.
Jeśli ktoś ma ustawione DHCP to jest najlepsza konfiguracja bo jest odporna na przenoszenie węzłami, gdyż wtedy brama może ulec zmianie.
Wystarczy ustawić dhcp na bridge i będzie ok, w przeciwnym razie przy ewentualnych pracach technicznych odetnie neta od VPS.
Sugerowałbym zmodyfikować poradnik aby uwzględniał DHCP, mniej roboty i mniej awaryjne.
SP24 | 2019-01-25 06:47:28 UTC | #15
A jeśli mam vpsa od DigitalOcean i na nim chcę zrobić kilka kontenerów, to ten poradnik też będzie odpowiedni?
KMatuszak | 2019-01-25 11:03:36 UTC | #16
VPS musi mieć wirtualizację KVM oraz system Debian 9
DoreK | 2019-01-25 11:16:57 UTC | #17
[quote=”KMatuszak, post:16, topic:9819”]
oraz system Debian 9
[/quote]
to na ubuntu nie da się? ;] ;]
KMatuszak | 2019-01-25 11:53:37 UTC | #18
Z tego co mi wiadomo to nie.
SystemZ | 2019-01-25 13:56:18 UTC | #19
[quote=”DoreK, post:17, topic:9819”]
to na ubuntu nie da się? ;] ;]
[/quote]
Da się ale bez Proxmoxa.
Proxmox jest oparty o Debiana.
Na Ubuntu polecam LXD czyli w zasadzie LXC na sterydach.
Proxmox z tego co się orientuje nawet część fixów do LXC bierze właśnie z Ubuntu LXD.
kubus | 2019-02-07 14:32:00 UTC | #20
Zainstalowałem według poradnika, nic nie ruszałem dalej ani stawiania LXC i wchodzę w Disks > LVM i widzę, że jest zajęte już 88 procent i jest wolne 3GB. To ma tak być?(mam 25GB dysku)
liamdj23 | 2019-02-07 14:53:52 UTC | #21
Sprawdzasz w panelu proxmox lvlup czy w zainstalowanym na vps?
kubus | 2019-02-07 14:54:20 UTC | #22
oczywiście, że na zainstalowanym na VPS.
liamdj23 | 2019-02-07 14:58:46 UTC | #23
Powinieneś mieć dwa dyski: local i local-lvm, pokaż zrzut ekranu
kubus | 2019-02-07 15:01:23 UTC | #24
Posiadam te dwa.
liamdj23 | 2019-02-07 15:10:51 UTC | #25
Według tego zrzutu ekranu masz zajęte mniej niż
[quote=”kubus, post:20, topic:9819”]
88 procent
[/quote]
Czyli wszystko jest okej :thinking:
KMatuszak | 2019-04-19 14:53:20 UTC | #26
Jak zainstalować certyfikat SSL:
https://forum.lvlup.pro/t/zabezpieczanie-panelu-proxmox-darmowym-certyfikatem-ssl/10735?u=nosacz
Damian28w | 2019-04-20 13:31:53 UTC | #27
Witam,
Da radę by każdy z tych VPS “ów miał swoje indywidualne IP ?
Bo np na innym hostingu jest mozliwość wykupienia sobie adresu IP i sewrera KVM za dość fajne pieniadze stąd moje pytanko :)
Timo | 2019-04-20 13:39:33 UTC | #28
Tak, można przydzielić własne IP do każdego kontenera.
Musisz jedynie wykupić te adresy dla swojego pakietu i możesz podłączać.
Aby dokupić adresy IP na lvlup, napisz ticket ;)
Damian28w | 2019-04-20 13:57:03 UTC | #29
A orientujesz się może czy cena za te IP jest miesieczna czy tak jak na innym hostingu jednorazowa ?
eSuu | 2019-04-20 14:17:28 UTC | #30
Jest to koszt 10zł/msc za sztukę.
KMatuszak | 2019-12-08 15:48:09 UTC | #31
Jeśli nie chcesz się bawić w sklejanie komend do przydzielania portów to możesz skorzystać z tego narzędzia: https://iptables.liamdj23.ovh/ :slight_smile:
KMatuszak | 2019-07-30 15:13:50 UTC | #32
Przetestowałem poradnik na najnowszym Proxmox’ie 6.0 bazującym na Debianie 10, nic się nie zmieniło w konfiguracji :slight_smile:
KMatuszak | 2019-12-08 15:44:23 UTC | #33
[quote=”KMatuszak, post:31, topic:9819”]
Jeśli nie chcesz się bawić w sklejanie komend do przydzielania portów to możesz skorzystać z tego narzędzia: https://iptables.liamxdev.ovh
[/quote]
Nie mogę edytować tamtego posta więc napiszę w nowym, @liamdj23 zmienił domenę i teraz link jest taki: https://iptables.liamdj23.ovh/ :slightlysmilingface:
bopke | 2019-12-08 15:48:20 UTC | #34
Wyedytowałem żeby był aktualny link =)
anon85678085 | 2019-12-21 18:18:21 UTC | #35
Polecam, skorzystałem działa na ProXmox 6. :ok_hand:
Jellly | 2020-02-04 19:44:12 UTC | #36
Da się jakoś przy pomocy iptables z góry przydzielić zakres portów? Średnio mi się widzi wpisywać tak regułkę 20 razy.
Timo | 2020-02-04 19:56:01 UTC | #37
Zakres możesz podać bodajże po dwukropku, na przykład 8080:8084
.
Mespi | 2020-07-26 04:17:54 UTC | #38
Przeniesione do https://forum.lvlup.pro/t/bledy-podczas-laczenia-sie-z-kontenerem-lxc-poprzez-ssh/15518
Mespi | 2020-07-26 04:17:36 UTC | #39
Przeniesione do https://forum.lvlup.pro/t/bledy-podczas-laczenia-sie-z-kontenerem-lxc-poprzez-ssh/15518