*****중요*****
터먹스에서 포트번호 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 포트로 연결되 윈도우에서 인식 가능
'IT 전자기기' 카테고리의 다른 글
| wg tunnel 설정 (0) | 2026.02.23 |
|---|---|
| 제미나이가 스스로 코딩하고 에러 찾고 완성 하는 설정 (0) | 2026.02.19 |
| TERMUX 에 ta-lib 설치하기 (0) | 2026.02.07 |
| 구형폰에 AI 설치하기 (0) | 2026.02.07 |
| 사우스차이나모닝포스트 SCMP RSS (0) | 2026.02.05 |
댓글