У меня возникли проблемы с использованием переадресации портов между одним хост-компьютером (machine01) и одной из его гостевых виртуальных машин (machine02), которая подключается к удаленному серверу OpenVPN, и мне нужна помощь в поиске проблемы, поскольку она возникает только тогда, когда machine02 подключается к удаленному серверу VPN и бывает с любым портом.
machine01 (хост, Fedora 31 Server) информация о сети:
Interface eth0:
ip: 10.0.2.100/24
gateway: 10.0.2.1
Interface virbr0 (virtual):
ip: 10.0.5.1/24
machine02 (гость, CentOS 8) информация о сети
interface eth0 (virtual):
ip: 10.0.5.10/24
gateway: 10.0.5.1
Если я настрою machine01 для перенаправления порта 2222 на порт 22 machine02, используя:
[admin@machine01 ~]$ sudo firewall-cmd --zone=FedoraServer --add-masquerade --permanent;
[admin@machine01 ~]$ sudo firewall-cmd --permanent --zone=FedoraServer --add-forward-port=port=2222:proto=tcp:toport=22:toaddr=10.0.5.10;
[admin@machine01 ~]$ sudo firewall-cmd --reload;
Я могу успешно подключиться к machine02 с другого компьютера в той же сети, что и machine01, используя:
[admin@laptop ~]$ ssh user@machine01.local -p 2222
или
[admin@laptop ~]$ ssh user@10.0.2.100 -p 2222
Но когда я подключаю machine02 к какому-либо серверу OpenVPN, не имеет значения, используется ли openvpnclient или systemd, я больше не могу подключаться к machine02 с любого другого компьютера таким же образом, вместо этого у меня каждый раз был тайм-аут.
[admin@laptop ~]$ ssh user@10.0.2.100 -p 2222
ssh: connect to host 10.0.2.100 port 2222: Connection timed out
Единственный способ получить доступ к портам machine02 (то есть: порт 22 openssh) - это machine01.
Используя iptstat в machine01, я вижу, что соединение застряло на "SYN_SENT" до TTL
[admin@machine01 ~]$ sudo iptstate
Source Destination Prt State TTL
10.0.2.150:60056 10.0.5.10:22 tcp SYN_SENT 0:00:20
На самом деле я не знаю, что можно сделать по этому поводу, и мне нужна помощь, чтобы выяснить, в чем проблема, ошибка ли это или что-то в этом роде, и самое главное: проблема в конфигурации machine01 или machine02.
Спасибо за внимание и извиняюсь за ошибку в моем написании, я не владею английским языком.