当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > [精华] 使用 IGD(Upnp)解決 MSN 語音聊天問題

Unix/Linux
linux php扩展安装方法
Linux上架设支持JSP+PHP的Web服务器
FreeBSD WEB服务器架设笔记
Linux下Web服务器架设攻略
Apache配置技巧
在 Linux 上安装 PostgreSQL
文件属性控制命令chmod
解决安装Domino for Linux时配置的Web服务器无法启动的问题
在Linux下配置和安装Domino 服务器的问题
Linux下配置和安装Domino 服务器 2
Linux下配置和安装Domino 服务器 3
Linux编译内核
I810 Graphics LINUX Driver的安装
在Linux下如何使用软盘、光盘等分区
建立并安装一个定制的内核
中小型企业的Sendmail邮件服务器应用实例
Linux下 Sendmail服务器 转发功能的讲解
linux下文件解压
配置Sendmail服务器以防治垃圾邮件
配置Sendmail服务器以防治垃圾邮件 2

Unix/Linux 中的 [精华] 使用 IGD(Upnp)解決 MSN 語音聊天問題


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 148 ::
收藏到网摘: n/a

因為MSN Messenger 不直接支持NAT﹐所以在使用Iptables 構建的Firewall后面的MSN Messenger用戶無法和Firewall外面的用戶使用語音通訊。而Linux UPnP Internet Gateway Device Project剛好就可以解決該問題。
首先﹐來看看什么是UPnpUPnP是通用即插即用(Universal Plug and Play)的縮寫,是實現智慧設備端到端網路連接的結構。它也是一種架構在TCP/IP和HTTP技術之上的,分散式、開放的網路結構,以使得在聯網的設備間傳遞控制和資料。UPnP技術實現了控制點、設備和服務之間通訊的支援,並且設備和相關服務的也使用XML定義並且公佈出來。使用UPnP,設備可以動態加入網路,自動獲得一個IP地址,向其他設備公佈它的能力或者獲知其他設備的存在和服務,所有這些過程都是自動完成的,此後設備能夠彼此直接通訊。UPnp 相關網站1. UPnP Forum UPnp Forum2. UPnP SDK For Linux UPnP SDK For Linux3. Linux UPnP Internet Gateway Device Linux UPNP IGD好啦﹐現在我們再來看看怎樣在Linux 下面安裝Linux IGD(請確保你擁有root權限﹐并了解怎樣在Linux 編譯程序)1. 到http://sourceforge.net/projects/linux-igd/下載Linux GID 程序﹐當前版本是 0.922. 到http://sourceforge.net/projects/upnp/下載UPnP SDK For Linux. 當前版本為1.043. 解壓縮 bash-2.04# tar -xzf linuxigd-0.92.tgz bash-2.04# tar -xzf upnpsdk-1.0.4.tar.gz4.修改 upnpsdk 源程序中的src/ssdp/ssdplib.c,將第406行 從 SelfAddr.sin_addr.s_addr = inet_addr(SSDP_IP); 改為 SelfAddr.sin_addr.s_addr = htonl(INADDR_ANY);5.編譯 upnpsdk bash-2.04# cd /usr/src/upnpsdk-1.0.4 bash-2.04# make ....... bash-1.04# make install6.編譯 Linux IGD bash-1.04# cd /usr/src/linux-gid bash-1.04# make bash-1.04# make install7.增廣播地址路由 route add -net 239.0.0.0 netmask 255.0.0.0 [color=red]int_if[/color] 注意﹐將上面命令中的 int_if 換成你的Firewall上的內部網卡名稱。 e.g. 你使用eth0 聯接到你的局域網﹐則使用以下命令﹕ route add -net 239.0.0.0 netmask 255.0.0.0 eth08. 啟動Upnp 完成以上命令后﹐在命令行敲入命令﹕ upnpd 當然﹐你得用你的Internet 接口網卡取代上面的﹐并用內部局域網網卡名稱取代. e.g. 在我的Firewall上﹐我使用eth0 聯接到互聯網﹐使用eth1聯接到局域網﹐則我使用以下命令﹕ upnpd eth0 eth1 9.這里﹐再嘗試一下在你的客戶端電腦上使用MSN和你的朋友進行語音聊天.... 好啦﹐基本的安裝完成了。當然﹐你要是想每次開機自動執行﹐你還得寫一個腳本。這里提供一個供參考 (該腳本轉自Linux GID 網站的論壇)#!/bin/sh # chkconfig: 2345 20 80 # description: upnpd is a Universal Plug and Play Internet Gateway Device for Linux. # # Source function library. . /etc/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ $ = "no" ] && exit 0 RETVAL=0 prog="upnpd" start() { tickers='' # Start daemons. echo -n $"Starting $prog: " daemon upnpd eth0 eth1 RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/upnpd route add -net 239.0.0.0 netmask 255.0.0.0 eth1 return $RETVAL } stop() { # Stop daemons. echo -n $"Shutting down $prog: " killproc upnpd RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/upnpd route del -net 239.0.0.0 netmask 255.0.0.0 eth1 return $RETVAL } # See how we were called. case "" in start) start ;; stop) stop ;; status) status upnpd RETVAL=$? ;; restart|reload) stop start RETVAL=$? ;; condrestart) if [ -f /var/lock/subsys/upnpd ]; then stop start RETVAL=$? fi ;; *) echo $"Usage: " exit 1 esac exit $RETVAL 將以上內容復制到 /etc/rc.d/init.d/upnpd,并用chkconig 設定啟動參數。至此﹐所有設定基本完成啦﹐各位如果有問題﹐歡迎在此討論。這篇文章﹐只是拋磚引玉.希望有大量的玉向我砸來....