Вопрос или проблема
Хотелось бы запустить протокол TUIC v5, используя эти команды для подготовки сервера к установке:
apt-get update
apt install nano
apt install net-tools
apt install uuid-runtime
apt install wget
затем создайте директорию на сервере
mkdir tuic
cd tuic
скачивание ядра tuic:
wget -O tuic-server https://github.com/EAimTY/tuic/releases/download/tuic-server-1.0.0/tuic-server-1.0.0-x86_64-unknown-linux-gnu && chmod 755 tuic-server
создание сертификата:
openssl ecparam -genkey -name prime256v1 -out ca.key
openssl req -new -x509 -days 36500 -key ca.key -out ca.crt -subj "/CN=bing.com"
получение uuid
и обновление конфигурационного файла в соответствии с ним
uuidgen
nano config.json
это мой конфигурационный файл:
{
"server": "[::]:8880",
"users": {
"fdf6fa59-7a79-48ea-bab1-0f1dbe7fb6ee": "xxx"
},
"certificate": "/root/tuic/ca.crt",
"private_key": "/root/tuic/ca.key",
"congestion_control": "bbr",
"alpn": ["h3", "spdy/3.1"],
"udp_relay_ipv6": true,
"zero_rtt_handshake": false,
"dual_stack": true,
"auth_timeout": "3s",
"task_negotiation_timeout": "3s",
"max_idle_time": "10s",
"max_external_packet_size": 1500,
"send_window": 16777216,
"receive_window": 8388608,
"gc_interval": "3s",
"gc_lifetime": "15s",
"log_level": "warn"
}
но, когда я хочу проверить, слушается ли мой конфиг на порту с помощью этой команды ./tuic-server -c config.json
я сталкиваюсь с этой ошибкой:
No such file or directory (os error 2)
хотя, когда я запускаю команду ls
, результат показывает этот файл наряду с другими:
ls
ca.crt ca.key config.json tuic-server
Более того, GitHub, относящийся к этому вопросу, стал скрытым:
https://github.com/EAimTY/tuic/commits?author=EAimTY
Ответ или решение
В процессе настройки протокола TUIC версии 5, вы столкнулись с ошибкой, связанной с отсутствием файла или директории. Давайте разберём все шаги по подготовке сервера, чтобы убедиться, что они выполнены корректно, и рассмотрим возможные причины возникновения ошибки.
Шаги по установке и настройке TUIC v5
-
Подготовка сервера
Начните с обновления и установки необходимых инструментов:
apt-get update apt install nano net-tools uuid-runtime wget
Убедитесь, что команда выполнена без ошибок.
-
Создание директории для TUIC
Выполните команды:
mkdir tuic cd tuic
Измените рабочую директорию, чтобы избежать путаницы с путями.
-
Загрузка ядра TUIC
Команда для загрузки
tuic-server
:wget -O tuic-server https://github.com/EAimTY/tuic/releases/download/tuic-server-1.0.0/tuic-server-1.0.0-x86_64-unknown-linux-gnu && chmod 755 tuic-server
Проверьте правильность URL и убедитесь, что файл успешно загружен и имеет соответствующие права доступа.
-
Создание сертификата
Сгенерируйте ключ и сертификат:
openssl ecparam -genkey -name prime256v1 -out ca.key openssl req -new -x509 -days 36500 -key ca.key -out ca.crt -subj "/CN=bing.com"
Убедитесь, что ключ и сертификат созданы корректно и отображаются в вашей директории.
-
Создание и конфигурация файла config.json
Сгенерируйте UUID и обновите конфигурацию:
uuidgen nano config.json
Убедитесь, что
uuid
корректно записан в файлconfig.json
.
Разбор ошибки
Если при выполнении команды ./tuic-server -c config.json
возникает ошибка "No such file or directory (os error 2)", следите за следующими аспектами:
-
Проверка путей: Убедитесь, что исполняемый файл
tuic-server
и файл конфигурацииconfig.json
находятся в одной директории, из которой вы запускаете команду. -
Права доступа: Проверьте права доступа к файлам с помощью команды
ls -l
и убедитесь, что они позволяют выполнение и чтение. -
Корректный путь: Попробуйте указать полный путь к файлу конфигурации:
./tuic-server -c /полный/путь/до/tuic/config.json
Если проблема сохраняется, убедитесь, что вы находитесь в правильной директории. Возможно, необходимо изучить наличие скрытых проблем в самой сборке tuic-server
, но этот нюанс зависит от специфики репозитория, к которому у вас ограничен доступ (судя по упоминанию о скрытых коммитах на GitHub).
Заключение
Тщательный подход к проверке каждого из шагов установки и конфигурации поможет выявить ошибку. Проверяйте все вводимые команды на грамматические ошибки и убедитесь в правильности их выполнения. Если доступ к исходному коду или репозиторию ограничен, можно попробовать найти альтернативные источники документации или сообщество, где обсуждаются аналогичные проблемы.