ServBay 로컬 개발 환경을 LAN에서 액세스하기
소규모 개발팀이나 여러 기기에서 테스트가 필요한 개인 개발자에게, 같은 LAN(로컬 네트워크) 내의 다른 멤버 혹은 장치가 ServBay 로컬 개발 환경에 접근할 수 있도록 하는 것은 매우 흔하고 중요한 요구입니다. ServBay는 대부분의 핵심 서비스를 LAN에서 접근할 수 있도록 설계되어 있지만, 일부 서비스는 보안성과 사용성을 위해 추가 구성이 필요할 수 있습니다.
이 문서에서는 LAN 환경에서 ServBay의 웹사이트 및 데이터베이스 서비스를 설정하고 접속하는 방법을 상세히 안내합니다.
사전 준비 사항
LAN을 통해 ServBay 서비스에 접근하기 전에 아래 사항을 확인하십시오.
- 네트워크 연결: ServBay 서비스를 제공하는 컴퓨터(이하 "호스트")와 접근하는 컴퓨터(이하 "클라이언트")가 동일한 LAN에 연결되어 있어야 합니다.
- 호스트 IP 주소: 호스트의 내부 IP 주소를 알고 있어야 합니다. 이 정보는 호스트의 네트워크 설정에서 확인 가능합니다.
- 방화벽 설정: 호스트의 운영체제에서 방화벽이 활성화되어 있을 경우, ServBay가 사용하는 주요 포트(예: HTTP는 80, HTTPS는 443, MySQL은 3306, PostgreSQL은 5432, Redis는 6379 등)에 대한 외부 연결을 허용해야 합니다. 필요에 따라 방화벽의 접근 제어 목록(ACL)을 통해 허용할 IP 범위를 제한해 안전하게 관리하십시오.
웹사이트 (Website)
ServBay로 구축한 로컬 웹사이트는 기본적으로 호스트의 모든 네트워크 인터페이스(즉, 0.0.0.0
혹은 *
)를 리스닝합니다. 따라서 별도의 조치 없이도 LAN 내 다른 기기에서 접근이 가능합니다. ServBay는 Caddy 또는 Nginx를 웹 서버로 사용하며, 기본 구성도 이와 같습니다.
다만, 클라이언트 브라우저에서 도메인으로 웹사이트에 접근하려면, 각자의 기기에서 도메인에 대한 DNS 해석을 올바르게 설정해야 합니다. 또한, 로컬 사이트가 ServBay가 생성한 SSL 인증서를 사용할 경우(강력하게 권장), 접근자의 시스템에 ServBay 루트 인증서가 설치되어야 브라우저 경고 없이 접근할 수 있습니다.
예를 들어 구성 과정을 소개합니다:
- 호스트 LAN IP:
10.0.0.3
- ServBay 사이트 도메인:
servbay.demo
- 웹사이트 루트 디렉토리:
/Applications/ServBay/www/servbay.demo
도메인(DNS) 해석 설정
클라이언트 컴퓨터는 servbay.demo
도메인이 호스트 IP 10.0.0.3
을 가리키도록 알아야 합니다. 대표적인 설정 방법 두 가지는 다음과 같습니다.
클라이언트의 Hosts 파일 수정: 가장 쉽고 직관적인 방법으로, 클라이언트가 소수일 때 적합합니다.
- 각 클라이언트에서 Hosts 파일 위치를 찾으십시오.
- macOS/Linux:
/etc/hosts
- Windows:
C:\Windows\System32\drivers\etc\hosts
- macOS/Linux:
- 관리자 권한으로 파일을 열고 맨 아래에 다음 한 줄을 추가합니다.
10.0.0.3 servbay.demo
1 - 파일을 저장합니다. 이제 해당 클라이언트에서
servbay.demo
로 접속하면10.0.0.3
으로 연결됩니다.
- 각 클라이언트에서 Hosts 파일 위치를 찾으십시오.
LAN 내 DNS 서버에서 설정: 만약 사내 DNS 서버(예: 공유기의 내장 DNS, 별도의 DNS 서비스 등)가 있다면, 해당 서버에
servbay.demo
도메인에 대해 A 레코드를 추가해10.0.0.3
을 가리키도록 설정하세요. 이렇게 하면, 이 DNS 서버를 사용하는 모든 기기에서 도메인을 해석할 수 있습니다.
ServBay 유저 루트 인증서(SSL) 배포 및 설치
ServBay는 자체 루트 인증서(ServBay User CA)를 생성해 로컬 사이트용 SSL 인증서에 서명합니다. 따라서 이를 사용하는 HTTPS 사이트에 클라이언트가 접근할 때, ServBay User CA를 신뢰해야 브라우저 경고가 발생하지 않습니다.
ServBay User CA를 내보내어 LAN 내 모든 접근자에게 배포하고, 각 OS 또는 브라우저에서 해당 루트 인증서를 설치 및 신뢰하도록 안내해야 합니다.
자세한 인증서 내보내기 및 설치 방법은 ServBay 문서의 SSL 인증서 관리 섹션, 특히 인증서 내보내기와 OS/브라우저에 설치 단원을 참고하십시오.
데이터베이스
ServBay는 MySQL, MariaDB, PostgreSQL, MongoDB와 같은 다양한 데이터베이스와, 인메모리 데이터베이스인 Redis 및 Memcached를 지원합니다. 각각의 기본 네트워크 리스닝 설정과 권한 관리 방식은 차이가 있습니다.
MySQL / MariaDB
MySQL 및 MariaDB는 ServBay에서 기본적으로 모든 네트워크 인터페이스(0.0.0.0
)를 리스닝합니다. 즉, 별도의 설정 없이도 LAN에서 연결이 가능합니다.
단, MySQL/MariaDB는 권한 관리가 엄격합니다. 네트워크 연결이 허용되더라도, 사용자는 해당 IP에서 접속 권한이 설정된 계정으로 접속해야 합니다.
기본 root
계정은 보통 127.0.0.1
또는 localhost
로만 제한됩니다. LAN에서 접근을 허용하려면 새로운 데이터베이스 계정을 생성하거나, 기존 계정 권한을 수정하여 특정 IP 또는 모든 IP(%
)에서의 접속을 허용해야 합니다.
예를 들어, servbay-demo
라는 계정을 생성하고, LAN 내 어느 IP(%
)에서나 접속 가능하게 하고, 특정 데이터베이스에 모든 권한을 부여하려면 다음과 같이 합니다.
sql
-- root 계정이나 충분한 권한이 있는 계정으로 로그인한 상태라고 가정
CREATE USER 'servbay-demo'@'%' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON `your_database_name`.* TO 'servbay-demo'@'%';
FLUSH PRIVILEGES;
1
2
3
4
2
3
4
'your_strong_password'
와 your_database_name
을 실제 값으로 변경하시기 바랍니다.
중요: 모든 IP(%
)에서 접속 허용 및 광범위한 권한 부여는 보안 위험이 있으니, 프로덕션이나 신뢰할 수 없는 환경에서는 반드시 특정 IP(예: 'servbay-demo'@'10.0.0.5'
)로 제한하거나 VPN 등 안전한 네트워크를 사용하시길 권장합니다.
ServBay는 MySQL과 MariaDB의 root
비밀번호 재설정을 지원합니다. 사용자 권한 관리는 이 기능이나 데이터베이스 클라이언트 도구로 진행할 수 있습니다.
Redis
ServBay에서 Redis는 보통 로컬 루프백 주소(127.0.0.1
)만 리스닝하도록 기본 설정되어 있습니다. 즉, LAN에서는 접근이 불가능하도록 구성되어 있습니다. 이는 Redis가 기본적으로 비밀번호 검증을 켜지 않기 때문에 보안을 위해서입니다.
LAN 접근을 허용하려면 Redis 설정 파일인 redis.conf
를 수정해야 합니다.
아래 두 가지 방법이 있습니다.
1. ServBay UI를 통한 설정
- ServBay를 실행한 뒤, 좌측 메뉴에서
데이터베이스
>Redis
로 이동 - 우측 설정 창에서
Require Password
를 체크하고, 우측 입력란에 비밀번호 입력 저장
클릭
2. 직접 redis.conf
파일 수정(권장하지 않음)
- ServBay 내 Redis 설정 파일 경로(예:
/Applications/ServBay/etc/redis/redis.conf
)를 찾습니다. - 텍스트 에디터로
redis.conf
를 엽니다. bind 127.0.0.1
행을 찾습니다.bind 0.0.0.0
으로 변경하거나 주석 처리(# bind 127.0.0.1
) 하여, Redis가 모든 네트워크 인터페이스를 리스닝하도록 합니다.- [매우 중요]
requirepass
행을 찾아 주석을 해제하고, 강력한 비밀번호를 설정합니다.비밀번호 없이 Redis를 LAN 또는 공용 네트워크에 노출하는 것은 매우 위험하니 절대 하지 마십시오!requirepass your_very_strong_redis_password
1 redis.conf
파일을 저장합니다.- ServBay에서 Redis 서비스를 재시작하여 변경사항을 적용합니다.
이제 클라이언트는 호스트의 LAN IP와 설정한 비밀번호로 Redis에 접속할 수 있습니다.
PostgreSQL
ServBay에서 PostgreSQL는 기본적으로 로컬 루프백 주소(127.0.0.1
)에서만 리스닝하며, LAN 접속이 불가합니다.
LAN 기반 접근을 허용하려면 postgresql.conf
와 pg_hba.conf
의 두 설정 파일을 수정해야 합니다.
ServBay 내 PostgreSQL 설정 파일 경로(예:
/Applications/ServBay/etc/postgresql/postgresql.conf
및/Applications/ServBay/etc/postgresql/pg_hba.conf
)를 찾으십시오.postgresql.conf
수정:postgresql.conf
를 텍스트 에디터로 엽니다.listen_addresses
행을 찾아 주석을 해제하고 값을'*'
로 수정하여, 모든 네트워크 인터페이스에서 리스닝하도록 설정합니다.listen_addresses = '*'
1- 파일 저장
pg_hba.conf
수정:pg_hba.conf
를 엽니다. 이 파일은 어떤 호스트·사용자가 어떤 방식으로 인증할지 제어합니다.- 예를 들어,
10.0.0.0/24
대역의 모든 사용자가 비밀번호 인증(md5)으로 모든 데이터베이스에 접근할 수 있도록 설정하려면 다음 한 줄을 추가합니다.# TYPE DATABASE USER ADDRESS METHOD host all all 10.0.0.0/24 md5
1
2TYPE
:host
는 TCP/IP 네트워크 접속을 의미합니다.DATABASE
:all
은 모든 데이터베이스를 허용, 특정 데이터베이스만 지정해도 됩니다.USER
:all
은 모든 사용자를 허용, 특정 사용자만 지정 가능ADDRESS
: 예시로10.0.0.0/24
(즉10.0.0.1 ~ 10.0.0.254
)를 허용, 단일 IP나0.0.0.0/0
(모든 IPv4)도 지정 가능(권장하지 않음)METHOD
:md5
비밀번호 인증(권장),trust
(비밀번호 없음, 원격 접속 절대 비추천),password
(평문 전송, 안전하지 않음)는 피하십시오.
- 파일 저장
ServBay에서 PostgreSQL 서비스를 재시작하여 설정을 적용합니다.
이제 클라이언트는 호스트의 LAN IP, PostgreSQL 유효 계정 및 비밀번호로 접속할 수 있습니다.
ServBay는 PostgreSQL의 root
(postgres) 계정 비밀번호 재설정도 지원합니다. 사용자 권한 관리는 이 기능 혹은 DB 클라이언트로 처리하세요.
Memcached
Memcached는 고성능 분산 인메모리 캐시 시스템으로, 기본적으로 매우 단순하고 내장 인증/권한 관리 기능이 없습니다.
따라서 Memcached를 LAN 혹은 공용 네트워크에 직접 노출하는 것은 권장하지 않으며, 반드시 추가 네트워크 보안 조치(내부 신뢰된 서비스만 접근 가능하도록 IP 제한, 방화벽 엄격 관리 등)를 하십시오.
ServBay에서는 LAN IP 리스닝 설정이 가능하지만, 보안 위험을 반드시 인지한 상태에서만 사용하세요. 기본적으로는 로컬 루프백 주소만 리스닝하도록 구성되어 있습니다. 리스닝 변경 방법은 Redis와 유사하며, Memcached는 비밀번호 보호가 없습니다.
보안 유의사항
LAN에 로컬 개발 환경의 서비스를 오픈하면 협업 및 크로스 디바이스 테스트가 매우 편리하지만, 이에 따른 보안 위험도 커집니다. 다음을 반드시 체크하세요.
- 방화벽: 방화벽을 통해 ServBay 호스트의 오픈 포트 접근을 반드시 제한하십시오. 신뢰하는 LAN IP 범위만 허용하세요.
- 강력한 비밀번호: 데이터베이스(MySQL/MariaDB/PostgreSQL), Redis 등에는 반드시 강력한 비밀번호를 설정하고, 정기적으로 교체하세요.
- 최소 권한 원칙: 데이터베이스 사용자는 필요한 최소한의 권한만 부여하시고,
root
나postgres
와 같은 최고 권한 계정으로 원격 접속을 일상적으로 사용하지 마십시오. - Memcached 보안: 다시 한 번 강조하건대, Memcached는 근본적으로 보안 기능이 없어 노출이 위험합니다. SSH 터널 등 안전한 연결 방식을 활용하는 것이 좋습니다.
- 운영체제 업데이트: ServBay 호스트의 OS와 ServBay 및 모든 패키지를 최신으로 유지하여, 보안 패치가 모든 요소에 적용되도록 하십시오.
이 모든 단계와 보안 수칙을 준수하여, LAN에서 ServBay 로컬 개발 환경을 보다 안전하고 효율적으로 공유·이용하시기 바랍니다.