I have a MikroTik router acting as a WireGuard server.
From the Internet, I can successfully connect to the MikroTik via WireGuard. The tunnel comes up correctly, and all my traffic is routed through the MikroTik; when connected, my public IP address is the MikroTik’s WAN IP.
What I want to achieve is:
- Full access to all internal LAN resources behind the MikroTik.
- Continue routing Internet traffic through the MikroTik while connected.
What is the recommended MikroTik WireGuard configuration (routing, firewall, and NAT) to allow a remote WireGuard client to access the entire internal LAN behind the router, and use the MikroTik as a full-tunnel Internet gateway?
Any configuration examples or best-practice guidance would be appreciated.
# 2026-02-06 12:18:42 by RouterOS 7.17.2
/interface bridge
add name=bridge1 port-cost-mode=short
/interface wireguard
add listen-port=13231 mtu=1420 name=wireguard1
/interface list
add name=WAN
add name=LAN
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
add authentication-types=wpa2-psk eap-methods="" management-protection=\
allowed mode=dynamic-keys name=aa supplicant-identity=""
/interface wireless
set [ find default-name=wlan1 ] band=2ghz-g/n channel-width=20/40mhz-XX \
country=slovenia disabled=no installation=indoor mode=ap-bridge name=\
wlan2_4 security-profile=aa ssid=aa2_4 wireless-protocol=\
802.11
set [ find default-name=wlan2 ] band=5ghz-a/n/ac channel-width=\
20/40/80mhz-XXXX country=uk disabled=no installation=indoor mode=\
ap-bridge name=wlan5 security-profile=aa ssid=aa5 \
wireless-protocol=802.11
/ip pool
add name=dhcp_pool1 ranges=192.168.1.2-192.168.1.254
/ip dhcp-server
add address-pool=dhcp_pool1 interface=bridge1 lease-time=10m name=dhcp1
/ip smb users
set [ find default=yes ] disabled=yes
/zerotier
set zt1 disabled=no disabled=no
/zerotier interface
add allow-default=no allow-global=no allow-managed=no disabled=no instance=\
zt1 name=zerotier1 network=aaa1015
/interface bridge port
add bridge=bridge1 \
ingress-filtering=no interface=ether2 internal-path-cost=10 path-cost=10
add bridge=bridge1 ingress-filtering=no interface=wlan2_4 internal-path-cost=\
10 path-cost=10
add bridge=bridge1 ingress-filtering=no interface=wlan5 internal-path-cost=10 \
path-cost=10
add bridge=bridge1 \
ingress-filtering=no interface=ether5 internal-path-cost=10 path-cost=10
/ip firewall connection tracking
set udp-timeout=10s
/ip neighbor discovery-settings
set discover-interface-list=LAN
/ip settings
set max-neighbor-entries=8192
/ipv6 settings
set disable-ipv6=yes max-neighbor-entries=8192
/interface list member
add interface=ether1 list=WAN
add interface=bridge1 list=LAN
add interface=zerotier1 list=LAN
/interface ovpn-server server
add auth=sha1,md5 mac-address=FE:39:7D:57:F1:B9 name=ovpn-server1
/interface wireguard peers
add allowed-address=192.168.1.200/32,192.168.1.1/24,192.168.1.0/24 interface=\
wireguard1 name=peer2 persistent-keepalive=25s public-key=\
"aa="
/ip address
add address=192.168.1.1/24 interface=bridge1 network=192.168.1.0
add address=192.168.1.20 disabled=yes interface=bridge1 network=192.168.1.20
add address=10.147.19.0/24 comment="Zerotier IP adresses" interface=\
zerotier1 network=10.147.19.0
/ip dhcp-client
add interface=ether1 use-peer-dns=no use-peer-ntp=no
/ip dhcp-server lease
add address=192.168.1.110 client-id=1:70:85:c2:f4:d2:e1 mac-address=\
70:85:C2:F4:D2:E1 server=dhcp1
add address=192.168.1.99 client-id=1:c4:ad:34:50:c4:21 comment=\
"T2 Mikrotik router" mac-address=C4:AD:34:50:C4:21 \
server=dhcp1
/ip dhcp-server network
add address=192.168.1.0/24 gateway=192.168.1.1
/ip dns
set servers=11.111.1.1,11.111.1.77
/ip firewall address-list
add address=0.0.0.0/8 list=BOGONS
add address=10.0.0.0/8 list=BOGONS
add address=100.64.0.0/10 list=BOGONS
add address=127.0.0.0/8 list=BOGONS
add address=169.254.0.0/16 list=BOGONS
add address=172.16.0.0/12 list=BOGONS
add address=192.0.0.0/24 list=BOGONS
add address=192.0.2.0/24 list=BOGONS
add address=192.168.0.0/16 list=BOGONS
add address=198.18.0.0/15 list=BOGONS
add address=198.51.100.0/24 list=BOGONS
add address=203.0.113.0/24 list=BOGONS
add address=192.168.1.2-192.168.1.254 list=allowed_to_router
add address=224.0.0.0/4 comment=Multicast list=BOGONS
add address=240.0.0.0/4 comment=RFC6890 list=BOGONS
add address=192.88.99.0/24 comment="6to4 relay Anycast [RFC 3068]" list=\
BOGONS
/ip firewall filter
add action=accept chain=forward in-interface=zerotier1
add action=accept chain=input in-interface=zerotier1
add action=accept chain=forward comment="Allow Zerotier --> LAN" disabled=yes \
dst-address=192.168.1.0/24 in-interface=zerotier1 out-interface=bridge1 \
src-address=10.147.19.0/24
add action=accept chain=forward comment=\
"Allow LAN -> Zerotier (return traffic)" disabled=yes dst-address=\
10.147.19.0/24 in-interface=bridge1 out-interface=zerotier1 src-address=\
192.168.1.0/24
add action=accept chain=forward disabled=yes dst-address=172.16.10.0/24 \
src-address=192.168.1.200
add action=accept chain=forward disabled=yes dst-address=192.168.1.200 \
src-address=172.16.10.0/24
add action=accept chain=forward disabled=yes dst-port=13231 protocol=udp
add action=drop chain=input disabled=yes src-address=110.137.101.106
add action=accept chain=input comment=\
"enable rule to allow connection to and from router" connection-state=\
established,related
add action=drop chain=input comment="defconf: drop all not coming from LAN" \
disabled=yes in-interface-list=!LAN
add action=accept chain=input comment="input established related accept" \
connection-state=established,related
add action=accept chain=input protocol=icmp
add action=accept chain=input comment=\
"input accept src-address-list=allowed_to_router" src-address-list=\
allowed_to_router
add action=drop chain=input comment="input ether1 bogons drop" in-interface=\
ether1 src-address-list=BOGONS
add action=drop chain=input comment="input invalid drop" connection-state=\
invalid
add action=accept chain=forward connection-state=established,related
add action=drop chain=forward connection-state=invalid log-prefix=invalid
add action=drop chain=forward comment=\
"Drop incoming packets that are not NATted" connection-nat-state=!dstnat \
connection-state=new in-interface=ether1 log-prefix=!NAT
add action=drop chain=forward comment=\
"Drop incoming from internet which is not public IP" in-interface=ether1 \
log-prefix=!public src-address-list=BOGONS
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
add action=dst-nat chain=dstnat comment=\
" ." disabled=yes dst-address=\
77.38.64.11 dst-port=21 log=yes protocol=tcp src-address=91.185.213.139 \
to-addresses=192.168.1.240 to-ports=21
add action=dst-nat chain=dstnat disabled=yes dst-address=77.38.64.11 \
dst-port=443 protocol=tcp to-addresses=192.168.1.50 to-ports=443
add action=dst-nat chain=dstnat disabled=yes dst-address=77.38.64.11 \
dst-port=80 protocol=tcp to-addresses=192.168.1.50 to-ports=80
add action=masquerade chain=srcnat disabled=yes dst-address=192.168.1.50 \
out-interface=bridge1 protocol=tcp src-address=192.168.1.0/24
/ip firewall service-port
set tftp disabled=yes
set h323 disabled=yes
set sip disabled=yes
set pptp disabled=yes
set udplite disabled=yes
set dccp disabled=yes
set sctp disabled=yes
/ip ipsec profile
set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5
/ip route
add disabled=no distance=1 dst-address=192.168.1.200/32 gateway=wireguard1 \
pref-src="" routing-table=main scope=30 suppress-hw-offload=no \
target-scope=10
/ip service
set telnet address=192.168.1.0/24 disabled=yes
set ftp disabled=yes port=33
set www disabled=yes
set ssh address=192.168.1.0/24 disabled=yes
set api disabled=yes
set winbox address=192.168.1.0/24
set api-ssl disabled=yes
/ip smb shares
set [ find default=yes ] directory=/flash/pub
/ip ssh
set strong-crypto=yes
/system identity
set name="MikroTik"
/system note
set show-at-login=no
/system ntp client
set enabled=yes
/system ntp client servers
add address=si.pool.ntp.org
/tool bandwidth-server
set enabled=no
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN
/tool mac-server ping
set enabled=no