Пример, для простоты рассматриваю две машины в локальной сети, но для машин в интернете будет то же самое.
Дано:
1) Машина с ip 192.168.1.244 и демоном novacoind, слушающим на 127.0.0.1 и порту 7777.
2) Машина с голой ОС и ip 192.168.1.4, на которой нет ничего кроме ssh.
Задача:
Сделать так, чтобы у других юзеров сети создалась иллюзия того, что демон novacoind живет на машине по адресу 192.168.1.4.
Решение:
В терминале на машине 192.168.1.4 набираем:
Откроется ssh сессия с хостом 192.168.1.244,
$ ssh -L 192.168.1.4:7777:127.0.0.1:7777 [email protected]
[email protected]'s password:
Linux Cubian 3.4.79-sun7i #8 SMP PREEMPT Mon Apr 28 13:26:48 CST 2014 armv7l
______ __ __ .______ __ ___ .__ __.
/ || | | | | _ \ | | / \ | \ | |
| ,----'| | | | | |_) | | | / ^ \ | \| |
| | | | | | | _ < | | / /_\ \ | . ` |
| `----.| `--' | | |_) | | | / _____ \ | |\ |
\______| \______/ |______/ |__| /__/ \__\ |__| \__|
http://cubian.org
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Mar 27 22:33:32 2016 from i7-970.local
user@Cubian:~$
и установится туннель 192.168.1.4:7777 <--> локальный интерфейс хоста:7777.
Проверяем на другой машине:
$ nc -zv 192.168.1.4 7777
(UNKNOWN) [192.168.1.4] 7777 (?) open
$
Порт действительно открыт, но для верности попробуем подключиться клиентом путем указания опции -connect=192.168.1.4:7777.
01:35:52 getpeerinfo
01:35:52
[
{
"addr" : "192.168.1.4",
"services" : "00000001",
"lastsend" : 1459118139,
"lastrecv" : 1459118141,
"bytessent" : 1163,
"bytesrecv" : 7478,
"conntime" : 1459118139,
"version" : 60017,
"subver" : "/Satoshi:0.7.6.6/",
"inbound" : false,
"releasetime" : 0,
"startingheight" : 245597,
"banscore" : 0,
"syncnode" : true
}
]
Подтверждается, что теперь постучавшиеся на 192.168.1.4 видят клиента, которого на самом деле там нет. И у которого даже прямого доступа в сеть нет, потому что он слушает только на 127.0.0.1.
Соединение при этом зашифровано и анализ трафика не позволит понять, что же передается по туннелю. Однако, целеустремленный админ увидит туннель и открытый на обратной стороне порт 7777, и поймет что это значит. Если этот вопрос волнует, то можно SSH туннель завернуть в Tor для пущей надежности, тогда уже точно никто не поймет вообще ничего.
Заворачивается SSH в Tor вот таким образом:
https://habrahabr.ru/post/237019/С тором конфигурация будет выглядеть примерно так:
Узел с клиентом <-> неопределенные узлы сети Tor <-> Узел с доступным для соединения интерфейсом на порту 7777.
За исключением настройки Hidden Service на машине с клиентом, в итоге настраивается так же, только SSH сессию на удаленном хосте надо будет открывать с .onion адресом.
P.S. Естественно, в нашем примере остальные юзеры должны как-то узнать о существовании демона, доступного по адресу 192.168.1.4, иначе к нему никто не подключится. Решается этот вопрос addnode на нескольких узлах за пределами проблемной юрисдикции, постепенно адрес расползется по сети.
P.P.S. Прочитал и вдруг осенило, что это прямо какая-то инструкция по поднянию сайта со специфическим содержимым.
В странные времена мы живем...
P.P.P.S. Вообще же, все манипуляции выше можно перечеркнуть и по всё той же заметке на habrahabr поднять Hidden Service для novacoind, подключенного к сети через Tor. После чего желательно будет сообщить свой onion-адрес, дабы он был добавлен в клиент и тем самым представительство NVC в сети Tor было бы увеличено.
Помимо простоты и пользы для окружающих, бонусом данного решения является также и отсутствие необходимости во внешнем IP адресе.