Linux 서버 설치 안내 (명령줄)

데스크톱이 없는 Linux 서버나 클라우드 VM에 MINT 서버를 설치하고, 앱에서 접속하기까지

한눈에 보기

1. 준비 사항

2. 클라우드 VM이라면

서버 안의 방화벽과 별도로, 클라우드 콘솔의 방화벽(보안 그룹)에서 접속 포트를 열어야 합니다.

외부 IP는 고정(Static) IP로 바꿔 두는 것을 권합니다. 임시 IP는 VM을 중지했다가 다시 시작하면 바뀔 수 있어, 앱에 등록한 주소도 다시 고쳐야 합니다. (Google Cloud: VPC 네트워크 → IP 주소 → ⋮ → 고정 IP 주소로 승격)

접속을 허용할 IP를 회사·집 주소로 좁혀 두면 더 안전합니다. MINT 서버는 연결 키, 비밀번호, 관리자의 기기 승인을 모두 거쳐야 접속되지만, 열어 두는 범위가 좁을수록 좋습니다.

3. 설치

서버의 SSH 터미널에서 실행합니다.

curl -fsSL https://allinone-cross-c4b6c.web.app/install-server.sh | sudo bash

설치 중에 세 가지를 묻습니다.

  1. 접속 포트: Enter를 누르면 47100
  2. 앱에서 로그인할 첫 계정 아이디: 예) admin
  3. 그 계정의 비밀번호: 두 번 입력

설치 스크립트는 내려받은 파일의 SHA-256을 확인한 뒤에만 설치하고, 서비스(mint-server)로 등록해 바로 실행합니다. 서버를 다시 켜도 자동으로 시작됩니다. 서버 안에서 ufw나 firewalld를 쓰고 있으면 그 포트도 열어 줍니다.

질문 없이 설치하려면 옵션을 붙입니다.

curl -fsSL https://allinone-cross-c4b6c.web.app/install-server.sh | sudo bash -s -- --port 47100 --user ubuntu --admin admin
옵션뜻
--port접속 포트 (1024~65535, 기본 47100)
--user서비스를 실행할 계정 (기본: sudo를 실행한 계정, root 불가)
--admin첫 로그인 계정 아이디 (비밀번호는 터미널에서 입력)
--file-root앱의 파일 기능에서 보여 줄 폴더 (기본: 서비스 계정의 홈 폴더)
--no-firewall서버 안의 방화벽(ufw/firewalld)을 건드리지 않음

스크립트를 먼저 읽어 보고 싶다면 install-server.sh를 열어 보세요. 직접 받아 설치하려면 서버 내려받기의 명령줄 서버 파일을 받아 tar xzf로 푼 뒤 sudo ./install.sh를 실행합니다.

4. 서버가 도는지 확인

sudo mint-server status

서비스가 실행 중인지와 함께 접속 주소, 연결 키, 인증서 지문이 나옵니다. 다음 단계에서 앱에 입력하므로 이 화면을 열어 두세요.

포트가 실제로 접속을 받는지는 curl로 확인할 수 있습니다.

curl -vk --max-time 5 https://127.0.0.1:47100/ 2>&1 | grep -aE 'Connected|SSL connection|curl:'
결과뜻
Connected, SSL connection 줄이 보이고 마지막에 curl: (1) Received HTTP/0.9…정상. MINT 서버는 웹 서버가 아니어서 curl의 웹 요청에 웹 형식으로 답하지 않습니다. TLS 접속까지 받았다면 잘 돌고 있는 것입니다.
curl: (7) Failed to connect … Connection refused서버가 꺼져 있거나 다른 포트를 쓰고 있습니다. sudo mint-server status와 sudo mint-server logs -n 50을 확인하세요.
curl: (28) … timed out (다른 PC에서 시험할 때)서버 안에서는 되는데 밖에서 안 된다면 방화벽(클라우드 콘솔 포함)에서 포트가 막혀 있습니다.

