LINUX.ORG.RU

История изменений

Исправление mradermaxlol, (текущая версия) :

UPD: после правок отсюда итоговый хук выглядит так:

#!/bin/bash

if [ "$1" = "win10n1" ]; then
	GUEST_IP=192.168.122.101
	GUEST_PORT=3389
	HOST_PORT=32101

	if [[ "$2" = "started" ]]; then
		iptables -I FORWARD -o virbr0 -i wg0 -p tcp -d $GUEST_IP --dport $GUEST_PORT -j ACCEPT
		iptables -t nat -I PREROUTING -i wg0 -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
	fi
	if [[ "$2" = "stopped"  ]]; then
		iptables -D FORWARD -o virbr0 -i wg0 -p tcp -d $GUEST_IP --dport $GUEST_PORT -j ACCEPT
		iptables -t nat -D PREROUTING -i wg0 -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
	fi
fi

if [ "$1" = "win10n2" ]; then
	GUEST_IP=192.168.122.102
	GUEST_PORT=3389
	HOST_PORT=32102

	if [[ "$2" = "started" ]]; then
		iptables -I FORWARD -o virbr0 -i wg0 -p tcp -d $GUEST_IP --dport $GUEST_PORT -j ACCEPT
		iptables -t nat -I PREROUTING -i wg0 -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
	fi
	if [[ "$2" = "stopped"  ]]; then
		iptables -D FORWARD -o virbr0 -i wg0 -p tcp -d $GUEST_IP --dport $GUEST_PORT -j ACCEPT
		iptables -t nat -D PREROUTING -i wg0 -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
	fi
fi

Таким образом порт пробрасывается только для интерфейса wg0. Наверное, есть смысл по рекомендациям из темы добавить и другие цепочки iptables, но это уже другая история.

Исходная версия mradermaxlol, :

UPD: после правок отсюда итоговый хук выглядит так:

#!/bin/bash

if [ "$1" = "win10n1" ]; then
	GUEST_IP=192.168.122.101
	GUEST_PORT=3389
	HOST_PORT=32101

	if [[ "$2" = "started" ]]; then
		iptables -I FORWARD -o virbr0 -i wg0 -p tcp -d $GUEST_IP --dport $GUEST_PORT -j ACCEPT
		iptables -t nat -I PREROUTING -i wg0 -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
	fi
	if [[ "$2" = "stopped"  ]]; then
		iptables -D FORWARD -o virbr0 -i wg0 -p tcp -d $GUEST_IP --dport $GUEST_PORT -j ACCEPT
		iptables -t nat -D PREROUTING -i wg0 -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
	fi
fi

if [ "$1" = "win10n2" ]; then
	GUEST_IP=192.168.122.102
	GUEST_PORT=3389
	HOST_PORT=32102

	if [[ "$2" = "started" ]]; then
		iptables -I FORWARD -o virbr0 -i wg0 -p tcp -d $GUEST_IP --dport $GUEST_PORT -j ACCEPT
		iptables -t nat -I PREROUTING -i wg0 -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
	fi
	if [[ "$2" = "stopped"  ]]; then
		iptables -D FORWARD -o virbr0 -i wg0 -p tcp -d $GUEST_IP --dport $GUEST_PORT -j ACCEPT
		iptables -t nat -D PREROUTING -i wg0 -p tcp --dport $HOST_PORT -j DNAT --to $GUEST_IP:$GUEST_PORT
	fi
fi

Таким образом порт пробрасывается только для интерфейса wg0. Наверное, есть смысл по рекомендациям из темы добавить и другие цепочки iptables, но это уже другая история.