Code server port error
Код-сервер выдает ошибку об отказе в подключении при прослушивании портов 80 или 443. Все остальные порты работают должным образом. Это связано с тем, что сервер не привязан к портам 80 или 443, поэтому у провайдера нет доступного прослушивателя для ответа на сокет.
Шаги для воспроизведения
- Запустите код-сервер с ./code-server -p 80 -H &
- Запустите sudo netstat -tnlpи убедитесь, что процесс сервера кода не запущен
- Сделайте то же самое для порта 443
- Попробуйте передать другой порт -p 2345
- Запустите sudo netstat -tnlpснова
- Код-сервер отображается как прослушиватель
Если вы используете какие-либо порты меньше 1024, вам нужно будет запускаться от имени root или с помощью sudo. Оставляя это открытым, поскольку код-сервер должен выдавать ошибку, когда он не может прослушивать указанный порт.
Сервер кода или другие пользовательские службы могут привязываться к портам ниже 1024, но только если вы сообщите ядру игнорировать это ограничение “только для root”. Кое-что об использовании setcap CAP_NET_BIND_SERVICE для предоставления разрешения.
Однако я бы… ОДНАКО никогда не запускайте code-server от имени root. Если этот сервер не был специально разработан для этого, как apache, который создает некорневые рабочие процессы, это просто не очень хорошая идея.
Доступ пользователя к root даже в контейнере docker – действительно ПЛОХАЯ ИДЕЯ! И код-сервер может предоставлять не только доступ к файлам, но и доступ к терминалу! Таким образом, Sudo не является хорошим решением.
Раскрыть код-сервер
Никогда не подключайте code-server напрямую к Интернету без какой-либо формы аутентификации и шифрования, иначе кто-то может завладеть вашим компьютером через терминал.
По умолчанию code-server использует аутентификацию по паролю. Таким образом, вы должны скопировать пароль из файла конфигурации code-server для входа в систему. Чтобы избежать ненужного раскрытия, code-server прослушиваетlocalhost; эта практика хороша для тестирования, но она не работает, если вы хотите получить доступ к code-server с другого компьютера.
Ограничения скорости: скорость code-server ограничивает попытки аутентификации паролем до двух в минуту плюс дополнительные двенадцать в час.
Существует несколько подходов к безопасной эксплуатации и предоставлению доступа к code-server:
- Переадресация портов через SSH
- Использование Давайте зашифруем с помощью Caddy
- Использование Давайте зашифруем с помощью NGINX
- Использование самозаверяющего сертификата
Переадресация портов через SSH
Мы настоятельно рекомендуем использовать переадресацию портов через SSH для доступа к code-server. Если у вас есть SSH-сервер на удаленном компьютере, этот подход вообще не требует каких-либо дополнительных настроек.
Однако недостатком переадресации по SSH является то, что вы не можете получить доступ к code-server при использовании компьютеров без SSH-клиентов (например, iPad). Если это относится к вам, мы рекомендуем использовать другой метод, например, Let’s Encrypt вместо этого.