Настройка сервера Linux для работы сайта в TON

Обновлено и опубликовано Опубликовано:

В двух словах, TON — открытая децентрализованная сеть. Эта такая сеть, в которой нельзя просто так заблокировать какой-либо ресурс, но с другой стороны, для того, чтобы пользоваться данной сетью, нужно устанавливать специальный прокси. В данной инструкции мы рассмотрим настройку такого прокси со стороны веб-сервера, который должен отдавать содержимое сайта в сети TON.

Предполагается, что у нас уже есть сервер, который возвращает сайт по http. Полезные ссылки по настройке собственного веб-сервера будут приведены в конце инструкции.

Подготовка системы

Настройка брандмауэра

Прокси на сервере будет принимать запросы по портам 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 была в положении «Включено»:

Прокси TON должен быть включен, чтобы мы могли работать с адресацией ADNL

Теперь в адресной строке браузера вводим адрес adnl, который был нами получен при его инициализации — http://vexfold5dhcr2j3n3frk7awqwvubc67lau5o2uu3o3h5bhrrwocdfp3.adnl.

Если настройки выполнены корректно, мы должны увидеть наш сайт.

Читайте также

Другие полезные инструкции:

1. Полноценный веб-сервер на CentOS 7.

2. Полноценный веб-сервер на Rocky Linux / CentOS 8.

3. Полноценный веб-сервер на Ubuntu.

4. Установка Docker на Linux.

5. Шпаргалка по работе с docker-compose.

# Linux # Интернет # Серверы # Сети
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет