2013/10/31

網樂通 shtwbox OS 配置範例

[2014/01/26更新]
裝好 sh4twbox 0.9.2 以後的版本會使用新的 STLinux 2.4 套件,打算將網樂通做到下列功能: 連結多磁碟、transmission-cli (BT下載 web 版)、全球一動 Wimax / 3G 橋接器、動態網域名稱(以 noip 實現)、sshd、tmux、mongoose、web2py、polipo、ftpd、samba(網路芳鄰)
首先若剛裝好 sh4twbox 可能你的 shpkg-st 套件已經是舊的,先裝新版吧!
shpkg -Sy              # 更新套件資料庫索引表
shpkg -S shpkg-st  stlinux24-sh4-glibc # 更新 shpkg 本身, 安裝 ldd 工具
shpkg -Syy             # 抓新的 soidx 對應名稱
shpkg -Sn stlinux24-sh4-glibc st24/stlinux24-sh4-file  # 安裝 ldd, file 工具
shpkg -SEn nano stlinux24-sh4-ncurses-base # 如果不會使用 vi, 可以安裝 nano 當編輯器

1. 連結多磁碟

# vi /etc/fstab 加上類似內容,設定外部磁碟
/dev/sda1 /boot vfat  defaults 0 1
/dev/sdb1 /root/Downloads ext4  noatime,defaults 0 0

# vi /etc/rc.local 加上下列這行,自動連結所有 fstab 定義磁碟
mount -a

2. transmission-cli (BT下載)

安裝
shpkg -SE sh4twbox/transmission-cli

設定可參考 Arch Linux wiki 、網友 Can Chang 文章及 sh4twbox wiki, 以下舉例設定 192.168.15.*
transmission-daemon -e "/var/log/transmission.log" # 先啟動
pkill transmission-daemon # 再停止,產生預設設定檔
vi /root/.config/transmission-daemon/settings.json # 修改允許連接的主機
"rpc-whitelist": "127.0.0.1,192.168.15.*",
vi /etc/rc.local # 加上一行 
/usr/bin/transmission-daemon  
-e "/var/log/transmission.log" -g "/root/.config/transmission-daemon" -f --log-error  &
使用瀏覽器 http://sh4twbox:9091/ 或 http://<ip>:9091/ 操作

若要裝中文介面, 參考: https://code.google.com/p/transmission-control/wiki/Install

3. 全球一動 Wimax 或是 3G 上網橋接器

shpkg -S kernel-module sh4twbox-kernel
depmod
cd /etc/init.d
cp bridge.sample bridge
vi bridge
modprobe cdc_ether # 這是大力玩晶片驅動程式, 其他3G 可能不同但可以試看看
sleep 20
brctl addbr br0
brctl setfd br0 0 # forward delay time to zero
brctl stp br0 off
brctl addif br0 usb0
brctl addif br0 eth0
ifconfig eth0 up
ifconfig usb0 up
udhcpc -i br0 -A7 -b -S > /var/log/udhcpc.log 2>&1 &

4. 動態網域名稱(以 noip 實現)

shpkg -S noip
noip2 -C -Y # 將帳號密碼及設定填入 /etc/no-ip2.conf

驗證是否成功
ping <你的noip帳號>.no-ip.org 得知你的 ip
到 http://www.whatismyip.com/ 查一下是不是一樣

5. 安全連線 sshd 設定

對於外部網路連進網樂通最好還是用 ssh
shpkg -Sn st24/stlinux24-sh4-openssh st24/stlinux24-sh4-openssh-server
shpkg -Sn st24/stlinux24-sh4-openssh-clients
shpkg -Sn st24/stlinux24-sh4-tcp-wrappers st24/stlinux24-sh4-bash
shpkg -Sn st24/stlinux24-sh4-openssl st24/stlinux24-sh4-zlib
vi  /etc/openssh/sshd_config  # 建議不要使用內定的 Port 調整 Port 那一行
/etc/init.d/sshd start

驗證是否成功
ssh root@<ip>

注意: 開機啟動的script /etc/init.d/rcS 已設定 sshd ,所以不需要在 rc.local 重複加

6. 多人共享文字畫面及斷線後接續畫面 tmux

shpkg -SEn tmux st24/stlinux24-sh4-ncurses-base

驗證是否成功
TERM=xterm-color tmux

例如打算下載 http 或是 ftp 檔案, 可以使用 tmux 畫面
打 wget http://example.com/example.file

斷線時,重新連上後可以使用以下指令恢復畫面
TERM=xterm-color tmux a  # attach

7. mongoose - 精簡 web server 

shpkg -Sn st24/stlinux24-sh4-mongoose

設置方式參考直接打 mongoose --help (官網上說明的需較新版本)
加入下列這行到 /etc/rc.local
mongoose -ports 8000 -root /var/www > /var/log/www.log 2>&1 &

驗證是否成功
echo "<html>hi</html>" > /var/www/index.ht
使用瀏覽器連接 http://<ip>:8000

8. web2py - 動態網站 

shpkg -Sn st24/stlinux24-sh4-python st24/stlinux24-sh4-sqlite
mkdir /opt
wget http://www.web2py.com/examples/static/web2py_src.zip
unzip web2py_src.zip

初次設定,參考 
python2 /opt/web2py/web2py.py --help # 看語法說明
python2 /opt/web2py/web2py.py -a <password> -i 0.0.0.0 -p 8000 # 設定密碼及 ip port

運作起來耗 CPU 50~65%,大約一個動作需10~20秒反應,不建議使用

9. polipo - 突破網路封鎖設定 proxy

# shpkg -Sn st24/stlinux24-sh4-squid  # 要用 squid 可以裝這個,但不建議在小系統裝
shpkg -Sn polipo
vi /etc/polipo.conf # 詳細設定參考 Arch Wiki 或是 polipo -c 顯示支援的設定
其中設定檔可以類似以下寫法,注意不要有雙引號(原始文件說明有誤)
  allowedClients = 127.0.0.1, 192.168.1.0/24  

vi /etc/rc.local # 加上一行 
/usr/bin/polipo -c /etc/polipo.conf >> /var/log/polipo.log 2>&1 &
 驗證是否成功,可以參考browser proxy 教學設定, port 設定 8123

10. ftpd - 開啟檔案分享 server

使用 busybox 的 ftpd 具有佔資源少,比 samba 效能高,詳細設定參考

cd /etc/init.d
mv ftpd.sample ftpd
./ftpd  # 可以編輯想分享的目錄, 預設是 / 比較危險

11. samba - 網路芳鄰 - 讓 windows 讀寫檔案

[以下做法測試中尚未成功]
shpkg -Sn stlinux24-sh4-gnutls stlinux24-sh4-libacl stlinux24-sh4-libattr \
stlinux24-sh4-libbsd stlinux24-sh4-libcap stlinux24-sh4-libgcrypt \
stlinux24-sh4-libgpg-error stlinux24-sh4-popt stlinux24-sh4-samba \
stlinux24-sh4-samba-common stlinux24-sh4-samba-dc stlinux24-sh4-samba-libs \
stlinux24-sh4-zlib

vi /etc/rc.local # 加上一行 
/etc/rc.d/init.d/samba start >> /var/log/samba.log 2>&1 &
smbpasswd -a root # 設定帳號 root 的 smb 密碼

在 windows 端輸入 \\<ip> 就可以看到目錄, 帳號輸入 root, 並輸入剛才設的密碼
Windows 7 還需要額外設定

沒有留言: