Можно загрузиться с живым дистрибутивом Linux и типом:
dd if=/dev/sda of=/dev/sdb bs=1m
Где /dev/sda
узел устройства входа (источник) диск и /dev/sdb
узел устройства вывода (целевой) диск. Это сделает диски ТОЧНО идентичными. Конечный диск должен быть, по крайней мере, столь же большим как источник.
Кажется что DNAT для трафика обратной связи невозможен.
Трафик обратной связи пропускает цепочки PREROUTING и OUTPUT. loopback address. A datagram sent by a higher-level protocol to an address anywhere within this block loops back inside the host. This is ordinarily implemented using only 127.0.0.1/32 for loopback. As described in [RFC1122], Section 3.2.1.3, addresses within the entire Блоки 127.0.0.0/8 не появляются ни в одной сети на законных основаниях.
Кроме того, трафик на интерфейс обратной связи
рассматривается как Марсианские пакеты
:
эти пакеты фактически не могут быть отправлены как заявлено или будет доставлено
Обходной путь:
Простая альтернатива - использовать inted
сервер на стороне Сервера и его функция перенаправления
.
Таким образом, вы можете определить службу un в inetd
и установить порт, который эта служба будет слушать. Затем установите директиву redirect
для привязки этого порта к 127.0.0.1:port
.
В моем примере ниже я буду использовать xinetd
(в Ubuntu 12.04 LTS) для привязки сервера mysql
, работающего на 127.0.0.1:10000
:
Шаг 1: Установите пакет: apt-get install xinetd
Шаг 2: Отредактируйте файл конфигурации /etc/xinetd.conf
Добавьте определение службы, подобное приведенному ниже :
service my_redirector
{
type = UNLISTED
disable = no
socket_type = stream
protocol = tcp
user = root
wait = no
port = 15000
redirect = 127.0.0.1 10000
log_type = FILE /tmp/somefile.log
}
Шаг 3: Перезапустить xinetd
демон: service xinetd restart
Шаг 4: давайте проверим прослушиватель на порту 15000
:
# netstat -anp | grep 15000
tcp 0 0 0.0.0.0:15000 0.0.0.0:* LISTEN 4654/xinetd
Шаг 5: Добавьте свои iptables
правила:
iptables -A INPUT -i eth0 -p tcp -d 192.168.0.60 --dport 15000 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp -s 192.168.0.60 --sport 15000 -j ACCEPT
Давайте протестируем:
Для тестирования я установил mysql
для прослушивания 127.0. 0,1: 10000
. Я попытаюсь получить к нему доступ через службу xinetd
на порту 15000
.
Во-первых, на стороне сервера я проверяю, что сервер mysql
только слушает на 127.0.0.1:10000
:
# netstat -anp | grep :10000
tcp 0 0 127.0.0.1:10000 0.0.0.0:* LISTEN 4247/mysqld
Затем на стороне клиента пусть ' s проверьте, можем ли мы подключиться через порт 15000
:
# telnet 192.168.0.60 15000
Trying 192.168.0.60...
Connected to 192.168.0.60.
Escape character is '^]'.
_
5.5.35-0ubuntu0.12.04.2-logD46S}<P`.6cr4ITIQ<wcmysql_native_password
Кажется, мы можем! :)
Попробуем подключиться к серверу mysql
:
# mysql -h 192.168.0.60 --port=15000 -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 67
Server version: 5.5.35-0ubuntu0.12.04.2-log (Ubuntu)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Готово!