Podążaj za instrukcjami w poniższym filmie, aby zobaczyć, jak zainstalować naszą stronę jako aplikację internetową na ekranie głównym swojego urządzenia.
Informacja: Ta funkcja może nie być dostępna w niektórych przeglądarkach.
Używasz przestarzałej przeglądarki. Może ona nie wyświetlać poprawnie tej lub innych stron internetowych. Powinieneś zaktualizować swoją przeglądarkę lub użyć alternatywnej przeglądarki.
Jestem nowy w kontenery na QNAP i trochę utknąłem. Używam QNAP-a jako serwera bazodanowego i trzymam na nim MS SQL 19. Do tej pory baza przeznaczona była do pracy jedynie w sieci wewnętrznej.
Niedawno otworzyliśmy nowy oddział i chciałbym wystawić ta bazę na zewnątrz aby łączył się z nią nowy oddział. Mamy stałe IP, ustawione przekierowanie w routerze, do samego QNAP-a mogę się dostać z zewnątrz ale do bazy już nie. Kontener z bazą ma ustawiony interfejs sieciowy jako bridge. Wszystkie opisy i instrukcje do jakich dotarłem wskazują, że powinienem wybrać kontener, kliknąć na opcje, znaleźć sekcje przekierowania portów i wpisać co trzeba ale u mnie takiej sekcji nigdzie nie ma. Ani pod trybikiem ani gdy próbuję przebudować kontener.
Co robię źle? Jak poprawić konfigurację aby osiągnąć to co planuje?
Ogarnąłem temat za pomocą Qbelt. Opaliłem i skonfigurowałem serwer na QNAP. Dodałem dedykowanego użytkownika tylko z uprawnieniami do qbelt.
Wybrałem "losowy" port dla VPN i przekierowałem go na routerze. Jak połączę klienta w oddziale a w konfiguracji subiekta podaje poprostu IP bazy ustawione w Docker i śmiga
Dzięki za sugestie i za pomoc.
Krótko: problem najpewniej wynika z tego, że w Twojej konfiguracji Container Station nie ma automatycznego „przekierowania portów” na poziomie GUI dla istniejącego kontenera w trybie bridge, lub kontener nie ma opublikowanego portu. Masz trzy bezpieczne opcje do wystawienia MS SQL na zewnątrz (od najbezpieczniejszej): 1) VPN/Reverse‑proxy/FAQ SSH tunnel (zalecane), 2) przypisanie kontenera do sieci host (host network) lub podłączenie go do sieci LAN przez Network & Virtual Switch, 3) wystawienie portu TCP przez publikację portu kontenera (docker -p) i przekierowanie na routerze. Poniżej pełne wyjaśnienie i konkretne kroki dla każdej opcji + kontrole, które musisz wykonać.
Bezpieczeństwo (ważne)
Otwarcie portu SQL (domyślnie 1433) wprost do internetu jest ryzykowne. Zdecydowanie rozważ VPN, SSL/TLS lub FAQ SSH tunnel między oddziałami. Jeśli musisz otworzyć port, użyj zapory (QuFirewall/Router) ograniczającej źródłowe IP, silnego hasła SA i monitoringu.
Przed zmianami zrób backup bazy oraz plików konfiguracyjnych kontenera.
Sprawdzenia wstępne (co zrobić od razu)
1. Sprawdź, czy kontener rzeczywiście nasłuchuje na 0.0.0.0:1433 wewnątrz kontenera (nie tylko 127.0.0.1). Możesz to sprawdzić logami SQL lub poleceniem netstat/lsof wewnątrz kontenera (jeśli masz FAQ shell).
2. Sprawdź, czy kontener ma mapowanie portu host->container. W Container Station lub przez docker inspect szukaj publikacji portów (PublishedPorts).
3. Na QNAP sprawdź Network & Virtual Switch (Advanced mode) jakie segmenty sieciowe są używane przez Container Station i czy są dodane do listy dozwolonych w Panel sterowania > System > Zabezpieczenia > Lista Dozwolone/Zablokowane (patrz fragment 3). Jeśli stosujesz QuFirewall, dodaj tam odpowiednie reguły.
Opcja A — NAJBEZPIECZNIEJ: VPN / tunel
Utwórz VPN między oddziałami lub skonfiguruj na QNAP QuRouter/QNE lub inny VPN (site-to-site lub klient). Dzięki temu nie wystawiasz SQL do internetu.
Po uruchomieniu VPN klienci zdalnego oddziału łączą się tak, jakby byli w LAN — nie trzeba zmieniać kontenera (bridge działa).
Opcja B — podłączenie kontenera do sieci host / LAN (jeśli chcesz prosty dostęp z WAN na host IP)
Kiedy publikacja portów w Container Station GUI nie jest dostępna, możesz:
1. Przy tworzeniu nowego kontenera w Container Station wybrać tryb sieciowy „host” (host network) — wtedy kontener używa IP NAS i port 1433 będzie dostępny na IP QNAP (pod warunkiem, że nic innego nie zajmuje tego portu).
- Uwaga: w trybie host kontener nie izoluje interfejsu sieciowego.
2. Alternatywnie w Network & Virtual Switch podłącz kontener do segmentu sieci, który ma bezpośredni dostęp do LAN (jeśli QNAP ma Virtual Switch i możesz przypisać kontenerowi interfejs w tej samej podsieci co router).
3. Po przełączeniu upewnij się, że SQL nasłuchuje na właściwym interfejsie.
Opcja C — publikacja portu (typowe „przekierowanie portów” kontenera)
Jeżeli chcesz utrzymać bridge i opublikować port:
1. Usuń istniejący kontener (upewnij się, że dane bazy są w woluminie zmapowanym na /share, czyli nie tracisz danych) i stwórz nowy z publikacją portu.
2. W Container Station przy tworzeniu kontenera w zaawansowanych ustawieniach wskaż port kontenera 1433 i zmapuj na port hosta (np. host:1433 -> container:1433) albo na inny port hosta (np. 11433 -> 1433) jeśli 1433 jest zajęty.
- Fragment oficjalny: Container Station ma pole „Domyślny port adresu URL”, które dotyczy dostępu przez generowany URL; dla portów serwisów użyj mapowania portów (publishing).
3. Jeśli GUI Container Station u Ciebie nie pokazuje sekcji przekierowania portów, zrób to przez docker CLI (jeśli masz dostęp) albo użyj docker-compose. Przykład docker run (informacyjnie):
(Uwaga: w Container Station nie wpisuj tego dosłownie bez adaptacji; to przykład jak działa publikacja portu.)
4. Na routerze ustaw przekierowanie portu WAN (statyczne IP) do adresu IP QNAP i portu hosta, który opublikowałeś. Sprawdź reguły zapory QNAP/QuFirewall (i listę Allow/Deny) aby nie blokować tego ruchu.
Dodatkowe kontrole sieciowe (częste przyczyny „mogę dostać się do QNAP, ale nie do kontenera”)
QuFirewall/Lista Dozwolone/Zablokowane: upewnij się, że nie ograniczasz ruchu między interfejsami/segmentami kontenerów (patrz fragment 3 i sugerowane zakresy IP).
Upewnij się, że DNS/gateway NAS są poprawnie skonfigurowane (fragment 4).
Jeśli Container Station tworzy własne segmenty (np. 10.x.x.x), dodaj je do listy dozwolonych.
Potwierdź, że router przekierowuje na adres IP QNAP (nie na adres kontenera), czyli WAN -> QNAP_IP:host_port.
Diagnostyka krok po kroku (sugerowane polecenia/akcje)
1. Na QNAP (Container Station) sprawdź konfigurację kontenera — czy ma opublikowane porty (PublishedPorts) i czy nasłuchuje.
2. Z wnętrza QNAP spróbuj telnet/np. nc na 127.0.0.1:1433 i na IP_QNAP:1433, by sprawdzić dostęp lokalny.
3. Z zewnątrz (np. z internetu) sprawdź (np. nmap/telnet) na WAN_IP:1433 — czy pakiety docierają. Jeśli nie, sprawdź router (port forwarding) i zapory.
4. Sprawdź logi SQL i kontenera (Container Station logs) czy usługa poprawnie wystartowała.
Kiedy GUI Container Station „nie pokazuje” opcji:
Może to być ograniczenie wersji Container Station lub sposób, w jaki kontener został stworzony (np. utworzony z Docker Compose, z innymi ustawieniami). W takim wypadku użyj docker run / docker-compose lub usuń i utwórz ponownie kontener w GUI z mapowaniem portów.
Sprawdź dokumentację Container Station (fragment 2) — jest tam opis „Domyślnego portu adresu URL” i jak dodać domyślny port do istniejącego kontenera; ale pamiętaj: to dotyczy generowanego URL, a nie zawsze pełnego mapowania portów host->container.
Ostateczne rekomendacje
Najbezpieczniej: skonfiguruj VPN/site-to-site między oddziałami i nie wystawiaj SQL bezpośrednio do internetu.
Jeśli musisz udostępnić port: opublikuj port kontenera na hoście (docker -p lub przez Container Station podczas tworzenia kontenera), przekieruj port na routerze do IP QNAP i upewnij się, że QuFirewall/Allow list nie blokuje ruchu oraz że SQL nasłuchuje na 0.0.0.0.
Zawsze użyj silnego hasła SA, ogranicz źródłowe IP, monitoruj dostęp i rób backupy.
Podsumowanie kroków do wykonania natychmiast
1. Sprawdź, czy SQL nasłuchuje na 0.0.0.0:1433 wewnątrz kontenera.
2. Jeśli brak mapowania portu: utwórz/odtwórz kontener z mapowaniem host_port:1433 (albo użyj trybu host).
3. Na routerze ustaw przekierowanie WAN_IP:host_port -> IP_QNAP:host_port.
4. Dodaj sieci kontenerów do listy dozwolonych w Panel sterowania > System > Zabezpieczenia > Lista Dozwolone/Zablokowane i sprawdź QuFirewall.
5. Rozważ VPN zamiast bezpośredniego otwierania portu.
Jeśli chcesz, by inni pomogli na forum — w nowym poście dołącz: model QNAP i wersję Container Station, jak kontener został uruchomiony (GUI czy docker run/docker-compose), wynik docker inspect (PublishedPorts + NetworkSettings), oraz wynik próby z zewnątrz (np. telnet WAN_IP host_port). Pamiętaj jednak, że tutaj podane kroki wystarczą, żeby poprawnie opublikować bazę lub przełączyć na bezpieczniejsze rozwiązanie VPN.
Ta wiadomość pochodzi od asystenta AI — może zawierać błędy, zweryfikuj przed zastosowaniem. Oceń ją, głosując pod postem: ▲ pomocna lub ▼ nieprzydatna.
Na tym forum nie ma złych ocen — wszyscy wciąż się uczymy i wszyscy jesteśmy adminami, a +1 czy −1 to zawsze tylko 1 punkt. Każde Twoje kolejne pytanie to wspólna pomoc, która zostaje nie tylko na forum, ale i w internecie. Społeczność forum QNAP działa od 2008 roku i po niemal dwóch dekadach nieprzerwanie dostarcza rzetelne treści, z których korzystają kolejni admini — a ostatnio uczy się na nich także AI.
Nie udostępnia się portu SQL do publicznego internetu KROPKA - bo za tydzień zobaczymy posta - jak naprawić bazę po włamaniu albo coś innego nie fajnego.
Sztuczniak dobrze pisze - VPN jest najlepszym rozwiązaniem.
Czy bedzie to qnapowy vpn czy tailscale - będzie to ładnie działać.
Bez informacji o tym jak kontenter został ustawiony - możemy sobie pogdybać.
zrzuć zapis konfiguracji za pomocą SSHa do pliku: docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/red5d/docker-autocompose $(docker ps -aq) > /share/Public/containers.yml
plik bedzie leżał w udziale Public Qnapa, wytnij z niego hasła i inne sekrety i wrzuć na forum.
Jeśli nie masz innej opcji to zrób to udostępnienie ale z szyfrowaniem ruchu już na poziomie bazy - Encrypt Connections by Importing a Certificate - SQL Server - zakłada się że program docelowy wspiera to i wiesz jak zarządzać takimi certyfikatami.
Dzięki za informacje, zacznę o sprawdzenia opcji z VPN, trochę obawiałem się wydajności takiego rozwiania ale skoro mówicie, że będzie ok to sprawdzę jak to działa.
Którego dostawce VPS polecanie? OpenVPN, Qbel?
EDIT: Jeszcze jedno pytanie, jak się ma postawienie VPN do sieci lokalnej? Np. w nowym biurze też mam NAS-a czy nie stracę do niego dostępu jak odpale klienta VPN?
Wbrew SiewcaRyżu opinii bo oczywiście na rację. Chciałbym tylko zasugerować że jeśli oddział który będzie się łączył dysponuje stałym IP, to nie widzę przeciwwskazań pod warunkiem że na firewall zezwolisz na dostęp z konkretnego IP. Najmniej pracy, prawie najbardziej bezpieczne, chyba że ktoś miałby robić Ci spoofing sieci lub zwyczajnie się do niej włamać. Ale to wtedy nie bój się więcej usług Ci ucierpi.
1. nie widać załącznika
2. Adresacja sieci VPN nie może się nakładać na istniejace sieci , wiec jak w centrali masz 192.168.1.X, a w oddziale 192.168.2.x , to VPN niemoże ustawionej żadnej z takich adresacji (zwykle daje się 10.x.x.x)
Wbrew SiewcaRyżu opinii bo oczywiście na rację. Chciałbym tylko zasugerować że jeśli oddział który będzie się łączył dysponuje stałym IP, to nie widzę przeciwwskazań pod warunkiem że na firewall zezwolisz na dostęp z konkretnego IP. Najmniej pracy, prawie najbardziej bezpieczne, chyba że ktoś miałby robić Ci spoofing sieci lub zwyczajnie się do niej włamać. Ale to wtedy nie bój się więcej usług Ci ucierpi.
U mnie obecnie wygląda to tak, że w siedzibie mam stałe IP, "zwykły" router i sieć lokalną w której jest QNAP jako serwer bazodanowy i komputery pracowników. Teraz mam nowy oddział i chciałbym aby łączył się serwera znajdującego się w siedzibie. Oddział nie ma stałego IP i nie da rady go uzyskać. No i pytanie brzmi jak to najrozsądniej zrobić. Chciałem po prostu wystawić bazę po jakimś losowym porcie (aby nie na domyślnym). Ale ok, nie jest to najbezpieczniejsza opcja.
Propozycja z VPN wydaje się być (dla mnie) najprostsza ale, w oddziale, muszą mieć dostęp do lokalnego NAS czy da się to pogodzić?
A pomijając wszystko powyżej, narazie potrafie jedynie postaiwć baze lokalnie i nic wiecej, żadne instrukcje jakie znalazłem nie odpowadają temu co widzię u siebie w dostępnej konfiguracji CS.
1. nie widać załącznika
2. Adresacja sieci VPN nie może się nakładać na istniejace sieci , wiec jak w centrali masz 192.168.1.X, a w oddziale 192.168.2.x , to VPN niemoże ustawionej żadnej z takich adresacji (zwykle daje się 10.x.x.x)
ja poleciałbym po kosztach:
instalujesz sobie tailscale (koszt zero) na serwerze i na końcówkach
ustawiasz program żeby gadał za pomocą adresu IP taliscale na qnapie i poszedł na zasłużone piwo ;p
czyta się to tak:
dla każdego fizycznego interfejsu sieciowego Q (0.0.0.0)
przydziel losowy port dla danego interfejsu
a źródłem jest port 1433
w protokole TCP
możesz to potwierdzić robią "docker ps" - w miejscu strzałki masz inny NR niż 1433
Połączono posty:
musisz ustalić na sztywno port dla każej bazy w kontenerze
poprawić konfiguracje w swojej aplikacji
i dopiero na końcu babrać się z VPNem czy przekierowaniem portów
wszytko fajnie tylko właśnie z tym walczę
Czy da rade zrobić to z interfejsu CS?
insert_sql to moja baza księgowa, vio_sql to baza dla nowego oddziały (tak ma to być osobny serwer), oba serwery mają osobny adres lokalny
vio_sql_19-dup-2 to była baza na testy ale pousuwałem zbędne instancje żeby nic się nie mieszało.
co ciekawe, docker ps, dla obu instancji baz, pokazuje to samo - brak konfiguracji portów, obie bazy na bridge działają i lokalnie, spokojnie mogę na nich pracować.
przy połączeniu bridge, nie ma możliwości konfiguracji portów zupłenie.
Przy przebudowie czy duplikowaniu kontenera też nie ma takiej opcji :/
Dobra ale skoro one sobie "nie przeszkadzają" lokalnie to VPN powinien załatwić temat?
Prawidłowo. Bo bridge to tak jakbyś wpiął komputer w sieć. A to oznacza że są wyeksponowane. Tym samym qufirewall już ich nie złapie. To tak jakby były w sieci. To też może oznaczać (nie wiem, trzeba sprawdzić) czy w moment kiedy są zmostkowane zostaną przepuszczone przez tailscale czy inny VPN. (Brak testów)
więc sprawa staje się jeszcze prostsza - w tailscale musisz udostępnić swoją sieć centralną do vpna (subnetrouter)
Kod:
Enable SSH on your QNAP NAS via the Control Panel > Network & File Services > Telnet / SSH, then connect using an SSH client (e.g., PuTTY or Terminal) using your admin credentials.
Determine the path to the Tailscale executable. It is generally located in your active volume path (such as /share/MD0_DATA/.qpkg/tailscale/bin/tailscale).
Run the CLI command to advertise your local subnet. Replace 192.168.X.0/24 with your actual local LAN subnet range:/share/MD0_DATA/.qpkg/tailscale/bin/tailscale up --advertise-routes=192.168.X.0/24
Log in to your Tailscale Admin Console.
Go to the Machines page and locate your QNAP device.
Select the three dots (...) icon next to the QNAP device and choose Edit route settings.
Check the IP ranges under Subnet routes to approve them, and then click Save
a potem każdy klient tailscale'a może skorzystać z takiego połączenia po gołych adresach IP - robi się dużej przejrzyściej.
Ogarnąłem temat za pomocą Qbelt. Opaliłem i skonfigurowałem serwer na QNAP. Dodałem dedykowanego użytkownika tylko z uprawnieniami do qbelt.
Wybrałem "losowy" port dla VPN i przekierowałem go na routerze. Jak połączę klienta w oddziale a w konfiguracji subiekta podaje poprostu IP bazy ustawione w Docker i śmiga
Dzięki za sugestie i za pomoc.