[分享]Linux NAT支援UPNP

這個版面主要討論 debian 在 server 端的應用問題, server 種類繁多..舉凡 Web Server 、 File Server、 DHCP Server..等等。

版主: 阿信

[分享]Linux NAT支援UPNP

文章Angus » 週一 2月 17, 2003 1:03 am

奮戰了幾天,分享一下戰果,
這主要是給在linux nat內部有電腦要用像msn之類的軟體能夠使用語音和影像
及檔案傳輸的,不過我現在只試過msn其他像yahoo msg或icq我沒試,
在裝之前你的iptables rule能都先設成accetp是最好啦,
upnp的packet是這裡的
http://linux-igd.sourceforge.net/
下載linux-igd的檔案外還要
http://upnp.sourceforge.net
來這下載upnp sdk
那debian還要裝上uuid-dev這個packet
apt-get install uuid-dev
就成啦
解開上述兩個packet後
upnp sdk要先最修改
1. 在upnp下src/ssdp/ssdplib.c的406行
SelfAddr.sin_addr.s_addr = inet_addr(SSDP_IP);
to:
SelfAddr.sin_addr.s_addr = htonl(INADDR_ANY);

2. 在upnp下src/gena中3個.c的檔案大約都是38行處
#include "/gena/gena.h"
to:
#include "../inc/gena/gena.h"
之後請如此安裝
make DEBUG=1 WEB=1
make install
在其他linux套件中似乎不一定要加DEBUG=1 WEB=1這組參數,
但在我的debian是加了才能用的
另外linux-igd就不用改東西直接
make
make install
就行了
裝完後還有兩件事
1. link iptables到 /usr/sbin/
ln -s /sbin/iptables /usr/sbin/iptables
2. route add -net 239.0.0.0 netmask 255.0.0.0 eth1
那eth1是你的內部網路介面,是eth0的就別照上面打
接下來你只要啟動upnpd就行了
upnpd out_interface in_interface
如果eth0對外 eth1對內就打 upnpd eth0 eth1
這樣就大功告成啦,
如果區網中有xp的執行
iptables -L -t nat
就可看到類似這樣的訊息
DNAT udp -- anywhere debian udp dpt:64505 to:192
.168.0.6:14677
DNAT tcp -- anywhere debian tcp dpt:19164 to:192
.168.0.6:7396
那沒有的看看有沒有這個檔/var/log/debug 裡面有沒有upnpd的啟動訊息
Feb 16 22:32:49 debian upnpd: Intializing UPnP with desc_doc_url=http://192.168.
0.9:2869/gatedesc.xml
Feb 16 22:32:49 debian upnpd: ipaddress=192.168.0.9 port=2869
Feb 16 22:32:49 debian upnpd: conf_dir_path=/etc/linuxigd/
Feb 16 22:32:51 debian upnpd: UPnP Initialization Completed
Feb 16 22:32:51 debian upnpd: Setting webserver root directory -- /etc/linuxigd/
Feb 16 22:32:51 debian upnpd: Registering the root device
Feb 16 22:32:51 debian upnpd: RootDevice Registered
Feb 16 22:32:51 debian upnpd: Initializing State Table
Feb 16 22:32:51 debian upnpd: State Table Initialized
Feb 16 22:32:51 debian upnpd: Advertisements Sent
若沒有,在/etc/syslog.conf中加入
*.=debug /var/log/debug
我沒注意debian要不要加,不過我加了後訊息都是跑兩行出來,因為太懶,
所以我也沒回去註解掉試試,我想debian應該是不用加就會有吧
我的debian是kernel2.4.19的testing,把這完成後msn就可以有影像和通話
還有傳檔,不過要是有安全性問題的人就先三思一下吧,應為這東西似乎還是
beta還沒完成的樣子,freebsd也可以用,請查閱linux-igd網站2002-08-04的
更新紀錄
Angus
可愛的小學生
可愛的小學生
 
文章: 10
註冊時間: 週五 10月 04, 2002 12:29 am

re:[分享]Linux NAT支援UPNP

文章阿信 » 週一 2月 17, 2003 11:07 am

感恩阿...謝謝分享。
頭像
阿信
版面大總管
版面大總管
 
文章: 4756
註冊時間: 週二 9月 03, 2002 11:58 pm
來自: 台灣 - 嘉義

re:[分享]Linux NAT支援UPNP

文章Angus » 週一 2月 17, 2003 2:11 pm

果然還是有漏打,補充一下
1. 區網是xp以上系統的,據說msn4.6以上都可以用,不過我只試過5.0
2. win2k以下含win2k系統,要安裝directX 8.1以上才能支援upnp,msn要5.0
,不安裝directX的話也可裝xp在設定IGD共用連線時做的磁片,那樣也能支
援upnp
Angus
可愛的小學生
可愛的小學生
 
文章: 10
註冊時間: 週五 10月 04, 2002 12:29 am

re:[分享]Linux NAT支援UPNP

文章Steven » 週日 7月 06, 2003 4:38 pm

感謝提供這篇文章..

請教一下, 我在 make linux-igd 時出現錯誤:

debian:/tmp/linux-igd# make
g++ -Wall -g -O2 -I/usr/include/upnp -c gate.cpp
g++ -Wall -g -O2 -I/usr/include/upnp -c gateway.cpp
g++ -Wall -g -O2 -I/usr/include/upnp -c sample_util.cpp
g++ -Wall -g -O2 -I/usr/include/upnp -c ipcon.cpp
g++ -Wall -g -O2 -I/usr/include/upnp -c portmap.cpp
g++ -Wall -g -O2 -I/usr/include/upnp -c pmlist.cpp
g++ -Wall -g -O2 gate.o gateway.o sample_util.o ipcon.o portmap.o pmlist.o -lpthread /usr/lib/libupnp.so -o upnpd
/usr/lib/libupnp.so: undefined reference to `print_token'
/usr/lib/libupnp.so: undefined reference to `print_http_request'
/usr/lib/libupnp.so: undefined reference to `printServiceTable'
collect2: ld returned 1 exit status
make: *** [upnpd] Error 1

不知是哪裡出了問題?

PS: upnpsdk-1.0.4.tar.gz 已經依照你的步驟完成.

謝謝..
Steven
 

文章穆德先生 » 週一 5月 23, 2005 2:53 pm

請問現在 MSN 7.0 了 我的 linux 還有裝那個嗎???

我的 linux 有 NAT 但是沒裝 Upnp 我的msn7.0 還是可以用視訊(但是過一段時間會自己段掉>"<)

像這樣是沒裝 upnp 嗎??

謝謝...
穆德先生
 

文章ronmi » 週一 12月 05, 2005 2:41 am

找upnp的資訊找到這篇,多虧大大的提示,我來補充一點點剛剛的心得

目前的testing (etch,至於sid和sarge有沒有我就不確定了)已經把upnp sdk加進去了
套件名稱是 libupnp0 (shared libraries)和 libupnp-dev (development files) 要編譯linuxigd請兩套都裝
這個資訊可以從 apt-cache search upnp 找到

至於 linux-gid 則還沒
另外不知是不是 upnp sdk更新版本的緣故,sourceforge上linuxigd(v0.9)的tar ball無法編譯,從cvs抓v1.0下來就ok
其他就和angus大寫的一樣了
ronmi
懵懂的國中生
懵懂的國中生
 
文章: 103
註冊時間: 週一 12月 05, 2005 2:31 am
來自: Taiwan


回到 debian server

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron