В настоящее время я настраиваю гостевой сервер Windows с помощью kvm / qemu на хосте unbuntu 14.04 и мостовое сетевое соединение, чтобы сервер был доступен через Интернет.
Я пытаюсь дать своему серверу Windows тот же IP-адрес, что и моему хост-серверу Linux, этот IP-адрес является внешним IP-адресом сервера.
Я новичок в этом, поэтому я настроил свой мост, используя эту команду в Ubuntu 14.04.
virsh iface-bridge eth0 br0
Мой текущий мост, который я создал, выглядит следующим образом (отредактируйте внешний IP-адрес сервера, заменив его буквами).
br0 Link encap:Ethernet HWaddr 38:60:77:26:4a:b3
inet addr:aaa.bb.ccc.137 Bcast:aaa.bb.ccc.255 Mask:255.255.255.0
inet6 addr: aaaa:bbbb:8:e89::1/128 Scope:Global
inet6 addr: aaaa::bbbb:cccc:fe26:4ab3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1607000 errors:0 dropped:42 overruns:0 frame:0
TX packets:1458574 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3860135693 (3.8 GB) TX bytes:164453268 (164.4 MB)
eth0 Link encap:Ethernet HWaddr 38:60:77:26:4a:b3
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5629010 errors:0 dropped:0 overruns:0 frame:0
TX packets:2998492 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8133304283 (8.1 GB) TX bytes:446483217 (446.4 MB)
Interrupt:20 Memory:fe500000-fe520000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:50169 errors:0 dropped:0 overruns:0 frame:0
TX packets:50169 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:12576653 (12.5 MB) TX bytes:12576653 (12.5 MB)
virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:402 errors:0 dropped:0 overruns:0 frame:0
TX packets:76 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:67355 (67.3 KB) TX bytes:50853 (50.8 KB)
А вот и мой / etc / network / interfaces, созданный с помощью указанной выше команды.
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
address aaa.bb.ccc.137
netmask 255.255.255.0
gateway aaa.bb.ccc.254
bridge_ports eth0
bridge_stp on
bridge_fd 0
iface br0 inet6 static
address aaaa:bbbb:8:E89::1
netmask 128
Вот мое шоу brctl, показывающее, что мой гость добавляется к мосту, который я назначил своему гостю с помощью virt-manager. vnet0 - мой гость.
root@ns388356:~# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.386077264ab3 yes eth0
vnet0
virbr0 8000.000000000000 yes
Теперь я захожу в этот nic через драйверы virtio, которые правильно установлены на гостевой ОС.
Я ничего не могу получить от гостя, не упустил ли я здесь что-то важное? У меня тоже есть IPv6-адрес, возможно ли использовать его только для гостевой ОС?
ОБНОВИТЬ:
В конце концов, я просто сохранил сетевой интерфейс nat по умолчанию, а затем просто использовал iptables для перенаправления внешних соединений на определенных портах на внутренний эквивалент. Ничего особенного, и я очень смущен тем, насколько это было просто.
Вот какие команды я использовал.
iptables -t nat -A PREROUTING -p tcp -d (external ip) --dport 3389 -j DNAT --to-destination 192.168.122.202:3389
Это добавило правило в брандмауэр
iptables -t nat -D PREROUTING -p tcp -d (external ip) --dport 3389 -j DNAT --to-destination 192.168.122.202=:3389
Это удалило его при необходимости (dhcp назначает новый внутренний IP-адрес)
Затем я просто сбрасываю iptables
iptables --flush
Теперь их нужно сохранить, поскольку они теряются при перезагрузке.
Вы не можете дать двум машинам одинаковый IP-адрес и ожидать, что они будут работать.
Дайте гостю Windows другой IP-адрес.