tomato固件 其实dd wrt也一样
1. 安装软件(python为例)
拷贝路由etc的所有文件及,目录道 移动硬盘的etc
mount -o bind <移动硬盘etc路径> /tmp/etc
mount -o bind <移动硬盘opt路径> /opt
解压缩 opt.tar.gz(在http://code.google.com/p/oleg-for-mss-base/downloads/list 下载)
找到ipkg
ipkg装好后再装python
root@tomato:/tmp/mnt/MD2/route_sw/opt/program/python26# ipkg install http://www.cnblogs.com/http://www.cnblogs.com/ipkg_packages/python26_2.6.7-1_mipsel.ipk
Installing python26 (2.6.7-1) to root...
Installing bzip2 (1.0.6-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/bzip2_1.0.6-1_mipsel.ipk
An error ocurred, return value: 1.
Collected errors:
Package bzip2 wants to install file /opt/bin/bzcat
/opt/bin/bzcat 重命名这个 即可
root@tomato:/opt# cd bin/
root@tomato:/opt/bin# ll | grep "python"
-rwxr-xr-x 1 root root 6120 Jun 9 06:04 python2.6*
-rwxr-xr-x 1 root root 1418 Jun 9 06:04 python2.6-config*
root@tomato:/opt/bin# python2.6
Python 2.6.7 (r267:88850, Jun 8 2011, 22:01:39)
[GCC 4.1.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 1+1
2
>>>
>>> exit
Use exit() or Ctrl-D (i.e. EOF) to exit
>>>
root@tomato:/opt/bin#
表明python成功安装
2. 电驴highid的玩法
贴个安装包把 2.2.6 稳定版
amule_2.2.6-1_mipsel.ipk
https://files.cnblogs.com/simoncook/amule2.2.6.zip
1. 重设电驴的tcp和udp端口 10001 10002
2. 在路由上设置端口转发
3. 在路由上的防火墙中放开这些端口10001 10002 10004 10005
root@tomato:/tmp/home/root# iptables -A INPUT -p tcp --dport 10001 -j ACCEPT
root@tomato:/tmp/home/root# iptables -A INPUT -p tcp --dport 10002 -j ACCEPT
root@tomato:/tmp/home/root# iptables -A INPUT -p tcp --dport 10004 -j ACCEPT
root@tomato:/tmp/home/root# iptables -A INPUT -p tcp --dport 10005 -j ACCEPT
root@tomato:/tmp/home/root#
aMulecmd$ status
> eD2k: Connected to TV Underground No1 [193.169.86.73:4184] with HighID
> Kad: Connected (firewalled)
> Download: 2.84 kB/s
> Upload: 236 bytes/sec
3. 在公网测试你的ip
nohup python2.6 pySocketServer.py &
这样就能是进程 即使 退出这个终端 依然在后台运行
今天跟mc联机测试了下
在公网也是能通过tcp联通
但是有三点
1. server端代码bind 0.0.0.0ip(如下)
2. 要在路由中设置端口转发
3. 要在路由中的防火墙里开放这个端口
如果用python写的server端代码
bind的ip地址写0.0.0.0
1 import socket
2 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
3 sock.bind(('0.0.0.0', 8666))
4 sock.listen(5)
5 while True:
6 connection,address = sock.accept()
7 try:
8 connection.settimeout(60)
9 buf = connection.recv(1024)
10 if buf == '1':
11 connection.send('welcome to server!')
12 else:
13 connection.send('please go out!')
14 except socket.timeout:
15 print 'time out'
16 connection.close()
测试客户端
1 import socket
2 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
3 sock.connect(('你路由公网ip', 8666))
4 import time
5 time.sleep(2)
6 sock.send('1')
7 print sock.recv(1024)
8 sock.close()
=====================
2011/11/28
今天晚上回来
发现amule又变成低id了
尝试再加了一次 防火墙中的列表
root@tomato:/tmp/home/root# iptables -A INPUT -p tcp --dport 10001 -j ACCEPT
root@tomato:/tmp/home/root# iptables -A INPUT -p tcp --dport 10002 -j ACCEPT
root@tomato:/tmp/home/root# iptables -A INPUT -p tcp --dport 10003 -j ACCEPT
root@tomato:/tmp/home/root# iptables -A INPUT -p tcp --dport 10004 -j ACCEPT
root@tomato:/tmp/home/root# iptables -A INPUT -p tcp --dport 10005 -j ACCEPT
就ok了
可以用 iptables -L查看