Linux 서버 설치 안내 (명령줄)
한눈에 보기
- 설치: 서버에서
curl -fsSL https://allinone-cross-c4b6c.web.app/install-server.sh | sudo bash한 줄 - 확인:
sudo mint-server status로 접속 주소, 연결 키, 인증서 지문 확인 - 접속: 앱에 주소, 포트, 연결 키를 넣고 로그인한 뒤, 서버에서 기기를 승인
1. 준비 사항
- x86_64(64비트 Intel/AMD) Linux, systemd 사용
- glibc 2.35 이상: Ubuntu 22.04·24.04, Debian 12, Rocky/RHEL 9 등
Ubuntu 20.04, Debian 11처럼 오래된 배포판에서는 실행되지 않습니다. 확인:ldd --version - sudo를 쓸 수 있는 일반 계정. 서비스는 이 계정으로 실행되고, 앱의 터미널과 파일 기능도 이 계정 권한으로 동작합니다(root로는 실행하지 않습니다).
- 앱에서 접속할 TCP 포트 하나(기본 47100)
2. 클라우드 VM이라면
서버 안의 방화벽과 별도로, 클라우드 콘솔의 방화벽(보안 그룹)에서 접속 포트를 열어야 합니다.
- Google Cloud: VPC 네트워크 → 방화벽 → 규칙 만들기 → 수신, TCP
47100허용, 대상은 해당 VM(네트워크 태그) - AWS: EC2 → 보안 그룹 → 인바운드 규칙에 TCP
47100추가 - Azure: VM → 네트워킹 → 인바운드 포트 규칙에 TCP
47100추가
외부 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
설치 중에 세 가지를 묻습니다.
- 접속 포트: Enter를 누르면 47100
- 앱에서 로그인할 첫 계정 아이디: 예)
admin - 그 계정의 비밀번호: 두 번 입력
설치 스크립트는 내려받은 파일의 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. 앱에서 연결
- MINT 앱의 연결 화면에서 서버 주소에 서버의 IP(클라우드 VM이면 외부 IP), 포트에 47100, 연결 키에
status에 나온 값을 넣고 연결을 누릅니다. - 처음 접속하면 앱이 서버의 인증서 지문을 보여 줍니다.
status의 지문과 같은지 확인하고 신뢰합니다. 다르면 접속하지 마세요. - 설치할 때 만든 아이디와 비밀번호로 로그인합니다. 처음 쓰는 기기라 승인 대기 화면이 나옵니다.
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. 문제 해결
앱에서 "서버가 응답하지 않습니다"
- 서버 주소를 정확히 넣었는지 다시 보세요. 숫자 하나만 틀려도(예: 172.30… 대신 170.30…) 응답이 없습니다.
- 서버 안에서 4번 curl이 성공하는데 앱에서 안 된다면 방화벽 문제입니다. 클라우드 콘솔의 규칙과 대상 VM을 확인하세요.
- 회사·학교 와이파이처럼 바깥으로 나가는 포트를 막는 네트워크도 있습니다. 휴대폰 데이터로 바꿔 시험해 보세요.
연결 키가 맞지 않다고 나옴
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에도 요금이 붙습니다).