奮戰了幾天,分享一下戰果,
這主要是給在linux nat內部有電腦要用像msn之類的軟體能夠使用語音和影像
及檔案傳輸的,不過我現在只試過msn其他像yahoo msg或icq我沒試,
在裝之前你的iptables rule能都先設成accetp是最好啦,
upnp的packet是這裡的
http://linux-igd.sourceforge.net/
下載linux-igd的檔案外還要
http://upnp.sourceforge.net
來這下載upnp sdk
那debian還要裝上uuid-dev這個packet
apt-get install uuid-dev
就成啦
解開上述兩個packet後
upnp sdk要先最修改
1. 在upnp下src/ssdp/ssdplib.c的406行
SelfAddr.sin_addr.s_addr = inet_addr(SSDP_IP);
to:
SelfAddr.sin_addr.s_addr = htonl(INADDR_ANY);
2. 在upnp下src/gena中3個.c的檔案大約都是38行處
#include "/gena/gena.h"
to:
#include "../inc/gena/gena.h"
之後請如此安裝
make DEBUG=1 WEB=1
make install
在其他linux套件中似乎不一定要加DEBUG=1 WEB=1這組參數,
但在我的debian是加了才能用的
另外linux-igd就不用改東西直接
make
make install
就行了
裝完後還有兩件事
1. link iptables到 /usr/sbin/
ln -s /sbin/iptables /usr/sbin/iptables
2. route add -net 239.0.0.0 netmask 255.0.0.0 eth1
那eth1是你的內部網路介面,是eth0的就別照上面打
接下來你只要啟動upnpd就行了
upnpd out_interface in_interface
如果eth0對外 eth1對內就打 upnpd eth0 eth1
這樣就大功告成啦,
如果區網中有xp的執行
iptables -L -t nat
就可看到類似這樣的訊息
DNAT udp -- anywhere debian udp dpt:64505 to:192
.168.0.6:14677
DNAT tcp -- anywhere debian tcp dpt:19164 to:192
.168.0.6:7396
那沒有的看看有沒有這個檔/var/log/debug 裡面有沒有upnpd的啟動訊息
Feb 16 22:32:49 debian upnpd: Intializing UPnP with desc_doc_url=http://192.168.
0.9:2869/gatedesc.xml
Feb 16 22:32:49 debian upnpd: ipaddress=192.168.0.9 port=2869
Feb 16 22:32:49 debian upnpd: conf_dir_path=/etc/linuxigd/
Feb 16 22:32:51 debian upnpd: UPnP Initialization Completed
Feb 16 22:32:51 debian upnpd: Setting webserver root directory -- /etc/linuxigd/
Feb 16 22:32:51 debian upnpd: Registering the root device
Feb 16 22:32:51 debian upnpd: RootDevice Registered
Feb 16 22:32:51 debian upnpd: Initializing State Table
Feb 16 22:32:51 debian upnpd: State Table Initialized
Feb 16 22:32:51 debian upnpd: Advertisements Sent
若沒有,在/etc/syslog.conf中加入
*.=debug /var/log/debug
我沒注意debian要不要加,不過我加了後訊息都是跑兩行出來,因為太懶,
所以我也沒回去註解掉試試,我想debian應該是不用加就會有吧
我的debian是kernel2.4.19的testing,把這完成後msn就可以有影像和通話
還有傳檔,不過要是有安全性問題的人就先三思一下吧,應為這東西似乎還是
beta還沒完成的樣子,freebsd也可以用,請查閱linux-igd網站2002-08-04的
更新紀錄