Skip to content

Blog#

Windows 11 WSL2 DNS and OpenVPN Split Tunnel

On modern Windows 11 + WSL 2, the reliable VPN-friendly DNS path is WSL DNS tunneling. If you want Linux tools inside WSL to follow the same DNS policy as Windows apps, keep /etc/resolv.conf auto-generated and let the Windows DNS Client make the routing and suffix decisions.

This post focuses on the current Windows 11 + WSL 2 model, not the older manual resolv.conf workaround. It also shows how to keep OpenVPN in split-tunnel mode while preserving internal DNS resolution in both Windows and WSL.

Running Multiple Apps Under a Single Domain with Vercel

I own the copdips.com domain, and need to point it at several Vercel apps so that:

This is a standard Multi-Tenant Routing with Context Awareness scenario. To serve both the root domain (app1.vercel.app) and the subpath version (apps.copdips.com/app1) from the same deployment, each app must become host-aware-effectively detecting whether the request comes through the main router or directly and adjusting asset URLs and links accordingly.

OIDC (OpenID Connect)

OIDC (OpenID Connect) is an authentication layer (verify identity + obtain profile) built on top of the OAuth2 protocol (authorization layer). It allows Web-based, mobile, and JavaScript clients to verify the identity of end-users based on the authentication performed by an authorization server (aka AS or IdP), as well as to obtain basic profile information about the end-user in an interoperable and REST-like manner. It eliminates storing and managing people's passwords.

Using Pageant with VSCode Remote SSH

While Putty and Pageant are widely used tools for SSH connections, you can also integrate Pageant with VSCode to establish remote SSH connections without administrative privileges. While the default ssh-agent service offers similar functionality, it's disabled by default and requires administrative access to start if disabled, making Pageant a more flexible alternative. Here's how you can set it up:

Installing Ollama without root

Inspired by the official guide, here is my method for installing (or updating) Ollama without root access.

mkdir -p ~/src
cd ~/src
curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
mkdir -p ~/opt/ollama
tar -C ~/opt/ollama -xzf ollama-linux-amd64.tgz

Add Ollama to $PATH:

echo 'export PATH=$PATH:~/opt/ollama' >> ~/.bashrc
. ~/.bashrc

Then you can run ollama in your terminal:

nohup ollama serve &

ollama -v
ollama list

# Pull the embeddings model for AnythingLLM RAG
ollama pull nomic-embed-text

# Run the smallest deepseek model
ollama run deepseek-r1:5b

To stop the Ollama server:

killall ollama

# or
killall -u $USER ollama