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

Unix/Linux
Linux管理员手册(4)--内存管理
开始进入Linux的知识问答
TCP/IP基础----为Linux做准备(1)
怎样用linux拨号上网
Linux 下文件的压缩、打包与解开
Linux操作系统下的浏览器举要
Linux中的字型(FONTS)设定
用FIPS为LINUX分区
Squid -- Linux下的一个优秀代理服务器软件使用详解
基于Linux的目录服务实现
动手制做自己的Linux启动盘(1)
如何为Linux添加软件详解
LINUX的引导过程
关于Linux下编写和编译程序的几个问题
中文BluePoint Linux 1.0RC 版安装介绍(二)
怎样让你的Linux使用起来更像Windows
Linux下无线上网设置方法
Linux系统下架设CS服务器的完美方法
优化Linux系统硬盘的七个实用技巧
在Linux操作系统中如何截获系统调用

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 158 ::
收藏到网摘: 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 設定啟動參數。至此﹐所有設定基本完成啦﹐各位如果有問題﹐歡迎在此討論。這篇文章﹐只是拋磚引玉.希望有大量的玉向我砸來....