В двух словах, TON — открытая децентрализованная сеть. Эта такая сеть, в которой нельзя просто так заблокировать какой-либо ресурс, но с другой стороны, для того, чтобы пользоваться данной сетью, нужно устанавливать специальный прокси. В данной инструкции мы рассмотрим настройку такого прокси со стороны веб-сервера, который должен отдавать содержимое сайта в сети TON.
Предполагается, что у нас уже есть сервер, который возвращает сайт по http. Полезные ссылки по настройке собственного веб-сервера будут приведены в конце инструкции.
Предварительная настройка
Настройка TON-прокси на сервере
Проверка подключения
Дополнительная информация
Подготовка системы
Настройка брандмауэра
Прокси на сервере будет принимать запросы по портам 3333/udp и 8080/tcp. Нам необходимо открыть их на фаерволе.
В зависимости от утилиты, которая используется для управления межсетевым экраном, наши команды будут отличаться.
а) Iptables (как правило, в системах DEB):
iptables -I INPUT -p udp —dport 3333 -j ACCEPT
iptables -I INPUT -p tcp —dport 8080 -j ACCEPT
Для сохранения правил используем iptables-persistent:
apt install iptables-persistent
netfilter-persistent save
б) Firewalld (как правило, в системах RPM):
firewall-cmd —permanent —add-port=3333/udp
firewall-cmd —permanent —add-port=8080/tcp
firewall-cmd —reload
Установка Docker
Прокси TON разворачивается как Docker-процесс. Для этого нам необходимо установить Docker и docker-compose.
Подробнее об этом читайте в инструкции Установка Docker на Linux .
Настройка и запуск прокси TON
Разработчик предоставляет готовые сценарии docker-compose для запуска прокси. Скачиваем их командой:
git clone https://github.com/kdimentionaltree/ton-proxy-docker.git
Если наша система вернет ошибку, что команды git не существует, необходимо установить одноименный пакет одной из команд (в зависимости от типа системы):
apt install git
yum install git
Перенесем загруженный каталог в папку /opt:
mv ton-proxy-docker /opt/ton-proxy
И перейдем в нее:
cd /opt/ton-proxy
Откроем на редактирование docker-compose файл:
vi docker-compose.yaml
Немного его отредактируем:
services:
rldp-proxy:
…
container_name: rldp-http-proxy
restart: unless-stopped
…
networks:
vpcbr:
ipv4_address: 172.20.0.2
…
networks:
vpcbr:
driver: bridge
ipam:
config:
— subnet: 172.20.0.0/24
gateway: 172.20.0.1
* где:
- container_name — задает имя контейнера. Для нашего удобства мы даем название rldp-http-proxy/
- restart — выставляем режим загрузки. В данном примере мы говорим, что если контейнер не был, явно, выключен, то при загрузке хоста нужно запускать и контейнер.
- networks — настройка сети. В нашем примере мы задем статический IP-адрес 172.20.0.2. Нам важно задать определенную подсеть для настройки проксирования.
Подробные примеры работы с docker-compose в инструкции Шпаргалка по работе с docker-compose .
Выполним сборку docker образа:
docker-compose build
Выполним инициализацию — создадим сетевой абстрактный адрес ADNL:
./init.sh
Мы должны увидеть что-то на подобие:
ADNL_HEX: 4972B963E8CE28E93B6EC5157C1685AB408B7F5829D76A94DBAA7E84F18D9C21, ADNL: vexfold5dhcr2j3n3frk7awqwvubc67lau5o2uu3o3h5bhrrwocdfp3
* ADNL используется для прямого перехода по данному адресу. ADNL_HEX нужен для привязки абстрактного адреса к доменному имени в зоне ton.
Фиксируем данные значения.
При необходимости, данный адрес можно посмотреть еще раз, открыв файл adnl в каталоге private :
cat private/adnl
Теперь открываем файл:
vi .env
И редактируем несколько строк:
TON_PROXY_PORT=8080
TON_PROXY_SERVER_IP=95.95.95.95
TON_PROXY_ADNL_PORT=3333
TON_PROXY_REMOTE_ADDR=»172.20.0.1:80″
TON_PROXY_VERBOSITY=3
TON_PROXY_PROXY_ALL=NO
* где:
- TON_PROXY_SERVER_IP — внешний IP-адрес, на который будут приходить запросы к прокси.
- TON_PROXY_REMOTE_ADDR — адрес сервера, на котором работает сайт. Так как у нас контейнер, мы указываем IP хоста docker. Именно поэтому нам и важно было задать конкретную подсеть контейнеру.
Все готово, чтобы запустить наш контейнер:
docker-compose up -d
Проверка
Мы можем перейти по ADNL-адресу в нашем браузере. Но чтобы он мог работать с данной адресацией, необходимо установить плагин.
Есть различные программы для решения данной задачи. Приведем пример работы с MyTonWallet. Это расширение существует для различных браузеров. Его установка выполняется штатным образов через магазин расширений.
Для включения прокси, открываем настройки и проверяем, чтобы настройка TON Proxy была в положении «Включено»:
Теперь в адресной строке браузера вводим адрес adnl, который был нами получен при его инициализации — http://vexfold5dhcr2j3n3frk7awqwvubc67lau5o2uu3o3h5bhrrwocdfp3.adnl .
Если настройки выполнены корректно, мы должны увидеть наш сайт.
Читайте также
Другие полезные инструкции:
1. Полноценный веб-сервер на CentOS 7 .
2. Полноценный веб-сервер на Rocky Linux / CentOS 8 .
3. Полноценный веб-сервер на Ubuntu .