由 coolpk 在 06-07-2003 00:49 发表:
请教在linux下面安装upnp和igd
下面是我看到的资料,大家也先看看
--------------------------------------------------------------------------------
前言 :
一般分享器或企業內之NAT環境下大多無法進行MSN之語音交談與檔案傳送,藉由UPnP與igd的安裝可協助我們解決此類問題。
--------------------------------------------------------------------------------
如何於NAT下進行msn的語音通訊(UPnP)
(Editor: Harvey.Huang)
·安裝環境:
RedHat 8.0 + NAT 環境以架設完成
·安裝軟體:
Intel UPnP SDK(upnpsdk-1.0.4.tar.gz)( http://upnp.sourceforge.net/ )
Linux-IGD(linuxigd-0.92.tgz)( http://linux-igd.sourceforge.net/ )
·安裝步驟
1. 在安裝Intel UPnP SDK前,修改tar開後之檔案內容
tar zxvf upnpsdk-1.0.4.tar.gz
cd upnpsdk-1.0.4
vi upnpsdk-1.0.4/src/ssdp/ssdplib.c
修改line 406
SelfAddr.sin_addr.s_addr = inet_addr(SSDP_IP);
修改為
SelfAddr.sin_addr.s_addr = htonl(INADDR_ANY);
2. 安裝UPNP SDK
make ; make install
3. 安裝 Linux-IGD
tar zxvf linuxigd-0.92.tgz
cd linuxigd-0.92
make ; make install
4. 建一個link
ln -s /sbin/iptables /usr/sbin/iptables
5. 建立debug log
vi /etc/syslog.conf
加入下一行
*.=debug /var/log/debug
6. 啟用 UPnP
upnpd eth1 eth0
(eth1為對外之網卡,eth0為對內之網卡;如為adsl非固接用戶則為 upnpd ppp0 eth1)
7. 加入自動執行vi /etc/rc.d/rc.local
加入 upnpd eth1 eth0 或upnpd ppp0 eth1
8. 重新啟用MSN Messager
Good Luck!!
按理来说,我照上面的做法应该可以实现msn的语音了。但我在编译upnp的时候出现了问题,编译输出如下:
if [ ! -d bin ]; then mkdir bin; fi
if [ ! -d src/lib ]; then mkdir src/lib; fi
make -C src
make[1]: Entering directory `/root/upnpsdk-1.0.4/src'
upnpdom
make[2]: Entering directory `/root/upnpsdk-1.0.4/src/upnpdom'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/root/upnpsdk-1.0.4/src/upnpdom'
ssdp
make[2]: Entering directory `/root/upnpsdk-1.0.4/src/ssdp'
make[2]: `../lib/ssdp.o' is up to date.
make[2]: Leaving directory `/root/upnpsdk-1.0.4/src/ssdp'
soap
make[2]: Entering directory `/root/upnpsdk-1.0.4/src/soap'
make[2]: `../lib/soap.o' is up to date.
make[2]: Leaving directory `/root/upnpsdk-1.0.4/src/soap'
genlib
make[2]: Entering directory `/root/upnpsdk-1.0.4/src/genlib'
make[3]: Entering directory `/root/upnpsdk-1.0.4/src/genlib/http_client'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/root/upnpsdk-1.0.4/src/genlib/http_client'
make[3]: Entering directory `/root/upnpsdk-1.0.4/src/genlib/miniserver'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/root/upnpsdk-1.0.4/src/genlib/miniserver'
make[3]: Entering directory `/root/upnpsdk-1.0.4/src/genlib/service_table'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/root/upnpsdk-1.0.4/src/genlib/service_table'
make[3]: Entering directory `/root/upnpsdk-1.0.4/src/genlib/tpool'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/root/upnpsdk-1.0.4/src/genlib/tpool'
make[3]: Entering directory `/root/upnpsdk-1.0.4/src/genlib/util'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/root/upnpsdk-1.0.4/src/genlib/util'
make[3]: Entering directory `/root/upnpsdk-1.0.4/src/genlib/client_table'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/root/upnpsdk-1.0.4/src/genlib/client_table'
make[3]: Entering directory `/root/upnpsdk-1.0.4/src/genlib/net'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/root/upnpsdk-1.0.4/src/genlib/net'
make[3]: Entering directory `/root/upnpsdk-1.0.4/src/genlib/net/http'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/root/upnpsdk-1.0.4/src/genlib/net/http'
make[3]: Entering directory `/root/upnpsdk-1.0.4/src/genlib/timer_thread'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/root/upnpsdk-1.0.4/src/genlib/timer_thread'
make[2]: Leaving directory `/root/upnpsdk-1.0.4/src/genlib'
gena
make[2]: Entering directory `/root/upnpsdk-1.0