У меня есть 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, а затем проверьте выход на каждом подключении по пути. Как только вы обнаружите, где соединение блокируется или обрывается, вы знаете, на чем сосредоточить свои усилия. Для этого вам не нужно много знать о сетях.
Это спасло меня кучу раз. Одна из распространенных проблем - неправильная установка шлюза по умолчанию на одной из машин. Неправильный маршрут может очень легко выглядеть так же, как неправильно настроенное правило брандмауэра.