моя установка сделана (на том же хосте):
- сетевая карта (NIC) eth0 со статическим IP 192.168.1.10
- метка на NIC eth0: 0 со статическим IP 192.168.1.11
- виртуальная гостевая машина (используя KVM) на 192.168.122.11 на virbr0
Я могу SSH гостевую машину с хоста, используя его IP 192.168.122.11, и я могу SSH хост-машину с удаленного компьютера в локальной сети, используя его IP 192.168.1.10.
Я хотел бы сделать виртуальную гостевую систему доступной из локальной сети через помеченную сетевую карту, чтобы я мог SSH в 192.168.122.11, подключившись к 192.168.1.11 с удаленной машины.
+--------------+
| Machine Ext2 |
+--------------+
| ssh to 192.168.1.11:2222
|
+--------+
| Router |
+--------+
|
| (192.168.1.11:2222)
+----------------------------------------------+
| Machine Ext1 (Host) |
| <--> iptables <--> Guest (192.168.122.11:22) |
+----------------------------------------------+
я вдохновился многими вещами из разных учебников по интернету (все выглядят более или менее одинаково), но ничего не работает, и я не могу понять правильную настройку..
идея в том, чтобы создать следующее, вперед, и POSTROUTING правила с iptables так входящий и исходящий трафик перенаправляется правильно.
я отредактировал /etc / sysctl.conf так что ip_fordward=1 и выполнил следующие команды iptables:
$ sudo iptables -t nat -A PREROUTING -i virbr0 -p tcp -d 192.168.1.11 --dport 2222 -j DNAT --to-destination 192.168.122.11:22
$ sudo iptables -A FORWARD -p tcp -d 192.168.122.11 --dport 22 -j ACCEPT
$ sudo iptables -t nat -A POSTROUTING -o virbr0 -p tcp -d 192.168.122.11 -j ACCEPT
пинг 192.168.1.11 все еще работает нормально. Но подключение к 192.168.1.11:2222 не удается:
$ telnet 192.168.1.11 2222
$ telnet: Unable to connect to remote host: Connection refused
Я чувствую, что я близок, чтобы получить его работу, но упустить что-то.. Можешь мне немного помочь?
С уважением,