Мои соболезнования по поводу двойного NAT.
Если у вас есть root-доступ на VPS, попробуйте использовать переадресацию порта назначения с помощью iptables (DNATing). На VPS выполните следующие команды
sysctl -w net.ipv4.ip_forward=1 #see link above to make this setting survive reboots
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to-destination x.y.z.w
где eth0 - интернет-интерфейс VPS, а x.y.z.w
- IP-адрес вашего домашнего компьютера через туннель OpenVPN. Возможно, вам придется повторить приведенные выше команды с заменой -p tcp
на -p udp
если пересылаемая служба требует как TCP, так и UDP. Если у вас есть политика DROP по умолчанию в цепочке FORWARD (маловероятно), вам нужно что-то вроде iptables -A FORWARD -i eth0 -p tcp --dport 80 -d x.y.z.w -j ACCEPT
Совершенно другой способ переадресации портов TCP - использовать ssh
с опцией -R
. Выполните следующую команду на вашем домашнем компьютере
ssh -N -R *:3389:x.y.z.w:3389 user@m.n.o.p
где x.y.z.w
- как указано выше, m.n.o.p
- это IP-адрес вашего VPS, а user
- ваш ssh-логин на VPS. Вам нужно установить GatewayPorts yes
в /etc/ssh/sshd_config
(и перезапустить sshd
) на VPS.