윈도우PC에서 code server 원격접속 구성하기

·

·

,

맥을 주로 써서, 더 좋은 윈도우 데스크탑이 놀고 있는게 아까워…

메인 컴퓨터는 맥이지만, 윈도우 데스크탑이 있습니다. 데탑은 램, 그래픽카드, 저장용량 등 사양이 맥과는 비교할 수 없이 좋습니다. 모니터 한 개를 데스크탑에 연결해서 사용하는 방법도 있지만, 아이패드로 코딩도 할겸 code-server를 설치했습니다. 윈도우에 설치된 code-server를 외부망에서도 접속할 수 있도록 구성했습니다. 그 과정을 공유합니다. 참고로 인터넷은 KT, 공유기는 KT에서 제공하는 공유기를 사용하고 있습니다.

  1. 데스크탑을 원격으로 부팅가능하도록 설정(실패)
  2. code server에 외부에서 접속 가능하도록 설정(성공)
  3. 부팅 후 자동으로 wsl2로 포트포워딩 되도록 설정(성공)
  4. 포트포워딩 후 nginx가 실행되도록 설정(성공)

1. 데스크탑을 원격으로 부팅가능하도록 설정(실패)

wol을 사용해서 윈도우 원격부팅이 가능하도록 하려고 했으나 실패함. KT 공유기는 wol을 제대로 지원하지 않음. wol 신호는 보내지만, 전류가 충분하지 않은 것 같기도 합니다. 컴퓨터를 종료한 후 수분 까지는 wol 신호로 부팅이 되지만, 그 이후로는 전혀 반응이 없습니다. 아마도 컴퓨터 종료 후 잔류 전원에 의한 반응 같습니다. KT 공유기를 무시하고 모뎀에 직결하면, 당연하지만 wol은 작동하지 않습니다. 공유기를 새로 사기도 아까워서, 그냥 포기했습니다.

2. code server에 외부에서 접속 가능하도록 설정(성공)

윈도우에 code server를 설치하는 방법은 여러가지가 있습니다. [직접 설치, wsl에 설치, docker에 설치] 등. 직접 설치는 설치 과정에서 계속 오류가 발생해서 빠르게 포기했습니다. docker는 익숙하지도 않고, 윈도우에서 docker 내부 nginx로 포워딩 하는 방법을 못(안) 찾아서 접었습니다. 그래서 wsl에 code-server를 설치했습니다.

wsl1에 code-server를 설치하고 https연결까지 성공했는데, 외부에서 접속할 때 속도가 쓸 수 없는 수준으로 느립니다. wsl2는 윈도우 부팅시마다 ip주소가 변경되서 간단하게 세팅할 수 있는 wsl1을 사용한건데, 어쩔 수 없이 wsl2로 전환했습니다. 참고로, KT 공유기 문제는 아니었습니다.

wsl2에 code-server, nginx를 설치하고 인증서도 받아서 https 연결을 했는데, 결과적으로 제대로 접속이 불가능했습니다. 혹시나 싶어서 KT 공유기에 연결된 랜선을 뽑아서 모뎀에 직결했더니 잘 작동했습니다. wsl1은 속도는 느리지만, KT 공유기에 연결되어 있을 때도 접속은 가능했는데, wsl2는 안되더라고요… (아마 제가 네트워크를 잘 몰라서)

3. 부팅 후 자동으로 wsl2로 포트포워딩 되도록 설정(성공)

wsl2는 윈도우 데스크탑을 부팅할 때마다 ip주소가 바뀝니다. 그래서 변경된 wsl2 ip로 포워딩 해주는 스크립트가 인터넷에 돌아다닙니다. 저도 잘 찾아서 복사해서 사용했습니다. 이제 컴퓨터를 켜면 특정 port가 자동으로 wsl2로 포워딩 됩니다. 하지만, KT 가정용 인터넷은 주기적으로 ip주소가 변경됩니다. 덕분에, 도메인 dns 설정을 매번 변경해줘야 합니다. ㅠㅠ 다 무시하고 그냥 절전모드로 살면 됩니다.

인터넷에 돌아다니는 스크립트: 40-1(출처 아시면 알려주세요)

4. 포트포워딩 후 nignx가 실행되도록 설정(성공)

3번 스크립트에 간단하게 nginx가 실행되도록 스크립트를 추가했습니다. bat파일에 wsl로 시작하는 두 문장을 추가해주면 됩니다. 참고로 wsl sudo를 외부에서 실행할 수 있도록 권한 설정을 해줘야합니다.

PowerShell.exe -ExecutionPolicy Bypass -File "D:\\wsl2-code-server.ps1"
wsl sudo service nginx start
wsl sudo service nginx reload
exit
Code language: CSS (css)

code server도 자동으로 실행되도록 할 수 있는데, 보안 문제도 있고 code-server만 재부팅하고 싶을 때도 있어서 제외했습니다. code server는 원격접속으로 실행해줍니다.


어딜 뒤져봐도 저처럼 불필요하게 윈도우에다가 code server 올려서 쓰는 사람은 없나봅니다. 제가 구글 드라이브, 아이클라우드, 원드라이브를 다 쓰는데, 리눅스는 클라우드 사용하기가 조금 불편해서 윈도우에다가 뻘짓을 하는거죠… 그냥 간단하게 google drive와 google colab을 씁시다. 저는 vscode가 너무 편해서…

댓글 남기기