分页: 1 / 1

在Ubuntu中配置upnp

发表于 : 2011-11-01 19:35
yiyinianhua
在网上找了一个例子,可是按照他的方法却不能实现。下面是网上找的例子:
在Linux中部署UPnP支持

我们假设该Linux的内核版本是2.4.x,使用拨号上网,外网接口是ppp0,内网接口是eth0,并且已经启用iptables设定了 NAT。

在Linux中部署UPnP主要使用2个软件的配合:UPnP SDK for Linux和LinuxIGD。
下载地址:
UPnP SDK for Linux:http://sourceforge.net/projects/upnp/

LinuxIGD:http://linux-igd.sourceforge.net/

注意:要下载upnpsdk-1.0.4.tar.gz,1.0.4以上的版本不能和LinuxIGD很好的协同工作!

安装:

1. 解包UPnP SDK
# tar xzvf upnpsdk-1.0.4.tar.gz

2. 修改源代码
为了能够使Windows MSN Messenger在UPnP下正常通讯,所以必须修改源代码:
# cd upnpsdk-1.0.4
# vi src/ssdp/ssdplib.c
将第406行的:
SelfAddr.sin_addr.s_addr = inet_addr(SSDP_IP);
改为:
SelfAddr.sin_addr.s_addr = htonl(INADDR_ANY);

3. 编译安装UPnP SDK
# make
# make install

4. 解包Linux-IGD
# tar xzvf linuxigd-0.92.tgz

5. 编译安装Linux-IGD
# cd linux-igd
# make
# make install

配置:
1. 增加广播路由
# route add -net 239.0.0.0 netmask 255.0.0.0 eth0

2. 为iptables建议一个软链接
# cd /usr/sbin
# ln -s /sbin/iptables ./

启动UPnP
# upnpd ppp0 eth0

诊断UPnP运行状态
# tail /var/log/messages

如果能够看到:
Dec 14 16:01:49 doorway -- MARK --
Dec 14 16:02:15 doorway upnpd: The Linux UPnP Internet Gateway Device Ver 0.92 by Dime ([email protected])
Dec 14 16:02:15 doorway upnpd: Special Thanks for Intel's Open Source SDK and original author Genmei Mori's work.
则说明UPnP已经成功启动。


本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2009-01/18094.htm

在我自己的电脑上 用命令 # tail /var/log/messages

Nov 1 16:58:47 dj-laptop kernel: [ 9881.711051] ADDRCONF(NETDEV_UP): wlan0: link is not ready
Nov 1 17:00:39 dj-laptop kernel: [ 9994.272992] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
Nov 1 17:07:12 dj-laptop kernel: [10386.499729] process `sysctl' is using deprecated sysctl (syscall) net.ipv6.neigh.default.retrans_time; Use net.ipv6.neigh.default.retrans_time_ms instead.
Nov 1 17:10:10 dj-laptop kernel: [10564.877550] ADDRCONF(NETDEV_UP): eth0: link is not ready
Nov 1 17:29:08 dj-laptop kernel: [11702.969050] ADDRCONF(NETDEV_UP): eth0: link is not ready
Nov 1 17:54:19 dj-laptop -- MARK --
Nov 1 18:14:19 dj-laptop -- MARK --
Nov 1 18:34:19 dj-laptop -- MARK --
Nov 1 18:54:19 dj-laptop -- MARK --
Nov 1 19:14:19 dj-laptop -- MARK --

不知道是哪里错了,希望大虾指导。。。

Re: 在Ubuntu中配置upnp

发表于 : 2011-11-01 19:42
cnkilior
too old

Re: 在Ubuntu中配置upnp

发表于 : 2014-01-03 16:09
hqyhqyhq
upnpd: error while loading shared libraries: libixml.so.2: cannot open shared object file: No such file or directory
这是怎么回事?

Re: 在Ubuntu中配置upnp

发表于 : 2014-01-03 16:13
hqyhqyhq
补充:我已经有了libxml2相关库
[root@localhost sbin]# ldd upnpd
linux-gate.so.1 => (0x00998000)
libpthread.so.0 => /lib/libpthread.so.0 (0x004df000)
libupnp.so.2 => /usr/lib/libupnp.so.2 (0x00b03000)
libixml.so.2 => not found
libthreadutil.so.2 => not found
libc.so.6 => /lib/libc.so.6 (0x00352000)
/lib/ld-linux.so.2 (0x00333000)
libuuid.so.1 => /lib/libuuid.so.1 (0x00c7a000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00110000)

[root@localhost sbin]# ls /usr/lib/libxml
libxml2.a libxml2.so.2 libxmlsec1.a libxmlsec1.so.1
libxml2.so libxml2.so.2.6.26 libxmlsec1.so libxmlsec1.so.1.2.9

该如何解决上面的问题呢?

Re: 在Ubuntu中配置upnp

发表于 : 2014-01-03 16:32
hqyhqyhq
问题解决了
#upnpd ppp0 eth0
upnpd: error while loading shared libraries: libupnp.so.2: cannot open shared object file: No such file or directory
#ln -s /usr/lib/libupnp.so /usr/lib/libupnp.so.2
upnpd: error while loading shared libraries: libixml.so.2: cannot open shared object file: No such file or directory
[root@localhost linuxigd-1.0]# ln -s /usr/local/lib/libixml.so.2 /usr/lib/libixml.so.2
/usr/sbin/upnpd: error while loading shared libraries: libthreadutil.so.2: cannot open shared object file: No such file or directory
[root@localhost linuxigd-1.0]# ln -s /usr/local/lib/libthreadutil.so.6 /usr/lib/libthreadutil.so.2

Re: 在Ubuntu中配置upnp

发表于 : 2014-01-03 17:17
photor
:em09