본문 바로가기
IT 전자기기

삼바서버 구형 스마트폰에 Termux Samba(SMB) 서버 설정 가이드 삼

by 다사도 2026. 2. 17.
반응형

*****중요*****
터먹스에서 포트번호 1000 이하는 root 권한으로만 실행된다.
그리고 root 권한 즉 su 로 실행중 생성되는 로그나 기타 파일은 root만 접근 가능하다.  권한 또는 소유자 변경해도 다른 selinux 때문에 안열린다.

즉 1000번 이상 포트를 사용하고 리다이렉션으로 포트를 재 설정해줘서 문제를 해결하면 된다.

su로 는 되도록 서버를 실행하지 않는 것이 좋다.

포트포워딩 혹은 리다이렉션은 외부 프로그램을 사용하지 않고 안드로이드 자체 기능을 사용해야 할 수 있지만 워낙 심연에 있는 명령어기 때문에 반드시 su 로 실행해줘야 한다.  하단에 3월 2일 수정부분 참조.

pkg update && pkg upgrade -y
pkg install samba -y

# 설정 폴더 생성, termux 에서 기본 폴더는 여기임
mkdir -p $PREFIX/etc/samba

# 설정 파일 쓰기
cat << 'EOF' > $PREFIX/etc/samba/smb.conf
#파일명 : /data/data/com.termux/files/usr/etc/smb.conf
#만든날짜 : 2026.03.02
#기타 : 대소문자 구분안함. 로컬 전용이며 외부 접속 차단. 반드시 아이디 필요.
[global]
    #workgroup, netbios name 아무 의미 없음
    workgroup = WORKGROUP
    netbios name = SONY
    
    #security = USER:아이디가 반듯이 있어야 한다. 
    #map to guest = Never: 게스트는 아무것도 안보여줌.    
    security = user
    map to guest = Never


    # [보안 핵심] 허용할 IP 대역을 지정합니다.
    # 127. : 자기 자신 (루프백)
    # 192.168.0. : 일반적인 공유기 내부망 대역 (사용자님의 환경에 맞춰 수정 가능)
    hosts allow = 127. 192.168.0.

    # 지정한 대역 외의 모든 접근을 거부합니다.
    hosts deny = ALL

    # [네트워크 바인딩] 특정 인터페이스에서만 응답하도록 설정
    # bind interfaces only = yes와 함께 사용하면 더 확실합니다.
    interfaces = 127.0.0.1 192.168.0.0/24
    bind interfaces only = yes

    # 연결 설정, 1000 번 이하 포트는 root 권한으로 만 실행 가능하며 
    # root로 실행시 서버 실행중 생성되는 모든 파일 소유와 권한이 root 에 귀속
    # 4445번 포트로 실행하고 445 로 리다이렉션 포워딩 해주면 됨
    smb ports = 4445
    # samba 1 은 쉽해 해킹 당하므로 반드시 SMB2 이상 추천.
    server min protocol = SMB3_11
    server max protocol = SMB3_11

    #프린스 스플기능 삭제
    disable spoolss = Yes
    load printers = No
    printcap name = /dev/null

    # 상당히 위험함 설정 이지만 관리자 차원에서 모든 파일 접근 가능해서 편함
    # follow symlinks 바로가기 사용가능 즉 마운트한 sdcard 접근 가능
    follow symlinks = Yes
    # termux의 모든 시스템 폴더 접근 가능해짐 *** 매우 위험 ***
    wide links = Yes
    # follow symlinks 와 출돌 나는 옵션이라 yes 면 no 해야함
    unix extensions = No

    # 권한 설정은 termux에서만 가능 윈도우는 막음.
    nt acl support = no
    
    # samba 접속자 uid 번호 규정, 전혀 중요하지 않지만 없으면 경고 메시지 뜸.
    idmap config * : backend = tdb
    idmap config * : range = 10000-99999
    
    # ===== 로그 설정 =====
    log file = /data/data/com.termux/files/home/logs/log.%m
    max log size = 100
    logging = file
    log level = 1

[root]
    path = /data/data/com.termux/files
    read only = No
    valid users = 사용자id
    #사용자id 는 smb에서 만든 아이디지만 force로 설정하면 termuxid 와 동급 대우
    force user = termux id 또는 root
    force group = termux id 또는 root
    create mask = 0644
    directory mask = 0755
EOF

위내용 CAT 부터 EOF 까지 복사해서 붙이면 파일 만들어 짐

로그 저장할 폴더가 없다면 생성 있으면 생략
mkdir -p ~/logs

권한이 755 가 아니면 에러남. directory mask = 0755 설정해두면 폴더 생성시 자동 755
chmod 755 /data/data/com.termux/files/home/logs




Samba 전용 비밀번호 설정 
smbpasswd -L -a 사용자id

smbd -D
위 명령어로 실행 가능하지만 conf 와 로그 까지 정확하게 지정하고 싶다면
smbd -D -s /data/data/com.termux/files/usr/etc/samba/smb.conf -l /data/data/com.termux/files/home/logs/samba
위 명령어 사용

su -c "iptables -t nat -A PREROUTING -p tcp --dport 445 -j REDIRECT --to-port 4445"
위명령어로 445로 들어오는 연결을 4445로 포워딩

즉 서버는 4445로 실행중이지만 네트워크에서 445로 접근하는 연결을 4445로 연결해줌

정상 실행 유무 확인방법

~ $  ps aux | grep smbd

 

또는
~ $ testparm
Load smb config files from /data/data/com.termux/files/usr/etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed

Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

엔터치면 conf 파일 설정 적용 상태 화면에 보임

conf 수정한 경우

~ $ pgrep smbd
~ $ pkill -9 smbd
~ $ pgrep smbd

실행 유무 확인하고 종료하고 다시 실행중인지 확인 하면 코드


*****  설정 변경후 안된다면 *****

smbpasswd -L -a 사용자id
비번 초기화하고

pkill -9 smbd
실행 종료

smbd -D
재실행하면 되는 경우가 많음.

smbd -i --debug-stdout
최종 에러 테스트
위 명령어로 실행하면 에러로그가 화면에 뜸. 정상 실행되면 윈도우에서 접속 테스트 해봄. 접속 메시지 이상 없으면 모두 정상.
이상 있으면 수정 해야함

10번 가까이 폰 전체 초기화 해가며 시도 하고 10일 이상 시도 해서 얻은 가장 안정적인 셋팅임.

이것 저것 시도하며 각종 에러 문제 찾아가며 찾은 설정이라 개인 사용자에게 가장 추천하는 셋팅


termux:boot
./termux/boot/start.sh

smbd -D 
su -c "iptables -t nat -A PREROUTING -p tcp --dport 445 -j REDIRECT --to-port 4445"

위 두줄 넣어두면 부팅과 동시에 실행되고 445 포트로 연결되 윈도우에서 인식 가능



반응형

댓글