다른 PC에서 시험하려면 127.0.0.1 대신 서버의 외부 IP를 넣으세요.

5. 앱에서 연결

  1. MINT 앱의 연결 화면에서 서버 주소에 서버의 IP(클라우드 VM이면 외부 IP), 포트에 47100, 연결 키에 status에 나온 값을 넣고 연결을 누릅니다.
  2. 처음 접속하면 앱이 서버의 인증서 지문을 보여 줍니다. status의 지문과 같은지 확인하고 신뢰합니다. 다르면 접속하지 마세요.
  3. 설치할 때 만든 아이디와 비밀번호로 로그인합니다. 처음 쓰는 기기라 승인 대기 화면이 나옵니다.

6. 기기 승인

서버에서 승인 대기 중인 기기를 확인하고 승인합니다. 기기 ID는 앞부분만 입력해도 됩니다.

sudo mint-server device list --pending
sudo mint-server device approve <기기 ID>

승인하면 앱이 바로 메인 화면으로 넘어가고, 터미널과 파일 기능을 쓸 수 있습니다.

7. 자주 쓰는 관리 명령

명령하는 일
sudo mint-server status상태, 접속 주소, 연결 키, 인증서 지문
sudo mint-server user add <아이디>앱 로그인 계정 만들기
sudo mint-server user list계정 목록
sudo mint-server user passwd <아이디>비밀번호 바꾸기
sudo mint-server device list기기 목록 (--pending: 승인 대기만)
sudo mint-server device approve | reject | remove <ID>기기 승인 · 거절 · 승인 취소
sudo mint-server session list지금 접속 중인 세션
sudo mint-server key --regenerate연결 키 재발급 (이전 키로는 접속 불가)
sudo mint-server port <번호>접속 포트 바꾸기 (바꾼 뒤 restart, 방화벽도 함께)
sudo mint-server start | stop | restart서비스 시작 · 중지 · 다시 시작
sudo mint-server logs -n 50서비스 로그 (systemd)
sudo mint-server update홈페이지에서 새 버전 확인
sudo mint-server --help전체 명령

8. 문제 해결

앱에서 "서버가 응답하지 않습니다"

연결 키가 맞지 않다고 나옴

sudo mint-server status의 연결 키를 다시 확인하세요. 재발급했다면 이전 키는 더 이상 쓸 수 없습니다.

인증서 지문이 예전과 다르다고 나옴

서버를 새로 설치했거나 데이터 폴더(/var/lib/mint-server)를 지웠다면 지문이 바뀝니다. 그런 일이 없었다면 다른 서버가 끼어들었을 수 있으니 접속하지 말고 확인하세요.

설치할 때 "x86_64만 지원" 또는 실행 시 GLIBC 오류

ARM 서버(예: AWS Graviton)나 오래된 배포판에서는 실행되지 않습니다. 준비 사항의 배포판을 써 주세요.

9. 업데이트

서버는 시작할 때와 하루 두 번 이 홈페이지에서 새 버전을 확인합니다(1.2.0부터). 확인 결과는 sudo mint-server status의 버전 줄과 서비스 기록에 나옵니다. 바로 확인하려면:

sudo mint-server update

새 버전이 있으면 설치할 때와 같은 명령을 다시 실행합니다. 포트, 계정, 연결 키, 인증서, 승인한 기기는 그대로 유지되므로 앱에서 다시 설정할 필요가 없습니다.

curl -fsSL https://allinone-cross-c4b6c.web.app/install-server.sh | sudo bash

10. 삭제

sudo mint-server uninstall

서비스와 프로그램을 지웁니다. 클라우드 VM에서 시험했다면 콘솔에서 VM, 방화벽 규칙, 고정 IP도 함께 정리해야 요금이 더 나오지 않습니다(어디에도 붙어 있지 않은 고정 IP에도 요금이 붙습니다).