Назад | Перейти на главную страницу

RDP через NAT

У меня есть VDS с Centos 7.6, есть KVM и 1 виртуальная машина с Win10. Оба могут видеть Интернет и друг друга, все было настроено с NAT по умолчанию. Теперь я хочу иметь возможность подключать RDP к окнам с помощью mstsc до VDS через какой-либо порт.

Три дня боев с мануалами ничего не дали. текущий конфиг выглядит так:

[root@static etc]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s31f6
  sources: 
  services: ssh dhcpv6-client vnc-server
  ports: 3389/tcp
  protocols: 
  masquerade: no
  forward-ports: port=3389:proto=tcp:toport=3389:toaddr=192.168.122.10
  source-ports: 
  icmp-blocks: 
  rich rules: 

что кажется правильным. Я действительно считаю, что это глупый и в общем-то тривиальный вопрос, но не знаю, куда двигаться дальше.

Есть идеи, пожалуйста?

UPD. подробнее, чтобы было понятнее.

Конфигурация хоста (без моста, только NAT, 1 физический интерфейс):

[root@static ~]# ifconfig enp0s31f6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 95.217.38.211  netmask 255.255.255.192  broadcast 95.217.38.255
        inet6 fe80::4e52:62ff:fe0b:9bee  prefixlen 64  scopeid 0x20<link>
        ether 4c:52:62:0b:9b:ee  txqueuelen 1000  (Ethernet)
        RX packets 9459  bytes 1506084 (1.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9368  bytes 5002008 (4.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16  memory 0xef200000-ef220000

Конфигурация клиента:

DHCP: no
IPv4: 192.168.121.10
MASK: 255.255.255.0
GATE: 192.168.122.1
DNS : 192.168.122.1

Когда я сталкиваюсь с подобными проблемами, я обычно запускаю tcpdump и / или wirehark, чтобы посмотреть, что происходит. У меня нет полной информации о вашей конфигурации, но я на мгновение предположу, что вы используете машину Linux с виртуальной машиной Windows, работающей на том же оборудовании.

Я бы запустил Wireshark в Windows и установил диалог параметров захвата для использования port 3389 как фильтр захвата. Это ограничит захватываемый трафик только портом RDP.

Как только это будет запущено, я бы сделал то же самое в командной строке Linux, особенно нацелившись на каждый интерфейс, поэтому для двух сетевых карт или интерфейсов потребуется запустить два экземпляра tcpdump. Команда будет выглядеть примерно так:

# tcpdump -i eth0 -p port 3389 
# tcpdump -i eth1 -p port 3389

... предполагая, что у вас есть два сетевых интерфейса, виртуальный или физический, вам нужно будет заменить правильное имя интерфейса параметром -i. Если у вас есть только один сетевой интерфейс, вы должны запустить только один экземпляр tcpdump. Если у вас нет tcpdump, возможно, вам придется установить его через диспетчер пакетов.

После того, как все захваты будут активны, попробуйте подключиться через RDP, а затем проверьте выход на каждом подключении по пути. Как только вы обнаружите, где соединение блокируется или обрывается, вы знаете, на чем сосредоточить свои усилия. Для этого вам не нужно много знать о сетях.

Это спасло меня кучу раз. Одна из распространенных проблем - неправильная установка шлюза по умолчанию на одной из машин. Неправильный маршрут может очень легко выглядеть так же, как неправильно настроенное правило брандмауэра.