Допустим, что на роутере 2 интерфейса следующего вида:
eth0 — интернет, имеет адрес ****/24 — неважно
eth1 — локалка, имеет адрес 192.168.1.1/24
Удаленный комп имеет адрес 1.2.3.4
Локальный комп имеет адрес 192.168.1.22
Локальный виртуальный комп имеет адрес 192.168.1.77
Сперва надо добавить дополнительный адрес к eth1, который будет обслуживать роутер:
ip addr add 192.168.1.77/24 dev eth1
или
ifconfig eth1 add 192.168.1.77
Роутинг от удаленного к локальному:
iptables -t nat -A PREROUTING -s 1.2.3.4 -i eth0 -j DNAT --to-destination 192.168.1.22
iptables -t filter -A FORWARD -s 1.2.3.4 -d 192.168.1.22 -j ACCEPT
iptables -t nat -A POSTROUTING -s 1.2.3.4 -j SNAT --to-source 192.168.1.77
Роутинг к удаленному от локального:
iptables -t nat -A PREROUTING -d 192.168.1.77 -i eth1 -j DNAT --to-destination 1.2.3.4
iptables -t filter -A FORWARD -d 1.2.3.4 -s 192.168.1.22 -j ACCEPT
POSTROUTING — не нужен, ибо и так есть NAT, настроенный самим роутером
ИМХО, должно так работать. Если что — пишите какие ошибки, будем разбираться.