Помогите настроить конфигурацию. Необходимо реализовать проброс портов через туннель WireGuard. Имеется домашняя сеть. В ней находится компьютер с IP-адресом 192.168.100.31. К этому компьютеру должен быть обеспечен доступ из внешнего мира по RDP (порт 3389). Выход в интернет осуществляется через локальный IP-адрес. Для решения задачи был арендован VPS, на котором развернута RouterOS. Туннель WireGuard работает исправно. Проброс портов к компьютеру в домашней сети реализован в два этапа: 1. От интерфейса eth1 маршрутизатора Router_VPS до интерфейса WG_Home маршрутизатора Router_Home. 2. От интерфейса WG_Home маршрутизатора Router_Home до компьютера Comp. Для отправки ответов от компьютера Comp через туннель WireGuard было создано правило SNAT (ответы через WG-интерфейс). Тем не менее, схема не функционирует. Предполагаю, что ответный трафик не направляется через туннель, и Router_Home пытается отправить его через шлюз по умолчанию. Config_VPS # 2025-04-21 14:15:47 by RouterOS 7.18.2 # system id = dqpf9OiY8kO # /interface ethernet set [ find default-name=ether1 ] disable-running-check=no /interface wireguard add listen-port=51820 mtu=1400 name=WG_VPS /port set 0 name=serial0 /interface wireguard peers add allowed-address=0.0.0.0/0 interface=WG_VPS name=peer_WG_VPS public-key=\ "pc9mAy6qKIG53NC+I2L1dDjM57e7thCvzvxJEs/Skhk=" /ip address add address=192.168.254.1/24 interface=WG_VPS network=192.168.254.0 /ip dhcp-client add interface=ether1 /ip dns set servers=8.8.8.8 /ip firewall nat add action=dst-nat chain=dstnat comment=\ "RDP-Forwarding to local Router through WireGuard" dst-address=\ 123.123.123.123 dst-port=3389 in-interface=ether1 protocol=tcp \ to-addresses=192.168.254.2 /ip route add comment="route to local LAN via WireGuard" disabled=no distance=1 \ dst-address=192.168.100.0/24 gateway=192.168.254.2 routing-table=main \ scope=30 suppress-hw-offload=no target-scope=10 /ip service set telnet disabled=yes set ftp disabled=yes set www disabled=yes set api disabled=yes set api-ssl disabled=yes /system clock set time-zone-name=Europe/Berlin /system note set show-at-login=no /system ntp client set enabled=yes /system ntp client servers add address=time.nist.gov add address=time.windows.com /tool sniffer set file-name=vps_rdp_test /tool traffic-monitor add interface=WG_VPS name=tmon1 add interface=WG_VPS name=tmon2 traffic=received Config_Home # 2025-04-21 14:15:38 by RouterOS 7.17.2 # system id = pCAbm6a8i9M # /interface bridge add name=bridge1LAN /interface ethernet set [ find default-name=ether1 ] disable-running-check=no name=ether1WAN set [ find default-name=ether2 ] disable-running-check=no name=ether2LAN /interface wireguard add listen-port=21263 mtu=1400 name=WG_HOME /ip pool add name=dhcp_pool0 ranges=192.168.100.100-192.168.100.199 add name=dhcp_pool1 ranges=192.168.100.101-192.168.100.200 /ip dhcp-server add address-pool=dhcp_pool1 interface=bridge1LAN name=dhcp1 /port set 0 name=serial0 set 1 name=serial1 /routing table add fib name=via-wg /interface bridge port add bridge=bridge1LAN interface=ether2LAN /interface wireguard peers add allowed-address=0.0.0.0/0 endpoint-address=123.123.123.123 endpoint-port=\ 51820 interface=WG_HOME name=peer_WG_HOME persistent-keepalive=25s \ public-key="dzjxXEU1afPWfgjUr0dBa6IhDc0gKVQQ2IHTpj27tzA=" /ip address add address=192.168.178.2/24 interface=ether1WAN network=192.168.178.0 add address=192.168.100.1/24 interface=bridge1LAN network=192.168.100.0 add address=192.168.254.2/24 interface=WG_HOME network=192.168.254.0 /ip dhcp-client add disabled=yes interface=ether1WAN /ip dhcp-server network add address=192.168.100.0/24 gateway=192.168.100.1 /ip dns set servers=192.168.178.1 /ip firewall nat add action=src-nat chain=srcnat comment="All Local clients to Internet" \ out-interface=ether1WAN to-addresses=192.168.178.2 add action=dst-nat chain=dstnat comment=\ "RDP-Forwarding WG_HOME to 192.168.100.31" dst-port=3389 in-interface=\ WG_HOME protocol=tcp to-addresses=192.168.100.31 add action=masquerade chain=srcnat comment="SNAT replies via WG" \ out-interface=WG_HOME src-address=192.168.100.0/24 /ip route add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.178.1 \ routing-table=main scope=30 suppress-hw-offload=no target-scope=10 /ip service set telnet disabled=yes set ftp disabled=yes set www disabled=yes set api disabled=yes set api-ssl disabled=yes /routing rule add action=lookup dst-address=123.123.123.123/32 src-address=192.168.100.31/32 \ table=via-wg /system clock set time-zone-name=Europe/Berlin /system note set show-at-login=no /system ntp client set enabled=yes /system ntp client servers add address=time.nist.gov add address=time.windows.com
Зачем делать цепочку из двух dst-nat если можно сразу перенаправить на узел в домашней сети? То есть на VPS написать такое правило NAT: /ip firewall nat add action=dst-nat chain=dstnat comment=\ "RDP-Forwarding to local PC through WireGuard" dst-address=\ 109.205.178.36 dst-port=3389 in-interface=ether1 protocol=tcp \ to-addresses=192.168.100.31 Ну а чтобы ответы шли через WG то на этом же маршрутизаторе написать ещё и src-nat: /ip firewall nat add action=src-nat chain=srcnat \ dst-address= 192.168.100.31 dst-port=3389 protocol=tcp \ to-addresses=192.168.254.1
Так а в чём именно проблема не пытались отследить? Также на время тестов лучше отключить виндовый файрвол чтоб не мешался пока
Спасибо, дружище за идею. Попробовал еще раз именно с твоими правилами - заработало. Теперь я понял. В чем мой косяк был. Я в этом правиле /ip firewall nat add action=src-nat chain=srcnat \ dst-address= 192.168.100.31 dst-port=3389 protocol=tcp \ to-addresses=192.168.254.1 подставлял в качестве to-addresses= свой ether1, а ты предложил именно туннельный адрес. В общем все работает. Снимаю шляпу