[vault-77] vault terraform init configuration
This commit is contained in:
335
files/selfsni.sh
Normal file
335
files/selfsni.sh
Normal file
@@ -0,0 +1,335 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Перед запуском скрипта задайте переменную с именем вашего домена
|
||||||
|
# Замените vstavit-domen на ваш домен
|
||||||
|
# export domain=vstavit-domen
|
||||||
|
apt update
|
||||||
|
apt install curl wget nginx qrencode jq -y
|
||||||
|
|
||||||
|
# Получаем сертификат
|
||||||
|
wget -O - https://get.acme.sh | sh
|
||||||
|
~/.acme.sh/acme.sh --upgrade --auto-upgrade
|
||||||
|
~/.acme.sh/acme.sh --issue --server letsencrypt -d $domain -w /var/www/html --keylength ec-256 --force
|
||||||
|
~/.acme.sh/acme.sh --installcert -d $domain --cert-file ~/.acme.sh/acme.sh/$domain_ecc/$domain.cer --key-file ~/.acme.sh/acme.sh/$domain_ecc/$domain.key --fullchain-file ~/.acme.sh/acme.sh/$domain_ecc/fullchain.cer --ecc
|
||||||
|
|
||||||
|
# Копируем сертификаты в другую папку для Xray
|
||||||
|
mkdir -p /usr/local/etc/xray/xray_cert/
|
||||||
|
~/.acme.sh/acme.sh --install-cert -d $domain --ecc \
|
||||||
|
--fullchain-file /usr/local/etc/xray/xray_cert/xray.crt \
|
||||||
|
--key-file /usr/local/etc/xray/xray_cert/xray.key
|
||||||
|
chmod +r /usr/local/etc/xray/xray_cert/xray.key
|
||||||
|
|
||||||
|
# Создаем файл установки в папку обновленного сертификата
|
||||||
|
# Проверить добавление выполнения этого скрипта в cron:
|
||||||
|
# 0 1 1 * * bash /usr/local/etc/xray/xray_cert/xray-cert-renew
|
||||||
|
|
||||||
|
touch /usr/local/etc/xray/xray_cert/xray-cert-renew
|
||||||
|
cat << EOF > /usr/local/etc/xray/xray_cert/xray-cert-renew
|
||||||
|
#!/bin/bash
|
||||||
|
$PWD/.acme.sh --install-cert -d $domain --ecc --fullchain-file /usr/local/etc/xray/xray_cert/xray.crt --key-file /usr/local/etc/xray/xray_cert/xray.key
|
||||||
|
chmod +r /usr/local/etc/xray/xray_cert/xray.key
|
||||||
|
sudo systemctl restart xray
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod +x /usr/local/etc/xray/xray_cert/xray-cert-renew
|
||||||
|
|
||||||
|
crontab -l | grep -q "xray-cert-renew" || (crontab -l; echo "0 1 1 * * bash /usr/local/etc/xray/xray_cert/xray-cert-renew") | crontab -
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Включаем bbr
|
||||||
|
bbr=$(sysctl -a | grep net.ipv4.tcp_congestion_control)
|
||||||
|
if [ "$bbr" = "net.ipv4.tcp_congestion_control = bbr" ]; then
|
||||||
|
echo "bbr уже включен"
|
||||||
|
else
|
||||||
|
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
|
||||||
|
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
|
||||||
|
sysctl -p
|
||||||
|
echo "bbr включен"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Устанавливаем ядро Xray
|
||||||
|
bash -c "$(curl -4 -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
|
||||||
|
[ -f /usr/local/etc/xray/.keys ] && rm /usr/local/etc/xray/.keys
|
||||||
|
touch /usr/local/etc/xray/.keys
|
||||||
|
echo "shortsid: $(openssl rand -hex 8)" >> /usr/local/etc/xray/.keys
|
||||||
|
echo "uuid: $(xray uuid)" >> /usr/local/etc/xray/.keys
|
||||||
|
echo "domain: $domain" >> /usr/local/etc/xray/.keys
|
||||||
|
|
||||||
|
export uuid=$(cat /usr/local/etc/xray/.keys | awk -F': ' '/uuid/ {print $2}')
|
||||||
|
|
||||||
|
# Создаем файл конфигурации Xray
|
||||||
|
touch /usr/local/etc/xray/config.json
|
||||||
|
cat << EOF > /usr/local/etc/xray/config.json
|
||||||
|
{
|
||||||
|
"dns": {
|
||||||
|
"servers": [
|
||||||
|
"https+local://1.1.1.1/dns-query",
|
||||||
|
"localhost"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"routing": {
|
||||||
|
"domainStrategy": "IPIfNonMatch",
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"type": "field",
|
||||||
|
"domain": [
|
||||||
|
"geosite:category-ads-all"
|
||||||
|
],
|
||||||
|
"outboundTag": "block"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"inbounds": [
|
||||||
|
{
|
||||||
|
"port": 443,
|
||||||
|
"protocol": "vless",
|
||||||
|
"settings": {
|
||||||
|
"clients": [
|
||||||
|
{
|
||||||
|
"email": "main",
|
||||||
|
"id": "$uuid",
|
||||||
|
"flow": "xtls-rprx-vision",
|
||||||
|
"level": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"decryption": "none",
|
||||||
|
"fallbacks": [
|
||||||
|
{
|
||||||
|
"dest": 8080
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"streamSettings": {
|
||||||
|
"network": "tcp",
|
||||||
|
"security": "tls",
|
||||||
|
"tlsSettings": {
|
||||||
|
"fingerprint": "chrome",
|
||||||
|
"alpn": "http/1.1",
|
||||||
|
"certificates": [
|
||||||
|
{
|
||||||
|
"certificateFile": "/usr/local/etc/xray/xray_cert/xray.crt",
|
||||||
|
"keyFile": "/usr/local/etc/xray/xray_cert/xray.key"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outbounds": [
|
||||||
|
{
|
||||||
|
"protocol": "freedom",
|
||||||
|
"tag": "direct"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"protocol": "blackhole",
|
||||||
|
"tag": "block"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Исполняемый файл для списка клиентов
|
||||||
|
touch /usr/local/bin/userlist
|
||||||
|
cat << 'EOF' > /usr/local/bin/userlist
|
||||||
|
#!/bin/bash
|
||||||
|
emails=($(jq -r '.inbounds[0].settings.clients[].email' "/usr/local/etc/xray/config.json"))
|
||||||
|
|
||||||
|
if [[ ${#emails[@]} -eq 0 ]]; then
|
||||||
|
echo "Список клиентов пуст"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Список клиентов:"
|
||||||
|
for i in "${!emails[@]}"; do
|
||||||
|
echo "$((i+1)). ${emails[$i]}"
|
||||||
|
done
|
||||||
|
EOF
|
||||||
|
chmod +x /usr/local/bin/userlist
|
||||||
|
|
||||||
|
# исполняемый файл для ссылки основного пользователя
|
||||||
|
touch /usr/local/bin/mainuser
|
||||||
|
cat << 'EOF' > /usr/local/bin/mainuser
|
||||||
|
#!/bin/bash
|
||||||
|
protocol=$(jq -r '.inbounds[0].protocol' /usr/local/etc/xray/config.json)
|
||||||
|
port=$(jq -r '.inbounds[0].port' /usr/local/etc/xray/config.json)
|
||||||
|
uuid=$(cat /usr/local/etc/xray/.keys | awk -F': ' '/uuid/ {print $2}')
|
||||||
|
domain=$(cat /usr/local/etc/xray/.keys | awk -F': ' '/domain/ {print $2}')
|
||||||
|
fp=$(jq -r '.inbounds[0].streamSettings.tlsSettings.fingerprint' /usr/local/etc/xray/config.json)
|
||||||
|
link="$protocol://$uuid@$domain:$port?security=tls&alpn=http%2F1.1&fp=$fp&spx=/&type=tcp&flow=xtls-rprx-vision&headerType=none&encryption=none#mainuser"
|
||||||
|
echo ""
|
||||||
|
echo "Ссылка для подключения":
|
||||||
|
echo "$link"
|
||||||
|
echo ""
|
||||||
|
echo "QR-код:"
|
||||||
|
echo ${link} | qrencode -t ansiutf8
|
||||||
|
EOF
|
||||||
|
chmod +x /usr/local/bin/mainuser
|
||||||
|
|
||||||
|
# Исполняемый файл для создания новых клиентов
|
||||||
|
# Добавить сюда "level": 0,
|
||||||
|
touch /usr/local/bin/newuser
|
||||||
|
cat << 'EOF' > /usr/local/bin/newuser
|
||||||
|
#!/bin/bash
|
||||||
|
read -p "Введите имя пользователя (email): " email
|
||||||
|
|
||||||
|
if [[ -z "$email" || "$email" == *" "* ]]; then
|
||||||
|
echo "Имя пользователя не может быть пустым или содержать пробелы. Попробуйте снова."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
user_json=$(jq --arg email "$email" '.inbounds[0].settings.clients[] | select(.email == $email)' /usr/local/etc/xray/config.json)
|
||||||
|
|
||||||
|
if [[ -z "$user_json" ]]; then
|
||||||
|
uuid=$(xray uuid)
|
||||||
|
jq --arg email "$email" --arg uuid "$uuid" '.inbounds[0].settings.clients += [{"email": $email, "id": $uuid, "flow": "xtls-rprx-vision"}]' /usr/local/etc/xray/config.json > tmp.json && mv tmp.json /usr/local/etc/xray/config.json
|
||||||
|
systemctl restart xray
|
||||||
|
index=$(jq --arg email "$email" '.inbounds[0].settings.clients | to_entries[] | select(.value.email == $email) | .key' /usr/local/etc/xray/config.json)
|
||||||
|
protocol=$(jq -r '.inbounds[0].protocol' /usr/local/etc/xray/config.json)
|
||||||
|
port=$(jq -r '.inbounds[0].port' /usr/local/etc/xray/config.json)
|
||||||
|
uuid=$(jq --argjson index "$index" -r '.inbounds[0].settings.clients[$index].id' /usr/local/etc/xray/config.json)
|
||||||
|
username=$(jq --argjson index "$index" -r '.inbounds[0].settings.clients[$index].email' /usr/local/etc/xray/config.json)
|
||||||
|
domain=$(cat /usr/local/etc/xray/.keys | awk -F': ' '/domain/ {print $2}')
|
||||||
|
fp=$(jq -r '.inbounds[0].streamSettings.tlsSettings.fingerprint' /usr/local/etc/xray/config.json)
|
||||||
|
link="$protocol://$uuid@$domain:$port?security=tls&alpn=http%2F1.1&fp=$fp&spx=/&type=tcp&flow=xtls-rprx-vision&headerType=none&encryption=none#$username"
|
||||||
|
echo ""
|
||||||
|
echo "Ссылка для подключения":
|
||||||
|
echo "$link"
|
||||||
|
echo ""
|
||||||
|
echo "QR-код:"
|
||||||
|
echo ${link} | qrencode -t ansiutf8
|
||||||
|
else
|
||||||
|
echo "Пользователь с таким именем уже существует. Попробуйте снова."
|
||||||
|
fi
|
||||||
|
EOF
|
||||||
|
chmod +x /usr/local/bin/newuser
|
||||||
|
|
||||||
|
# Исполняемый файл для удаления клиентов
|
||||||
|
touch /usr/local/bin/rmuser
|
||||||
|
cat << 'EOF' > /usr/local/bin/rmuser
|
||||||
|
#!/bin/bash
|
||||||
|
emails=($(jq -r '.inbounds[0].settings.clients[].email' "/usr/local/etc/xray/config.json"))
|
||||||
|
|
||||||
|
if [[ ${#emails[@]} -eq 0 ]]; then
|
||||||
|
echo "Нет клиентов для удаления."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Список клиентов:"
|
||||||
|
for i in "${!emails[@]}"; do
|
||||||
|
echo "$((i+1)). ${emails[$i]}"
|
||||||
|
done
|
||||||
|
|
||||||
|
read -p "Введите номер клиента для удаления: " choice
|
||||||
|
|
||||||
|
if ! [[ "$choice" =~ ^[0-9]+$ ]] || (( choice < 1 || choice > ${#emails[@]} )); then
|
||||||
|
echo "Ошибка: номер должен быть от 1 до ${#emails[@]}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
selected_email="${emails[$((choice - 1))]}"
|
||||||
|
|
||||||
|
jq --arg email "$selected_email" \
|
||||||
|
'(.inbounds[0].settings.clients) |= map(select(.email != $email))' \
|
||||||
|
"/usr/local/etc/xray/config.json" > tmp && mv tmp "/usr/local/etc/xray/config.json"
|
||||||
|
|
||||||
|
systemctl restart xray
|
||||||
|
|
||||||
|
echo "Клиент $selected_email удалён."
|
||||||
|
EOF
|
||||||
|
chmod +x /usr/local/bin/rmuser
|
||||||
|
|
||||||
|
# Исполняемый файл для вывода списка пользователей и создания ссылкок
|
||||||
|
touch /usr/local/bin/sharelink
|
||||||
|
cat << 'EOF' > /usr/local/bin/sharelink
|
||||||
|
#!/bin/bash
|
||||||
|
emails=($(jq -r '.inbounds[0].settings.clients[].email' /usr/local/etc/xray/config.json))
|
||||||
|
|
||||||
|
for i in "${!emails[@]}"; do
|
||||||
|
echo "$((i + 1)). ${emails[$i]}"
|
||||||
|
done
|
||||||
|
|
||||||
|
read -p "Выберите клиента: " client
|
||||||
|
|
||||||
|
if ! [[ "$client" =~ ^[0-9]+$ ]] || (( client < 1 || client > ${#emails[@]} )); then
|
||||||
|
echo "Ошибка: номер должен быть от 1 до ${#emails[@]}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
selected_email="${emails[$((client - 1))]}"
|
||||||
|
|
||||||
|
|
||||||
|
index=$(jq --arg email "$selected_email" '.inbounds[0].settings.clients | to_entries[] | select(.value.email == $email) | .key' /usr/local/etc/xray/config.json)
|
||||||
|
protocol=$(jq -r '.inbounds[0].protocol' /usr/local/etc/xray/config.json)
|
||||||
|
port=$(jq -r '.inbounds[0].port' /usr/local/etc/xray/config.json)
|
||||||
|
uuid=$(jq --argjson index "$index" -r '.inbounds[0].settings.clients[$index].id' /usr/local/etc/xray/config.json)
|
||||||
|
username=$(jq --argjson index "$index" -r '.inbounds[0].settings.clients[$index].email' /usr/local/etc/xray/config.json)
|
||||||
|
sni=$(cat /usr/local/etc/xray/.keys | awk -F': ' '/domain/ {print $2}')
|
||||||
|
domain=$(cat /usr/local/etc/xray/.keys | awk -F': ' '/domain/ {print $2}')
|
||||||
|
fp=$(jq -r '.inbounds[0].streamSettings.tlsSettings.fingerprint' /usr/local/etc/xray/config.json)
|
||||||
|
link="$protocol://$uuid@$domain:$port?security=tls&alpn=http%2F1.1&fp=$fp&spx=/&type=tcp&flow=xtls-rprx-vision&headerType=none&encryption=none#$username"
|
||||||
|
echo ""
|
||||||
|
echo "Ссылка для подключения":
|
||||||
|
echo "$link"
|
||||||
|
echo ""
|
||||||
|
echo "QR-код:"
|
||||||
|
echo ${link} | qrencode -t ansiutf8
|
||||||
|
EOF
|
||||||
|
chmod +x /usr/local/bin/sharelink
|
||||||
|
|
||||||
|
systemctl restart xray
|
||||||
|
|
||||||
|
echo "Xray-core успешно установлен"
|
||||||
|
mainuser
|
||||||
|
|
||||||
|
# Создаем файл с подсказками
|
||||||
|
touch $HOME/help
|
||||||
|
cat << 'EOF' > $HOME/help
|
||||||
|
|
||||||
|
Команды для управления пользователями Xray:
|
||||||
|
|
||||||
|
mainuser - выводит ссылку для подключения основного пользователя
|
||||||
|
newuser - создает нового пользователя
|
||||||
|
rmuser - удаление пользователей
|
||||||
|
sharelink - выводит список пользователей и позволяет создать для них ссылки для подключения
|
||||||
|
userlist - выводит список клиентов
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Файл конфигурации находится по адресу:
|
||||||
|
|
||||||
|
/usr/local/etc/xray/config.json
|
||||||
|
|
||||||
|
Команда для перезагрузки ядра Xray:
|
||||||
|
|
||||||
|
systemctl restart xray
|
||||||
|
|
||||||
|
Команда для перезагрузки Nginx:
|
||||||
|
|
||||||
|
systemctl restart nginx
|
||||||
|
|
||||||
|
Адрес папки с сайтом
|
||||||
|
/var/www/html
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
# Заменяем стандартный файл конфигурации nginx
|
||||||
|
cat << EOF > /etc/nginx/sites-available/default
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name $domain;
|
||||||
|
return 301 https://\$http_host\$request_uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 127.0.0.1:8080;
|
||||||
|
server_name $domain;
|
||||||
|
root /var/www/html/;
|
||||||
|
index index.html;
|
||||||
|
add_header Strict-Transport-Security "max-age=63072000" always;
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
mv /var/www/html/index.nginx-debian.html /var/www/html/index.html
|
||||||
|
systemctl restart nginx
|
||||||
183
install_vless_vpn.md
Normal file
183
install_vless_vpn.md
Normal file
@@ -0,0 +1,183 @@
|
|||||||
|
### FROM: https://github.com/ServerTechnologies/xray-with-selfsni ###
|
||||||
|
|
||||||
|
# Инструкция по созданию ВПН с маскировкой под собственный сайт на голом ядре X-Ray
|
||||||
|
|
||||||
|
>Маскировка запросов под собственный сайт - один из самых надежных способов обезопасить свой сервер от блокировок, так как, в отличие от Vless Reality мы маскируем запросы под обращение к сайту на том же самом сервере, что и впн, а не к стороннему сайту, который может расположен на сервере с другим ip. Так же при прямом запросе по домену сервер отдает обычный сайт и понять что на сервере помимо вебсервера установлен еще и сервер ВПН будет очень сложно.
|
||||||
|
|
||||||
|
Здесь представлена инструкция по созданию ВПН с маскировкой под собственный сайт на голом ядре, инструкция для панелей 3x-ui и Marzban находится [здесь](https://github.com/ServerTechnologies/xray-with-selfsni/blob/main/Panels.md).
|
||||||
|
|
||||||
|
## VPS для создания ВПН
|
||||||
|
Для установки панели нам понадобится VPS-сервер. Приобрести его можно в [Fornex](https://fornex.com/c/ftsg5x/).
|
||||||
|
|
||||||
|
## Минимальные системные требования
|
||||||
|
|
||||||
|
- 1 CPU
|
||||||
|
- 1 GB RAM
|
||||||
|
- 10 GB диска
|
||||||
|
- ОС Ubuntu 24 x64
|
||||||
|
|
||||||
|
## Подготовка.
|
||||||
|
- Так как на сервере будет функционировать обычный сайт, нам обязательно нужен домен. Можно купить домен в любой зоне, можете выбрать самый дешевый, но не забудьте про прдление домена: оно может быть существенно дороже стоимости покупки. Можно купить домен на один год, через год купить другой домен и сделать все заново.
|
||||||
|
- Направьте домен на сервер, создав А запись в DNS. проверить обновление DNS записей можно командой ping <имя домена>. <имя домена> надо заменить на ваш домен. В ответ вы должны молучить ip сервера.
|
||||||
|
```sh
|
||||||
|
ping <имя домена>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Перед началом работы с сервером
|
||||||
|
Обовление списка репозиториев и установленных пакетов
|
||||||
|
```sh
|
||||||
|
apt update && apt upgrade -y
|
||||||
|
```
|
||||||
|
|
||||||
|
Очистить экран терминала
|
||||||
|
```sh
|
||||||
|
clear
|
||||||
|
```
|
||||||
|
|
||||||
|
## Как пользоваться скриптом. Установка ядра Xray с протоколом Vless.
|
||||||
|
|
||||||
|
Скрипт создавался и тестировался под ОС Ubuntu 22 x64 и Ubuntu 24 x64. На других ОС скрипт может работать некорректно.
|
||||||
|
|
||||||
|
Задайте переменную с именем вашего сайта, замените "vash-domen" на ваш домен, укажите просто имя домена, не указывайте http:// или https://:
|
||||||
|
```sh
|
||||||
|
export domain=vash-domen
|
||||||
|
```
|
||||||
|
|
||||||
|
Скачайте и запустите скрипт, используя эту команду:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
wget -qO- https://raw.githubusercontent.com/ServerTechnologies/xray-with-selfsni/refs/heads/main/selfsni | bash
|
||||||
|
```
|
||||||
|
|
||||||
|
Скрипт установит веб сервер Nginx, создаст сертификаты Let's Encrypt, подключит их и в качестве сайта будет использоваться дефолтная страница веб-сервера Nginx. Если вы хотите добавить собственный сайт, то надо удалить дефолтную страницу и вместо нее разместить в папке файлы сайта.
|
||||||
|
|
||||||
|
|
||||||
|
## Работа с файлами сайта
|
||||||
|
Чтобы удалить дефолтную страницу
|
||||||
|
```sh
|
||||||
|
rm /var/www/html/index.html
|
||||||
|
```
|
||||||
|
|
||||||
|
Или можно открыть дефолтную страницу, используя консольный текстовый редактор, чтобы вставить другой текст
|
||||||
|
```sh
|
||||||
|
nano /var/www/html/index.html
|
||||||
|
```
|
||||||
|
Чтобы сохранить документ и выйти из текстового редактора, нажмите CTRL + X Y Enter\
|
||||||
|
|
||||||
|
Адрес папки, куда надо закинуть файлы сайта. Главный файл сайта должен называться index.html
|
||||||
|
```sh
|
||||||
|
/var/www/html/
|
||||||
|
```
|
||||||
|
|
||||||
|
Чтобы открыть папку с файлами сайта
|
||||||
|
```sh
|
||||||
|
cd /var/www/html/index.html
|
||||||
|
```
|
||||||
|
|
||||||
|
Установить unzip
|
||||||
|
```sh
|
||||||
|
apt install unzip
|
||||||
|
```
|
||||||
|
|
||||||
|
Разархивировать zip архив. Замените <имя архива.zip> на имя архива
|
||||||
|
```sh
|
||||||
|
unzip <имя архива.zip>
|
||||||
|
```
|
||||||
|
|
||||||
|
Скопировать файлы из папки с шаблоном в папку с сайтом. Тут я заменил "." на абсолютный путь. Замените <имя папки> на имя папки с шаблоном
|
||||||
|
```sh
|
||||||
|
cp -r <имя папки>/* /var/www/html/index.html
|
||||||
|
```
|
||||||
|
|
||||||
|
## Команды для управления пользователями
|
||||||
|
|
||||||
|
**Вывести список всех клиентов:**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
userlist
|
||||||
|
```
|
||||||
|
|
||||||
|
**Вывести ссылку и QR-код для подключения основного пользователя:**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
mainuser
|
||||||
|
```
|
||||||
|
|
||||||
|
**Создать нового пользователя:**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
newuser
|
||||||
|
```
|
||||||
|
|
||||||
|
**Удалить пользователя:**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
rmuser
|
||||||
|
```
|
||||||
|
|
||||||
|
**Создать ссылку для подключения:**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sharelink
|
||||||
|
```
|
||||||
|
|
||||||
|
В домашней папке пользователя будет создан файл `help` — в нём содержатся подсказки с описанием команд. Посмотреть его можно с помощью команды (нужно находиться в домашней папке пользователя):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cat help
|
||||||
|
```
|
||||||
|
|
||||||
|
## Команда для обновления ядра
|
||||||
|
```sh
|
||||||
|
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
|
||||||
|
```
|
||||||
|
|
||||||
|
## Полезные ссылки
|
||||||
|
|
||||||
|
- [GitHub проекта X-ray Core](https://github.com/XTLS/Xray-core)
|
||||||
|
- [Официальная документация на русском](https://xtls.github.io/ru/)
|
||||||
|
- [Ссылка на раздел официальной документации по созданию сайта для xray](https://xtls.github.io/ru/document/level-0/ch05-webpage.html)
|
||||||
|
|
||||||
|
## Клиенты для подключения
|
||||||
|
|
||||||
|
**Windows**
|
||||||
|
|
||||||
|
- [v2rayN](https://github.com/2dust/v2rayN)
|
||||||
|
- [Furious](https://github.com/LorenEteval/Furious)
|
||||||
|
- [Invisible Man - Xray](https://github.com/InvisibleManVPN/InvisibleMan-XRayClient)
|
||||||
|
|
||||||
|
**Android**
|
||||||
|
|
||||||
|
- [v2rayNG](https://github.com/2dust/v2rayNG)
|
||||||
|
- [X-flutter](https://github.com/XTLS/X-flutter)
|
||||||
|
- [SaeedDev94/Xray](https://github.com/SaeedDev94/Xray)
|
||||||
|
|
||||||
|
**iOS & macOS arm64**
|
||||||
|
|
||||||
|
- [Streisand](https://apps.apple.com/app/streisand/id6450534064)
|
||||||
|
- [Happ](https://apps.apple.com/app/happ-proxy-utility/id6504287215)
|
||||||
|
- [OneXray](https://github.com/OneXray/OneXray)
|
||||||
|
|
||||||
|
**macOS arm64 & x64**
|
||||||
|
|
||||||
|
- [V2rayU](https://github.com/yanue/V2rayU)
|
||||||
|
- [V2RayXS](https://github.com/tzmax/V2RayXS)
|
||||||
|
- [Furious](https://github.com/LorenEteval/Furious)
|
||||||
|
- [OneXray](https://github.com/OneXray/OneXray)
|
||||||
|
|
||||||
|
**Linux**
|
||||||
|
|
||||||
|
- [Nekoray](https://github.com/MatsuriDayo/nekoray)
|
||||||
|
- [v2rayA](https://github.com/v2rayA/v2rayA)
|
||||||
|
- [Furious](https://github.com/LorenEteval/Furious)
|
||||||
|
|
||||||
|
## Если вдруг нужно все удалить, то воспользуйтесь этими командами:
|
||||||
|
```sh
|
||||||
|
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ remove
|
||||||
|
rm -r /usr/local/etc/xray
|
||||||
|
rm /usr/local/bin/userlist
|
||||||
|
rm /usr/local/bin/mainuser
|
||||||
|
rm /usr/local/bin/newuser
|
||||||
|
rm /usr/local/bin/rmuser
|
||||||
|
rm /usr/local/bin/sharelink
|
||||||
|
```
|
||||||
@@ -5,3 +5,6 @@
|
|||||||
# Deploy VPN
|
# Deploy VPN
|
||||||
https://github.com/Akiyamov/xray-vps-setup
|
https://github.com/Akiyamov/xray-vps-setup
|
||||||
|
|
||||||
|
# Инструкция для голого ядра
|
||||||
|
https://github.com/ServerTechnologies/xray-with-selfsni
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user