中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Linux NAT服務(wù)器支持UPnP的方法

2019-07-23    來源:愛站科技

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

在使用一些P2P類型軟件的時候,我們發(fā)現(xiàn)得經(jīng)常在Linux服務(wù)器上手動設(shè)置NAT,這樣就顯得有點麻煩,那如何才能讓讓Linux支持UPnP變得更簡單呢?現(xiàn)在我們就去看看Linux NAT服務(wù)器支持UPnP的方法。

一、什么是UPnP

1. UPnP簡介

--------------

UPnP(Universal Plug and Play)技術(shù)對即插即用進(jìn)行了擴(kuò)展,它簡化了家庭或企業(yè)中智能設(shè)備的聯(lián)網(wǎng)過程。在結(jié)合了UPnP技術(shù)的設(shè)備以物理形式連接到網(wǎng)絡(luò)中之后,它們可以通過網(wǎng)絡(luò)自動彼此連接在一起,而且連接過程無需用戶的參與

UPnP規(guī)范基于TCP/IP協(xié)議和針對設(shè)備彼此間通訊而制訂的其它Internet協(xié)議。這就是它之所以被稱作"通用(Universal)"的原因所在--UPnP技術(shù)不依賴于特定的設(shè)備驅(qū)動程序,而是使用標(biāo)準(zhǔn)的協(xié)議。UPnP設(shè)備可以自動配置網(wǎng)絡(luò)地址,宣布它們在某個網(wǎng)絡(luò)子網(wǎng)的存在,以及互相交換對設(shè)備和服務(wù)的描述;赪indows XP的計算機可以充當(dāng)一個UPnP控制點,通過程序界面對設(shè)備進(jìn)行發(fā)現(xiàn)和控制。

如果與以前的即插即用相比,這種技術(shù)似乎并不具有什么革命性的意義。在操作系統(tǒng)中增加即插即用技術(shù)使得在單個計算機上安裝、配置和添加外設(shè)的工作變得更容易了。但是UPnP為家庭用戶或者小型辦公環(huán)境中的非專業(yè)用戶所帶來的是一道更加美味的"大餐",他們可以利用UPnP玩多人游戲,進(jìn)行實時通信(Internet電話,電話會議)以及使用類似Windows XP的遠(yuǎn)程協(xié)助這樣的其它技術(shù)。

2. NAT 穿越技術(shù)

------------------

NAT穿越技術(shù)允許網(wǎng)絡(luò)應(yīng)用程序?qū)λ鼈兪欠裎挥谝粋具有UPnP能力的NAT設(shè)備之后進(jìn)行檢測。然后,這些程序?qū)@得共享的全球可路由IP地址,并且配置端口映射以將來自NAT外部端口的數(shù)據(jù)包轉(zhuǎn)發(fā)到應(yīng)用程序使用的內(nèi)部端口上--所有這一切都是自動完成的,用戶無需手動映射端口或者進(jìn)行其它工作。NAT穿越技術(shù)允許網(wǎng)絡(luò)設(shè)備或者點對點應(yīng)用程序通過動態(tài)開啟和閉合與外部服務(wù)之間的通信端口穿過NAT網(wǎng)關(guān)與外界通信。

二、在Linux中部署UPnP支持

我們假設(shè)該Linux的內(nèi)核版本是2.4.x,使用撥號上網(wǎng),外網(wǎng)接口是ppp0,內(nèi)網(wǎng)接口是eth0,并且已經(jīng)啟用iptables設(shè)定了 NAT。

在Linux中部署UPnP主要使用2個軟件的配合:UPnP SDK for Linux和LinuxIGD。

下載地址:

UPnP SDK for Linux: http://sourceforge.net/projects/upnp/

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

www.britepic.org注意:要下載upnpsdk-1.0.4.tar.gz,1.0.4以上的版本不能和LinuxIGD很好的協(xié)同工作!

A. 安裝:

----------

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

B. 配置

--------

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運行狀態(tài)

# 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]dime@gulfsales.com[/email])

Dec? 14 16:02:15 doorway upnpd: Special Thanks for Intel's Open Source SDK and original author Genmei Mori's work.

則說明UPnP已經(jīng)成功啟動。

C. 測試

--------

以支持UPnP的P2P網(wǎng)絡(luò)電視PPLive為例,在PPLive中打開UPnP支持選項,然后連接一個頻道。

在Linux中執(zhí)行:

# tail /var/log/debug -f

如果能看到:

Dec? 14 16:56:33 doorway upnpd: AddPortMap: RemoteHost: (null) Prot: 17 ExtPort: 3226 Int: 10.0.0.2.3226

Dec? 14 16:56:33 doorway upnpd: AddPortMap: RemoteHost: (null) Prot: 6 ExtPort: 3226 Int: 10.0.0.2.3226

Dec? 14 16:56:33 doorway upnpd: AddPortMap: RemoteHost: (null) Prot: 6 ExtPort:? 3156 Int: 10.0.0.2.3156

Dec? 14 16:56:33 doorway upnpd: AddPortMap: RemoteHost: (null) Prot: 6 ExtPort:? 3156 Int: 10.0.0.2.3156

則說明PPLive已經(jīng)向UPnP請求進(jìn)行端口映射了。只要看到這樣的字樣,就說明UPnP已經(jīng)完全工作起來了。

本文就是介紹Linux NAT服務(wù)器支持UPnP的方法的內(nèi)容,如果對網(wǎng)絡(luò)安全要求較高或要求高可控制性的網(wǎng)絡(luò),則不要安裝配置UPnP支持,否則會導(dǎo)致網(wǎng)絡(luò)NAT映射比較混亂,從而引發(fā)許多問題。建議小型網(wǎng)絡(luò)或者家庭網(wǎng)絡(luò)使用UPnP。

標(biāo)簽: Linux NAT UPnP

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:如何在ubuntu下安裝samba

下一篇:Linux自帶BIND需注意什么