2013-11-07 2 views

ответ

1

На самом деле, вы можете (вроде)

Его немного сложнее и не будет работать все время, но вот суть того, как это работает:

Дано:

RouterA с публичным IP 1.2.3.4

PC1 с частным IP-адресом ABCD (за маршрутизатором А)

RouterB с общественной IP 5.6.7.8

PC2 с частным IP-адресом EFGH (за маршрутизатором B)

Теперь, учитывая идеальное решение (т.е. нет PAT) ...

Шаг A:

Отправить любое сообщение из PC1 на любой порт (10000 для данного примера) к общественному IP для RouterB (4.5.6.7). Это зарегистрирует a.b.c.d: 10000 -> 4.5.6.7:10000 на NAT и PAT для routerA. RouterB отбрасывает этот пакет (как и ожидалось, потому что он не запрашивался).

Шаг B: В то же время непрерывно отправляйте пакет с PC2 на общедоступный IP-адрес маршрутизатора A (1.2.3.4) на том же порту (10000). Это будет регистрироваться, например, f.h: 10000 -> 1.2.3.4:10000, на NAT и PAT RouterB.

Шаг C:

Теперь, вот где происходит волшебство:

PC2 постоянно посылает пакет RouterA, таким образом, сохраняя «дыру» открыта в RouterB ответа вернуться. Когда PC1 отправит его один пакет в RouterB, он появится в RouterB в качестве ответа и поэтому будет перенаправлен на PC2. После того как PC2 получит этот «ответ», убедитесь, что еще один пакет выключен и перестает отправлять непрерывные пакеты. Этот последний пакет будет действовать как «ответ» на ПК1 и пройти через «дыру», созданную на шаге А. И вуаля! Теперь у вас NAT трансверсаль. Вам нужно всего лишь отправить один пакет каждую минуту или около того, чтобы обе стороны открывали «отверстие».

ПРИМЕЧАНИЕ. Это ТОЛЬКО работает с UDP, поскольку оно не требует установления соединения (отброшенные пакеты в порядке).

Теперь почти все маршрутизаторы используют PAT, поэтому вам нужно «угадать», какой порт «реагирует» на большинство маршрутизаторов, сделает смещение + -10 (то есть a.b.c.d: 10000 -> 5.6.7.8:10010).

Просто попробуйте несколько в этом диапазоне (от -10 до +10, пока вы не получите ответ)

остальных маршрутизаторов случаен на их PAT. Если это так, вы ввернуты ... Попробуйте другое направление (т.е.e запустите соединение в другом направлении). Если это не удается, вы не можете подключиться ... извините)

0

Итак, из того, что я понимаю, у вас есть веб-сервер, работающий там, где нужно перенаправить вещи, и порт маршрутизатора, к которому у вас нет доступа; и вы хотите подключить эти два.

Я очень сомневаюсь, что есть способ сделать это, если только вы имели доступ SUDO к маршрутизатору, вы можете использовать IPTables для перенаправления

Смежные вопросы