최근에 개발용 편집기로 VSCode를 사용해서 개발을 많이 하는 것 같습니다. 다양한 플러그인들 사용하다 보면 정말 편리하게 개발할 수 있고, 또 문법체크나 구문 분석 등으로 기계적인 단순 버그들은 많이 줄여주는 것 같습니다. 이렇게 좋은 VSCode인데, 최근에 자동 업데이트 되고나서 VSCode 원격 서버 접속이 안되는 어려움을 겪었습니다. 비슷한 어려움을 겪은 분들이 꽤 있을 것 같아서 문제 해결 경험을 기록합니다.

VSCode 원격 서버 연결 장애 원인

먼저 원격 서버 연결 장애 원인이 무엇인지 파악하기 위해 콘솔창을 열어서 “출력” 탭을 확인해 보았습니다.

wget --tries=1 --connect-timeout=7 --dns-timeout=7 -nv -O vscode-server.tar.gz https://update.code.visualstudio.com/commit:92d25e35d9bf1a6b16f7d0758f25d48ace11e5b9/server-linux-x64/stable

이런 커맨드를 실행하는데 진척이 없고 계속 대기하는 모양입니다. 일단 원인을 알아보기 위해 wget 을 shell에서 직접 실행해 보았습니다.

다운로드 속도가 무척 느립니다. 10KB / s 정도의 속도로 60MB 파일을 다운로드 하려고 하네요.

동시에 VSCode 원격 연결이 잘 되는 서버도 있다

원격으로 작업하는 서버가 여러 곳에 있다보니 다들 업데이트가 되었는데 어떤 서버 -네이버클라우드서버- 는 또 순식간에 업데이트가 완료되어 원격서버 연결이 문제없이 잘 동작했습니다.

잘 되는 서버에서 wget 을 직접 실행해 보았습니다.

$ wget --tries=1 --connect-timeout=7 --dns-timeout=7 -nv -O vscode-server.tar.gz https://update.code.visualstudio.com/commit:92d25e35d9bf1a6b16f7d0758f25d48ace11e5b9/server-linux-x64/stable
2022-07-14 06:43:44 URL:https://az764295.vo.msecnd.net/stable/92d25e35d9bf1a6b16f7d0758f25d48ace11e5b9/vscode-server-linux-x64.tar.gz [59557776/59557776] -> "vscode-server.tar.gz" [1]
$

60 메가 파일을 순식간에 다운로드 받았습니다.

다운받은 파일을 이용해서 직접 설치

파일을 다운로드 받았으니, 이제 직접 설치해 주면 문제가 해결 됩니다.

보통 원격으로 접속하는 서버 계정의 홈디렉토리에 보면 이런 식으로 VSCode 원격 연결 관련 코드가 설치 되어 있습니다.

.vscode-server/bin 디렉토리에 원격 연결을 위한 도구들이 설치 되어 있습니다. 방금 다운로드 하려다 실패했던 hash 값(92d25e35d9bf1a6b16f7d0758f25d48ace11e5b9)과 같은 이름의 디렉토리도 보입니다.

jay@myserver:~$ cd .vscode-server/
jay@myserver:~/.vscode-server$ ll
total 12
drwxrwxr-x 4 jay jay 4096 Jul 14 06:44 bin
drwx------ 8 jay jay 4096 Jul 13 21:10 data
drwx------ 8 jay jay 4096 Jul 14 06:46 extensions
jay@myserver:~/.vscode-server$ cd bin/
jay@myserver:~/.vscode-server/bin$ ll
total 8
drwxrwxr-x 6 jay jay 4096 Jul 13 21:11 92d25e35d9bf1a6b16f7d0758f25d48ace11e5b9
drwxrwxr-x 6 jay jay 4096 Jul 14 06:47 b06ae3b2d2dbfe28bca3134cc6be65935cdfea6a
jay@myserver:~/.vscode-server/bin$

다운받은 설치 바이너리를 안 되는 서버로 가져오기

scp를 이용해서 복사해도 되고, sftp 같은 gui 도구를 이용해도 됩니다. 어떻게든 잘 되는 서버에서 다운받은 stable 바이너리 파일을 안되는 서버로 가져옵니다.

가져온 다음에는 .vscode-server/bin/92d25e35d9bf1a6b16f7d0758f25d48ace11e5b9 와 같이 새로 다운로드 하려다 실패했던 디렉토리에 해당 파일을 위치하도록 합니다.

파일을 가져왔다면 아래의 커맨드를 이용해 압축을 풀어줍니다.

$ tar -xvzf ./stable --strip-components 1

디렉토리 구조 맞춰주기

jay@myserver:~/.vscode-server/bin/92d25e35d9bf1a6b16f7d0758f25d48ace11e5b9$ ll
total 77544
drwxr-xr-x   4 jay jay     4096 Jul  7 17:30 bin
drwxr-xr-x  33 jay jay     4096 Jul  7 17:30 extensions
-rw-rw-r--   1 jay jay    13380 Jul  7 17:28 LICENSE
-rwxr-xr-x   1 jay jay 79317544 Jul  7 17:30 node
drwxr-xr-x 166 jay jay     4096 Jul  7 17:30 node_modules
drwxr-xr-x   3 jay jay     4096 Jul  7 17:30 out
-rw-rw-r--   1 jay jay       62 Jul  7 17:28 package.json
-rw-rw-r--   1 jay jay    37197 Jul  7 17:30 product.json
-rwxr-xr-x   1 jay jay      240 Jul  7 17:28 server.sh
jay@myserver:~/.vscode-server/bin/92d25e35d9bf1a6b16f7d0758f25d48ace11e5b9$

압축을 풀고 나면 이런 계층으로 배치가 되도록 조정해 주면 수동 설치가 완료가 됩니다.

카테고리: 프로그래밍

Jay

Jay

S/W Engineer!!

1개의 댓글

1 · 2023-02-11 14:24

1

답글 남기기

아바타 플레이스홀더