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

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

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


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