

How to install docker on windows server a step by step guide? In short, you’ll learn how to install Docker on Windows Server, configure Docker Engine, and start running containers quickly. Quick facts: Docker Desktop isn’t available on Windows Server, so we’ll use Docker Engine with Windows Server containers and, when appropriate, Linux containers via WSL2 on supported editions. This guide covers everything from prerequisites to post-install validation, with practical tips to avoid common pitfalls.
- Quick start steps
- Check Windows Server version and prerequisites
- Install the Docker Msft repository and Docker Engine
- Configure Docker to run as a service
- Run your first container Windows or Linux
- Optional: enable Windows Server container mode or switch to Linux containers via Hyper-V
- Useful resources unlinked text
Apple Website – apple.com
Artificial Intelligence Wikipedia – en.wikipedia.org/wiki/Artificial_intelligence
Microsoft Docs – docs.microsoft.com
Docker Official Documentation – docs.docker.com
Windows Server – docs.microsoft.com/en-us/windows-server
GitHub – github.com
Understanding the Scenario: Windows Server vs. Windows 10 and Docker Editions
Docker on Windows comes in two main camps: Windows Server containers and Linux containers via a LinuxKit-based backend. On Windows Server, you don’t install Docker Desktop; you install the Docker Engine directly and manage Windows Server containers or use a LinuxKit-based engine for Linux containers. This distinction matters for performance, compatibility, and security updates.
- Windows Server versions commonly used with Docker Engine:
- Windows Server 2016 1607 — initial support for Windows Server containers
- Windows Server 2019 — improved integration and performance
- Windows Server 2022 — latest features, better security, and improved WSL2 support for Linux containers, with caveats
- Linux containers on Windows Server: you can enable with the experimental LCOW Linux containers on Windows which is deprecated in favor of WSL2 on newer setups or run Linux containers inside a Linux VM.
Pro tip: Decide early if you need Windows Server containers only, or if you also plan to run Linux containers. Your choice affects the Docker Engine installation steps and configuration.
Prerequisites and Planning
Before pulling the trigger, make sure you have:
- A supported Windows Server edition 2016/2019/2022 with latest cumulative updates
- Administrator privileges on the server
- Internet access for downloading packages
- Sufficient CPU, RAM, and disk space at least 4 GB RAM for basic use; more for production workloads
- PowerShell 5.1 or newer
- If you plan to run Linux containers, Federation with Hyper-V or WSL2 setup may be needed
Why these prerequisites matter: Docker Engine requires certain kernel features and Windows features to be enabled, otherwise installation will fail or containers won’t run reliably.
Step 1: Prepare the Server
- Update Windows to the latest patches:
- Open PowerShell as Administrator
- Run: Install-Module -Name PSWindowsUpdate; Get-WindowsUpdate -AcceptAll -Install
- Enable required Windows features for containers:
- For Windows Server 2016/2019: Enable-WindowsOptionalFeature -Online -FeatureName $”Microsoft-HedWsd”, “Containers” is not the exact names here; the practical method is:
- Install-WindowsFeature -Name containers -IncludeManagementTools
- Optional: If you plan to use Hyper-V for virtualization: Install-WindowsFeature -Name Hyper-V -IncludeManagementTools
- Restart the server after feature installation:
- Restart-Computer -Force
Note: On Windows Server 2022, you might still enable containers and Hyper-V if you plan to run Linux containers via a VM. How to insert gridview data in sql server 2026
Step 2: Install Docker Engine on Windows Server
- The official route is to install Docker Engine via the DockerMsftProvider from the PowerShell Gallery.
Commands:
- Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
- Install-Package -Name docker -ProviderName DockerMsftProvider -Force
- Restart-Computer -Force
After restart, verify Docker version:
- docker –version
If you don’t have the Docker module, ensure you’re running PowerShell as Administrator and that you can access the PSGallery.
Alternative: Use the installed package from the Docker official repository:
- Set-ExecutionPolicy AllSigned -Scope CurrentUser
- Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
- Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
- Install-Package Docker -ProviderName DockerMsftProvider -Force
- Restart-Computer -Force
Step 3: Start and Enable the Docker Service
Docker should start automatically after installation, but you can verify and ensure it runs on boot: How to install ffmpeg on windows server easily: Setup, PATH, and Automation 2026
- Start-Service docker
- Set-Service -Name docker -StartupType Automatic
Check service status:
- Get-Service docker
If there are errors, consult the event log:
- Get-EventLog -LogName Application -Newest 20 | Where-Object { $_.Source -eq “Docker” }
Step 4: Run Your First Container
Decide between Windows and Linux containers:
- Windows containers:
- Docker runs Windows Server Core or Nano Server base images
- Example: docker run –isolation=process mcr.microsoft.com/windows/servercore:ltsc2019 cmd /c “echo Hello from Windows container”
- Linux containers needs LCOW/WSL2 or a Linux VM in Windows Server 2019/2022:
- Windows Server 2019/2022 supports Linux containers via WSL2 with proper setup
- Ensure the container host supports Linux containers
- Example: docker run -it –rm alpine sh
Practical steps:
- docker version
- docker info
- docker run –name test-hello-world –rm mcr.microsoft.com/windows/servercore:ltsc2019 cmd /c echo Hello World
- If using Linux containers: docker run -it –rm alpine sh
Step 5: Configure Docker to Start with System and Improve Security
-
Set a non-default daemon.json to tune logging, storage, and networking: How to Install Certificate in Windows Server 2008 R2 Step by Step Guide: SSL, CSR, IIS 2026
- Create or edit C:\ProgramData\Docker\config\daemon.json
- Example content:
{
“log-driver”: “json-file”,
“log-opts”: { “max-size”: “10m”, “max-file”: “3” },
“storage-driver”: “windowsfilter”
}
-
Enable long-running container logs to avoid disk bloat:
- Consider rotating logs and setting a proper log driver
-
Network considerations:
- Ensure firewalls allow required ports: 2375 for unsecured Docker daemon not recommended, 2376 for TLS, 443 for registry if needed
-
TLS and authentication:
- For production, configure TLS-secured Docker daemon with client certificates and a private registry
Step 6: Optional: Enable Linux Containers on Windows Server Advanced
- Using WSL2 is the recommended path for Linux containers on Windows Server 2022:
- Install-WindowsFeature -Name Wsldism
- Follow Microsoft docs for enabling WSL2 on Windows Server
- Start Linux containers with Docker Desktop is not available on Windows Server, so you’ll rely on a Linux VM or WSL2 backend
- Alternative: Run Linux containers in a Hyper-V VM and point Docker to the VM
How to decide:
- If your workload is Windows-only, skip Linux container setup
- If you need Linux containers, plan a small Linux VM or utilize WSL2 with proper configuration
Step 7: Best Practices and Maintenance
- Regularly update Docker Engine to the latest stable release
- Create a proper backup strategy for Docker volumes and images
- Clean up unused images and volumes to reclaim space:
- docker image prune -a
- docker volume prune
- Monitor container health and resource usage:
- Use docker stats to monitor running containers
- Consider a lightweight monitoring tool for Windows Server
- Security hygiene:
- Run containers with least privilege
- Limit container capabilities and use read-only mounts where feasible
- Keep the host OS patched and use security baselines
Step 8: Common Troubleshooting Scenarios
- Docker won’t start after install:
- Check event logs and ensure Windows features are enabled
- Ensure Hyper-V and Containers features are enabled if needed
- TLS/SSL issues when connecting to a registry:
- Verify certificates and profile settings
- Networking issues between containers:
- Confirm Windows Firewall rules and NAT configuration
- Persistent storage problems:
- Check storage driver compatibility and available disk space
- High CPU or memory usage:
- Inspect running containers with docker stats and scale accordingly
Frequently Asked Scenarios and Tips
- Should I install Docker Desktop on Windows Server? No, Docker Desktop is not intended for Windows Server; use Docker Engine installed via the package manager.
- Can I run Windows and Linux containers on the same host? It’s possible with appropriate configuration, but Linux containers usually run inside a VM or WSL2 environment when using Server editions that support Linux containers.
- Do I need Hyper-V to run Docker? Not always. For Linux containers, Hyper-V or WSL2 is typically required by the Linux container backend; Windows containers don’t need Hyper-V if using the Windows backend.
- How do I remove Docker from Windows Server? Use Uninstall-Package docker and delete related config directories, then restart.
Data and statistics for authority and SEO How to insert default value in stored procedure sql server 2026
- Docker adoption in enterprise environments continues to grow, with a majority of organizations reporting container-based workflows across on-premises and cloud. Container orchestration via Kubernetes remains a top driver for adoption.
- Windows Server remains a critical platform for enterprise-grade workloads that require Windows-specific runtime environments, and Docker Engine enables consistent packaging for these apps.
Table: Quick comparison of Windows Server container options
| Option | Use Case | Pros | Cons |
|---|---|---|---|
| Windows Server containers | Windows-based apps | Fast startup, native Windows isolation | Limited to Windows-based images |
| Linux containers on Windows Server WSL2/LCOW | Mixed workloads | Access to Linux ecosystem | Additional setup, potential compatibility quirks |
| Hybrid approach VM + Docker | Linux containers on Windows host | Full Linux compatibility | Extra overhead, more management needed |
How to manage Docker images and containers efficiently
- Use tags to manage versions e.g., myimage:1.0.0, myimage:latest
- Prune stale images and containers regularly to save space
- Create a baseline Dockerfile for repeatable builds
- Use multistage builds to keep images lean
- Keep security in mind by scanning images for vulnerabilities
Troubleshooting quick-start checklist
- Is the Docker service running? Check via Get-Service docker
- Are Windows features Containers and optionally Hyper-V enabled? Verify with Get-WindowsFeature
- Are there firewall rules blocking access to the Docker daemon or registry? Review port settings
- Are you using the correct container base images for Windows Server version?
- Is there enough RAM and CPU to run the containers you need?
FAQ Section
Frequently Asked Questions
How do I verify Docker is installed correctly on Windows Server?
Run docker version and docker info in an elevated PowerShell session. You should see the client and server information without errors, and the engine should report the Windows Server platform. How To Index A Column In Sql Server A Step By Step Guide: Indexing, Performance, And Best Practices 2026
Can I install Docker on Windows Server Core?
Yes. Docker Engine runs on Windows Server Core similarly to how it does on full Server installations, but you’ll have a minimal GUI environment, so most interactions happen via PowerShell or CLI tools.
Do I need a Microsoft account to install Docker on Windows Server?
No, the installation via DockerMsftProvider from the PowerShell Gallery doesn’t require a Microsoft account. You just need administrative access to the server and internet access.
How do I switch between Windows and Linux containers on Windows Server?
Windows Server containers are the default for Windows-based images. Linux containers require additional setup WSL2 or a Linux VM because Windows does not natively run Linux containers without a backend.
What is the recommended storage driver for Windows containers?
Windows Server typically uses the windowsfilter storage driver. Ensure you have enough disk space and monitor I/O performance.
How can I secure Docker on Windows Server?
Run with least privilege, enable TLS for daemon access if remote management is required, keep the host OS patched, and minimize exposed daemon ports. Use private registries and image scanning. How to host your own assetto corsa server the ultimate guide: Setup, Private Server, SteamCMD, Plugins & Performance 2026
How do I update Docker Engine on Windows Server?
Use the DockerMsftProvider to install a newer version, then restart the server. Always test in a staging environment before applying updates to production hosts.
Can I run Docker Compose on Windows Server?
Yes, Docker Compose can be run, but you’ll need to install it separately if the version bundled with Docker Engine isn’t available for Windows Server. Use a compatible release that works on Windows Server.
Is there a performance difference between Windows and Linux containers?
Yes. Windows containers share the host kernel with Windows, while Linux containers use a Linux kernel abstraction via WSL2 or a VM. Linux containers often offer a broader ecosystem and sometimes better performance for Linux-native workloads, but Windows containers are optimized for Windows apps.
How to Install Docker on Windows Server a Step by Step Guide for Docker Engine, Windows Server 2019/2022, and Linux Containers
Yes, here’s a step-by-step guide to install Docker on Windows Server. This guide covers prerequisites, installation, testing, running Windows vs Linux containers, production best practices, and troubleshooting. You’ll find practical commands, tips, and real-world notes to help you get Docker up and running on Windows Server quickly. Introduction formats: step-by-step guide, bullets, and quick-reference commands are included for easy reading.
Useful URLs and Resources un clickable text, plain text
– Docker Documentation – docs.docker.com
– Microsoft Windows Server Documentation – docs.microsoft.com/en-us/windows-server
– Docker on Windows Server – docs.docker.com/engine/install/windows/
– Docker Best Practices – docs.docker.com/engine/best-practices/
– Windows Containers Overview – docs.microsoft.com/en-us/virtualization/windowscontainers/about/ How to host your own roblox server a comprehensive guide to private servers, Roblox Studio, Team Create, and hosting tips 2026
Table of contents
– What you’ll need
– Step 1: Prepare Windows Server
– Step 2: Install Docker on Windows Server
– Step 3: Run a test container
– Step 4: Windows vs Linux containers on Windows Server
– Step 5: Best practices for production
– Step 6: Troubleshooting common issues
– Step 7: Security and maintenance
– Frequently Asked Questions
What you’ll need
– A Windows Server 2019 or Windows Server 2022 machine hosts with recent security updates preferred. Windows Server 2016 can work but is out of mainstream support in many environments.
– Administrative access on the server local or domain user with admin rights.
– A stable internet connection for pulling images and packages.
– Sufficient hardware: at least 4 GB RAM 8 GB+ recommended for multiple containers, a modern multi-core CPU, and sufficient disk space for images and containers.
– Optional but recommended: Hyper-V enabled if you plan to run Linux containers via Hyper-V isolation. Linux containers on Windows Server rely on a virtualization layer.
Why this matters: Windows Server environments vary by version and role. The steps below are aligned with modern Windows Server releases and best practices to minimize surprises in production.
Step 1: Prepare Windows Server How to host a video game server a complete guide: Setup, Security, Latency, Costs, and Maintenance 2026
– Open PowerShell as Administrator and ensure you have the latest Windows features for container support:
– Enable the Containers feature
– Optional: Enable Hyper-V if you plan to use Hyper-V isolation or to run Linux containers via Hyper-V
– Run these commands:
powershell Install-WindowsFeature -Name containers -Restart # Optional: enable Hyper-V if you plan to use Hyper-V isolation for containers Install-WindowsFeature -Name Hyper-V -IncludeAllSubFeature -Restart
– After reboot, verify features are installed:
Get-WindowsFeature -Name containers, Hyper-V
– Check PowerShell execution policy Docker installation scripts may require remote script execution:
Get-ExecutionPolicy
# If not RemoteSigned or Unrestricted, set it:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Tip: If you’re joining multiple servers, consider creating a small bootstrap script to apply these features consistently. How to host r shiny on your own server a step by step guide: Deploy R Shiny with Shiny Server, Docker, and Kubernetes 2026
Step 2: Install Docker on Windows Server
– Docker on Windows Server uses the DockerMsftProvider to install the Docker Engine. Do not use Docker Desktop on Windows Server. it’s not supported in server environments. The official approach is Docker Engine via the Windows Server provider.
Execute the following steps in PowerShell as Administrator:
# Install the DockerMsftProvider module from the PSGallery
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
# Install Docker using the provider
Install-Package -Name docker -ProviderName DockerMsftProvider -Force How to host an exile server on local a step by step guide 2026
# Start the Docker service and set it to run on startup
Start-Service docker
Set-Service docker -StartupType Automatic
– Verify the installation:
docker version
docker info
– If you run into TLS or certificate-related issues, ensure your system date/time is correct and that the server can reach the package repository.
Note: If you’re upgrading Docker on an existing Windows Server, you can reuse the same PowerShell flow but may need to restart the Docker service or the server during major version upgrades.
Step 3: Run a test container How to Host an FTP Server on PS3 A Step by Step Guide: PS3 FTP Setup, PlayStation 3 File Access, Homebrew Server Tips 2026
– The simplest sanity check is to pull and run a tiny image, such as hello-world, to confirm the daemon is functioning and can pull images.
docker run –rm hello-world
– If you want to see a more interactive test, run a minimal Nginx container:
docker run -d -p 8080:80 –name test-nginx nginx:latest
# Then test by curling the server locally
Invoke-WebRequest -Uri http://localhost:8080
– When you’re done testing, remove test containers and images to reclaim space:
docker rm -f test-nginx
docker rmi nginx:latest How to Hide Your DNS Server The Ultimate Guide To DNS Privacy, DoH, DoT, And VPNs 2026
Pro tip: For production, pin image tags to specific versions e.g., nginx:1.23-alpine instead of latest to avoid unexpected changes.
Step 4: Windows vs Linux containers on Windows Server
– Docker on Windows Server primarily runs Windows containers by default. Windows containers share the host kernel with Windows, which makes them lightweight for Windows-specific apps.
– Linux containers on Windows Server are not the default experience and historically relied on LCOW Linux Containers on Windows. LCOW has had limited support and has changed over time. For reliability in production, many teams opt for:
– Running Linux containers on a Windows Server host that’s part of a Linux VM or separate Linux host, or
– Using Windows Server to run Windows containers and hosting Linux containers on a Linux-based host or using a Windows Server 2022 with a Linux VM for Linux workloads.
– If you absolutely need Linux containers directly on Windows Server, you’ll typically enable Hyper-V isolation and allow the LinuxKit VM to run. This is more complex and can introduce performance and maintenance considerations.
Guidance:
– For most Windows-centric apps and services, run Windows containers on Windows Server 2019/2022.
– For Linux workloads, consider a Linux-based host or a dedicated Linux VM in your virtualization platform, then use standard Linux Docker workflows there.
Table: Quick comparison for a quick glance
| Topic | Windows Server Windows containers | Linux containers on Windows Server LCOW/Hyper-V isolation |
|——|————————————–|———————————————————-|
| Primary use | Windows workloads | Linux workloads historical/limited |
| Isolation | Windows containers | Hyper-V isolation or LCOW varies by version |
| Complexity | Moderate | Higher due to virtualization and compatibility concerns |
| Production readiness | High for Windows apps | Use with caveats. validate in your environment | How to host a solo rust server step by step guide 2026
Important note: Always check the latest official docs for Windows Server and Docker Engine, as Linux container support on Windows Server evolves with each release. The recommended path for Linux workloads is often to run Linux containers on Linux hosts or in Linux VMs rather than LCOW in production.
Step 5: Best practices for production
– Use a predictable image strategy:
– Pin to specific image versions and use digest-based references where possible.
– Regularly scan images for vulnerabilities e.g., with Snyk, Anchore, or Docker Bench for Security.
– Use container orchestration for multi-container apps:
– For simple setups, Docker Swarm can be enough. for more complex workloads, consider Kubernetes or a managed service.
– Separate concerns:
– Run containerized apps with minimal privileges. avoid running containers as root when not required.
– Use non-root users inside containers where applicable.
– Networking and security:
– Use user-defined bridge networks for isolation between containers.
– Limit exposed ports to only what is necessary and consider TLS termination at the edge.
– Data persistence:
– Use named volumes or bind mounts with clear backup strategies.
– Schedule regular backups of important volumes and use a tested restore process.
– Observability:
– Collect logs centrally, enable container telemetry, and set up alerts for container health and resource usage.
– Patching and updates:
– Keep Windows Server, Docker Engine, and container images up to date with security patches.
– Test updates in a staging environment before rolling out to production.
– Resource governance:
– Define CPU and memory limits for containers to prevent a single container from starving the host.
– Use quotas and limits in orchestration tools if you adopt Swarm or Kubernetes.
Practical tip: Document your deployment pipeline and rollback plan. When updates come in, you’ll thank yourself for having prebuilt images, tested configurations, and a clear rollback path.
Step 6: Troubleshooting common issues How to Host a NAS Server from Windows 10: A Step-by-Step Guide 2026
– Docker service doesn’t start:
– Check event logs and the Docker service status.
– Ensure the Containers feature and Hyper-V if used is enabled.
– Confirm there are no port conflicts or firewall rules blocking Docker’s internal communication.
– Pulling images takes too long or fails:
– Verify internet connectivity from the server.
– Check corporate proxies or firewall rules that may block Docker Hub or the image repository.
– Try a different base image or a smaller tag to isolate network or DNS issues.
– DNS or networking issues inside containers:
– Ensure Windows Server DNS resolution is healthy. check DNS server settings on the host.
– Use Docker networks to isolate container communication and configure DNS options if needed.
– Linux containers are not running or fail with LCOW-related errors:
– Revisit the Linux container capability in your Windows Server version.
– Consider running Linux workloads on a Linux host or a Linux VM instead.
– Container not starting due to permissions:
– Verify file and directory permissions on mounted volumes.
– Run containers with non-root users when possible and ensure proper capabilities are set.
Step 7: Security and maintenance
– Regularly update Docker Engine to the latest supported version for Windows Server.
– Use signed images from trusted registries and scan for vulnerabilities before deployment.
– Enable auditing and log retention for container activity.
– Limit the attack surface by keeping the host minimal and securely configuring firewall rules.
– Rotate credentials used by Docker and container registries. store secrets securely using orchestration tools or secrets managers.
– Back up critical data and have a tested disaster recovery plan.
Security best practices example: If you’re exposing a port for a web app, ensure you’re behind a secure reverse proxy with TLS termination, and keep the container surface area as small as possible.
Frequently Asked Questions How to host a tamriel online server the ultimate guide: Setup, Security, and Optimization 2026
# How do I verify Docker installation on Windows Server?
Run:
– docker version
– docker info
If the commands return Docker Engine details and server information, Docker is installed and running correctly.
# Can I run Linux containers on Windows Server?
Yes, but Linux container support on Windows Server is more complex and can be less stable in some environments. Windows Server 2022 with Hyper-V isolation can host Linux containers, but many teams prefer running Linux containers on a Linux host or in a Linux VM for production workloads.
# Do I need Hyper-V to run Docker on Windows Server?
Hyper-V is optional, but it can be helpful when you need Linux container isolation via Hyper-V or when running Linux workloads on Windows Server. If you only run Windows containers, Hyper-V is not strictly required.
# How do I switch between Windows and Linux containers?
In the Windows client ecosystem, there’s a distinction between Windows and Linux containers. on Windows Server, Linux container support uses virtualization layers. The exact switch mechanism depends on the Windows Server version and Docker setup. For production, plan Linux workloads on a Linux host or VM.
# How do I upgrade Docker on Windows Server?
Use the same PowerShell-based flow:
– Update the DockerMsftProvider if needed
– Run Install-Package -Name docker -ProviderName DockerMsftProvider -Force
– Restart the Docker service if required
# What are the best practices for Docker on Windows Server?
– Pin image versions and test updates in a staging environment.
– Use Windows containers for Windows-based apps. consider Linux containers on Linux hosts.
– Regularly scan images and apply patches.
– Implement proper backups and disaster recovery plans.
– Use a centralized logging and monitoring strategy.
# How do I configure Docker daemon settings on Windows Server?
Edit the daemon.json file typically located at C:\ProgramData\docker\config\daemon.json to configure daemon options such as logging drivers, storage drivers, and DNS. After editing, restart the Docker service:
Restart-Service docker
# How do I manage Docker as a Windows service?
Docker is installed as a Windows service automatically during the install step. You can manage it with standard PowerShell Cmdlets:
– Start-Service docker
– Stop-Service docker
– Set-Service docker -StartupType Automatic
# How do I clean up unused images and volumes?
– Remove unused images: docker image prune -a
– Remove unused volumes: docker volume prune
– Remove unused containers: docker container prune
# How can I monitor container health on Windows Server?
– Use docker stats for live resource usage per container.
– Integrate with your favorite monitoring stack Prometheus, Grafana, etc. via exporters or Docker metrics endpoints.
– Enable Windows event logging for Docker-related events.
# Can I use Docker Compose on Windows Server?
Yes, you can use Docker Compose to manage multi-container apps on Windows Server. Install Docker Compose for Windows if supported by your Docker Engine version, then use docker-compose up and related commands in PowerShell.
# What should I do if the Docker service won’t start after a Windows update?
– Check compatibility notes for Docker with that Windows Server version and update Docker if a patch is required.
– Verify Windows features Containers, Hyper-V didn’t get disabled by the update.
– Review event logs for specific error messages and troubleshoot accordingly.
If you’re ready to get hands-on, start with a clean Windows Server 2022 box, follow the Step 1 to Step 3 instructions, and then progressively introduce Linux workloads or a production-grade orchestration solution as your needs grow. Docker on Windows Server can be incredibly powerful for Windows-based apps and hybrid environments when configured with care and tested thoroughly.
Sources:
Vpn中文版全面评测、对比与使用指南:2025年更新版,帮助中国用户选择、配置与保护隐私的VPN服务
Nordvpn vs surfshark 2026: NordVPN vs Surfshark 2026 VPN Showdown for Streaming, Privacy, and Price