I have some tech background but was never much in the networking space. I have a new office in a coworking space and would like to use ProtonVPN on my hEX S 2025 box so that all my traffic gets routed through the VPN.
Here is my hardware setup:
My Laptop => hEX S box => Wired connection in coworking space => Internet
I will also have a wired printer with fax capability, and maybe later an IP Phone all wired through my hEX S box.
I have tried to setup my hEX S as best I can but for some reason, VPN DNS (at 10.2.0.1) is not working and as a result no outbound requests seem to be getting anywhere so it looks like I have no internet. If I use the coworking space VPN the internet is fully accessible though. I am using the values that ProtonVPN gave me to set up WireGuard.
How do I get this to work?
Here are my settings:
# 2025-10-15 00:19:52 by RouterOS 7.20.1
# software id = ABCD-1234
#
# model = E60iUGS
# serial number = ABCDEF1234
/interface bridge
add admin-mac=05:F3:7C:18:C7:4E auto-mac=no comment=defconf name=bridge-lan
/interface ethernet
set \[ find default-name=sfp1 \] disabled=yes
/interface wireguard
add listen-port=51820 mtu=1420 name=wg-proton
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/ip pool
add name=dhcp-pool ranges=192.168.99.10-192.168.99.100
/ip dhcp-server
add address-pool=dhcp-pool interface=bridge-lan lease-time=1d name=dhcp1
/disk settings
set auto-media-interface=bridge-lan auto-media-sharing=yes auto-smb-sharing=
yes
/interface bridge port
add bridge=bridge-lan comment=defconf interface=ether2
add bridge=bridge-lan comment=defconf interface=ether3
add bridge=bridge-lan comment=defconf interface=ether4
add bridge=bridge-lan comment=defconf interface=ether5
add bridge=bridge-lan comment=defconf interface=sfp1
/ip neighbor discovery-settings
set discover-interface-list=none
/interface list member
add comment=dhcp1 interface=bridge-lan list=LAN
add comment=defconf interface=ether1 list=WAN
add interface=wg-proton list=LAN
/interface wireguard peers
add allowed-address=0.0.0.0/0,::/0 endpoint-address=149.159.51.178
endpoint-port=51820 interface=wg-proton name=peer1 persistent-keepalive=
25s public-key="STtovcJk/wqDgciSMoTgDAwS9b5bS1lch2eOlBdPL2E="
/ip address
add address=192.168.88.1/24 comment=defconf disabled=yes interface=bridge-lan
network=192.168.88.0
add address=192.168.99.1/24 interface=bridge-lan network=192.168.99.0
add address=10.2.0.2 interface=wg-proton network=10.2.0.2
/ip cloud
set update-time=no
/ip dhcp-client
add comment=defconf interface=ether1
/ip dhcp-server network
add address=192.168.99.0/24 dns-server=10.2.0.1 domain=local gateway=
192.168.99.1
/ip dns
set allow-remote-requests=yes servers=10.2.0.1
/ip dns static
add address=192.168.88.1 comment=defconf name=router.lan type=A
/ip firewall filter
add action=accept chain=input comment="Allow WireGuard UDP" dst-port=51820
protocol=udp
add action=accept chain=forward comment="Allow VPN traffic" in-interface=
wg-proton
add action=accept chain=forward comment="Allow VPN traffic" out-interface=
wg-proton
add action=drop chain=input comment="Drop Invalid Early" connection-state=
invalid
add action=drop chain=forward comment="Drop Invalid Early" connection-state=
invalid
add action=accept chain=input comment="Allow Established/Related"
connection-state=established,related
add action=accept chain=forward comment="Allow Established/Related"
connection-state=established,related
add action=drop chain=input comment="Drop all input from WAN"
in-interface-list=WAN
add action=accept chain=forward comment="Allow LAN to everything"
in-interface-list=LAN
add action=drop chain=forward comment="Drop all else in forward"
add action=accept chain=forward disabled=yes dst-port=5060 in-interface=
wg-proton protocol=udp
add action=accept chain=forward disabled=yes dst-port=5060 in-interface=
wg-proton protocol=tcp
add action=accept chain=input comment=
"defconf: accept established,related,untracked" connection-state=
established,related,untracked disabled=yes
add action=drop chain=input comment="defconf: drop invalid" connection-state=
invalid disabled=yes
add action=accept chain=input comment="defconf: accept ICMP" disabled=yes
protocol=icmp
add action=accept chain=input comment=
"defconf: accept to local loopback (for CAPsMAN)" disabled=yes
dst-address=127.0.0.1
add action=drop chain=input comment="defconf: drop all not coming from LAN"
disabled=yes in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept in ipsec policy"
disabled=yes ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy"
disabled=yes ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment="defconf: fasttrack"
connection-state=established,related disabled=yes hw-offload=yes
add action=accept chain=forward comment=
"defconf: accept established,related, untracked" connection-state=
established,related,untracked disabled=yes
add action=drop chain=forward comment="defconf: drop invalid"
connection-state=invalid disabled=yes
add action=drop chain=forward comment=
"defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat
connection-state=new disabled=yes in-interface-list=WAN
add action=add-src-to-address-list address-list=port-scanners
address-list-timeout=1w3d chain=input comment="Port Scanner" protocol=tcp
psd=21,3s,3,1
add action=drop chain=input src-address-list=port-scanners
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" disabled=yes
ipsec-policy=out,none out-interface-list=WAN
add action=masquerade chain=srcnat out-interface=wg-proton
add action=dst-nat chain=dstnat dst-port=8080 in-interface=wg-proton
protocol=tcp to-addresses=192.168.99.50 to-ports=80
add action=dst-nat chain=dstnat dst-port=5060 in-interface=wg-proton
protocol=udp to-addresses=192.168.99.60 to-ports=5060
add action=dst-nat chain=dstnat dst-port=5060 in-interface=wg-proton
protocol=tcp to-addresses=192.168.99.60 to-ports=5060
/ipv6 route
add distance=1 dst-address=::/0 gateway=wg-proton
/ip ssh
set strong-crypto=yes
/ipv6 address
add address=fd00::2/128 advertise=no interface=wg-proton
/ipv6 firewall address-list
add address=::/128 comment="defconf: unspecified address" list=bad_ipv6
add address=::1/128 comment="defconf: lo" list=bad_ipv6
add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6
add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6
add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6
add address=100::/64 comment="defconf: discard only " list=bad_ipv6
add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6
add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6
add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6
/ipv6 firewall filter
add action=accept chain=input comment=
"defconf: accept established,related,untracked" connection-state=
established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=
invalid
add action=accept chain=input comment="defconf: accept ICMPv6" protocol=
icmpv6
add action=accept chain=input comment="defconf: accept UDP traceroute"
dst-port=33434-33534 protocol=udp
add action=accept chain=input comment=
"defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=
udp src-address=fe80::/10
add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500
protocol=udp
add action=accept chain=input comment="defconf: accept ipsec AH" protocol=
ipsec-ah
add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=
ipsec-esp
add action=accept chain=input comment=
"defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=input comment=
"defconf: drop everything else not coming from LAN" in-interface-list=
!LAN
add action=fasttrack-connection chain=forward comment="defconf: fasttrack6"
connection-state=established,related
add action=accept chain=forward comment=
"defconf: accept established,related,untracked" connection-state=
established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid"
connection-state=invalid
add action=drop chain=forward comment=
"defconf: drop packets with bad src ipv6" src-address-list=bad_ipv6
add action=drop chain=forward comment=
"defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1"
hop-limit=equal:1 protocol=icmpv6
add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=
icmpv6
add action=accept chain=forward comment="defconf: accept HIP" protocol=139
add action=accept chain=forward comment="defconf: accept IKE" dst-port=
500,4500 protocol=udp
add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=
ipsec-ah
add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=
ipsec-esp
add action=accept chain=forward comment=
"defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=forward comment=
"defconf: drop everything else not coming from LAN" in-interface-list=
!LAN
/system clock
set time-zone-name=US/Pacific
/tool bandwidth-server
set enabled=no
/tool mac-server
set allowed-interface-list=none
/tool mac-server mac-winbox
set allowed-interface-list=none
/tool mac-server ping
set enabled=no