I’ve made wireguard tu nel out to VPS (to circumvent CGNAT). Dns server works, web server + Gitea, Jellyfin,… works. All the stuff running on my thin Ubuntu client. What doesn’t work is forwarding the RDP port to my windows machine. No firewall on the windows machine. Used to work before CGNAT got enabled by my ISP. I’ve tried also UDP port, but still no connection.
Here is my wg0 conf:
[Interface] PrivateKey = … Address = 10.1.0.2/24
PostUp = iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination 192.168.1.21:3389; iptables -t nat -A POSTROUTING -p tcp --dport 3389 -j MASQUERADE
PostDown = iptables -t nat -D PREROUTING -p tcp --dport 3389 -j DNAT --to-destination 192.168.1.21:3389; iptables -t nat -D POSTROUTING -p tcp --dport 3389 -j MASQUERADE
[Peer] PublicKey = … AllowedIPs = 0.0.0.0/0 Endpoint = …oraclevpsIP…:55108 PersistentKeepalive = 25
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters IP Internet Protocol NAT Network Address Translation VPS Virtual Private Server (opposed to shared hosting)
[Thread #295 for this sub, first seen 22nd Nov 2023, 22:05] [FAQ] [Full list] [Contact] [Source code]
Does the machine running the WireGuard tunnel to the VPS acts as a “router” aka gateway for the network? Otherwise the windows machine doesn’t have a return path for the connection.
I’ve got 4G modem. It runs DHCP/gateway for the network. From that it is a mix of wifi routers, one dumb switch and things sitting on powerline connected parts of the network (outside wifi routers for power monitor, guest wifi round the property, etc). All is running on 192.168.1.xx , only the wg0 interface is 10.1.0.2. My ubuntu server runs just my web server, adguard home, jellyfin, etc.
I would advise that you instead also connect the Windows machine to the VPS with WireGuard as 10.1.0.3, basically mirroring what you’ve done on the Ubuntu server. The routing will be a mess otherwise. Another option is running the WireGuard tunnel on your gateway with something like OPNsense.
This - why add another machine into the equation?
Or set up an account at Tailscale or similar. They let you have like 10 machines in your network w/o payment
Or route to your home network through the vpn interface on the VPS. So you can reference the windows ip, rather than NAT
Your current setup is very complicated. I did not check your rules at all but maybe you are setting up forwarding on your servers lan interface rather than the WireGuard interface.
Also you don’t say much about how the VPS setup is. Do you Nat the other working services? What IP/host do you forward to? Are you rdp’ing from the VPS or is that also some form of forwarder/revproxy?
I remember having to enable forwarding of the initial packet when I used to forward a webserver
iptables -A FORWARD -i eth0 -o wg0 -p tcp --syn --dport 80 -m conntrack --ctstate NEW -j ACCEPT
Is it PostUp, or PostDown? Im noob with wireguard
UP
On my server inside, or the VPS sitting out on the internet? wireguard doesn’t start if I put it into PostUP on my server. Yes, I’ve changed the interface to enp1s0 and port to 3389
Pretty sure you configure everything on the entrypoint, for the services runnin in your home machine it should be transparent