add full guide
This commit is contained in:
143
mtproto.md
Normal file
143
mtproto.md
Normal file
@@ -0,0 +1,143 @@
|
|||||||
|
### 1.Генерация ключа
|
||||||
|
```bash
|
||||||
|
docker run --rm nineseconds/mtg:2 generate-secret --hex nextcloud.s.prox07-tg.ru
|
||||||
|
Итог: ee5d4504a8802be40de729445e45ec644c6e657874636c6f75642e732e70726f7830372d74672e7275
|
||||||
|
```
|
||||||
|
### 2.Поднятие в докере MTProto + faketls
|
||||||
|
docker run -d \
|
||||||
|
--name mtproto-proxy \
|
||||||
|
--restart unless-stopped \
|
||||||
|
-p 443:443 \
|
||||||
|
nineseconds/mtg:2 \
|
||||||
|
simple-run -n 1.1.1.1 -i prefer-ipv4 0.0.0.0:443 ee5d4504a8802be40de729445e45ec644c6e657874636c6f75642e732e70726f7830372d74672e7275
|
||||||
|
### 3.Настройка sni + балансировка в roundrobin
|
||||||
|
файл `/etc/haproxy/haproxy.cfg`:
|
||||||
|
```haproxy
|
||||||
|
frontend https_front
|
||||||
|
bind *:443
|
||||||
|
mode tcp
|
||||||
|
tcp-request inspect-delay 5s
|
||||||
|
tcp-request content accept if { req_ssl_hello_type 1 }
|
||||||
|
|
||||||
|
# Разделение по доменам (SNI)
|
||||||
|
use_backend ide_backend if { req_ssl_sni -i ide.prox07-tg.ru }
|
||||||
|
use_backend ide_backend if { req_ssl_sni -i proxmox.lord-mikrotik.ru }
|
||||||
|
use_backend mtproto_backend if { req_ssl_sni -i nextcloud.s.prox07-tg.ru }
|
||||||
|
|
||||||
|
# Если зашли по IP или левому домену — на Nginx (заглушка)
|
||||||
|
default_backend ide_backend
|
||||||
|
|
||||||
|
backend ide_backend
|
||||||
|
mode tcp
|
||||||
|
server local_nginx 127.0.0.1:4443 # Тут висит Nginx
|
||||||
|
|
||||||
|
backend mtproto_backend
|
||||||
|
mode tcp
|
||||||
|
balance roundrobin
|
||||||
|
#Основные ноды
|
||||||
|
server nextcloud 77.232.135.174:7443 check weight 100 inter 2s rise 2 fall 3
|
||||||
|
server gitea-matrix 188.225.32.119:9443 check weight 100 inter 2s rise 2 fall 3
|
||||||
|
#Резервные ноды
|
||||||
|
server dns 45.153.70.57:9443 check backup inter 2s rise 2 fall 3
|
||||||
|
```
|
||||||
|
### 4.Получение сертификатов для поддоменов
|
||||||
|
```bash
|
||||||
|
certbot certonly --standalone -d ваш_домен.com
|
||||||
|
```
|
||||||
|
### 5.Пример найтроенного nginx
|
||||||
|
файл ``
|
||||||
|
```nginx
|
||||||
|
server {
|
||||||
|
listen 80 default_server;
|
||||||
|
listen [::]:80 default_server;
|
||||||
|
|
||||||
|
# SSL configuration
|
||||||
|
#
|
||||||
|
# listen 443 ssl default_server;
|
||||||
|
# listen [::]:443 ssl default_server;
|
||||||
|
#
|
||||||
|
# Note: You should disable gzip for SSL traffic.
|
||||||
|
# See: https://bugs.debian.org/773332
|
||||||
|
#
|
||||||
|
# Read up on ssl_ciphers to ensure a secure configuration.
|
||||||
|
# See: https://bugs.debian.org/765782
|
||||||
|
#
|
||||||
|
# Self signed certs generated by the ssl-cert package
|
||||||
|
# Don't use them in a production server!
|
||||||
|
#
|
||||||
|
# include snippets/snakeoil.conf;
|
||||||
|
|
||||||
|
root /var/www/html;
|
||||||
|
|
||||||
|
# Add index.php to the list if you are using PHP
|
||||||
|
index index.html index.htm index.nginx-debian.html;
|
||||||
|
|
||||||
|
server_name _;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
# First attempt to serve request as file, then
|
||||||
|
# as directory, then fall back to displaying a 404.
|
||||||
|
try_files $uri $uri/ =404;
|
||||||
|
}
|
||||||
|
|
||||||
|
# pass PHP scripts to FastCGI server
|
||||||
|
#
|
||||||
|
#location ~ \.php$ {
|
||||||
|
# include snippets/fastcgi-php.conf;
|
||||||
|
#
|
||||||
|
# # With php-fpm (or other unix sockets):
|
||||||
|
# fastcgi_pass unix:/run/php/php7.4-fpm.sock;
|
||||||
|
# # With php-cgi (or other tcp sockets):
|
||||||
|
# fastcgi_pass 127.0.0.1:9000;
|
||||||
|
#}
|
||||||
|
|
||||||
|
# deny access to .htaccess files, if Apache's document root
|
||||||
|
# concurs with nginx's one
|
||||||
|
#
|
||||||
|
#location ~ /\.ht {
|
||||||
|
# deny all;
|
||||||
|
#}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 4443 ssl;
|
||||||
|
server_name nextcloud.s.prox07-tg.ru;
|
||||||
|
|
||||||
|
ssl_certificate /etc/letsencrypt/live/nextcloud.s.prox07-tg.ru/fullchain.pem;
|
||||||
|
ssl_certificate_key /etc/letsencrypt/live/nextcloud.s.prox07-tg.ru/privkey.pem;
|
||||||
|
|
||||||
|
# Редирект на другой сервер
|
||||||
|
return 301 https://nextcloud.lord-mikrotik.ru$request_uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 4443 ssl http2;
|
||||||
|
server_name ide.prox07-tg.ru;
|
||||||
|
|
||||||
|
ssl_certificate /etc/letsencrypt/live/ide.prox07-tg.ru/fullchain.pem;
|
||||||
|
ssl_certificate_key /etc/letsencrypt/live/ide.prox07-tg.ru/privkey.pem;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass http://127.0.0.1:8082; # Порт code-server
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 4443 ssl http2;
|
||||||
|
server_name proxmox.lord-mikrotik.ru;
|
||||||
|
|
||||||
|
ssl_certificate /etc/letsencrypt/live/proxmox.lord-mikrotik.ru/fullchain.pem;
|
||||||
|
ssl_certificate_key /etc/letsencrypt/live/proxmox.lord-mikrotik.ru/privkey.pem;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass https://10.135.0.243:8006; # Порт proxmox
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user