內網端口映射詳解(花生殼)

關於如何建立服務器的解答。

一.花生殼的作用

首先,我們先來了解一下花生殼的到底有什麼作用。因爲ADSL每次撥號上網所獲得的IP地址每次都是不同的,花生殼起到的作用就是方便用戶訪問我們的服務器(只需要輸入域名便可),而不用每次都輸入IP地址那麼麻煩(因爲我們也不可能每次重新撥號上網後,又去告訴用戶現在的服務器的IP地址什麼)。

例如,我們的花生殼護照下有一個域名www.oray.net ,那麼只要在電腦上用該護照登陸了花生殼客戶端。當別人輸入www.oray.net的時候,會自動解析到那臺電腦所在的網絡的公網IP地址。

也就是說,具體的服務器,是要我們自己去設置完成的。而不同的上網方式,建立服務器的方式是不同的,下面介紹兩種常見上網方法的服務器的建立。(這兩個上網方法主要區別在於用來做服務器的計算機,能否得到公網的IP地址)。


二.ADSL直接撥號上網(不經過路由器等路由設備)

如果是通過ADSL Modem直接ADSL撥號上網,那麼您的計算機獲得的是公網的IP地址。
可以參考這裏面的文章來直接建立服務器:
http://www.oray.net/Help/Samples/Help_Samples.htm


三.通過路由器共享上網(也就是處於局域網內部)

如果您是通過路由器上網,那麼則需要在路由器上做端口映射,外網的計算機才能訪問你的服務器。


背景知識:

1.什麼是私有IP地址(內網IP地址)?

私有地址,這些地址被大量用於企業內部網絡中。一些寬帶路由器,也往往使用192.168.1.1作爲缺省地址。私有網絡由於不與外部互連,因而可能使用隨意的IP地址。保留組的地址供其使用是爲了避免以後接入公網時引起地址混亂。使用私有網絡在接入Internet事,要使用實質翻譯(NAT),將私有地址翻譯成公用合法地址。在Internet上,這類地址是不能出現的。

2.私有IP地址的範圍(形式):
192.168.x.x (如上圖裏面的192.168.1.10到192.168.1.12)
10.x.x.x
172.16.x.x ~172.31.x.x

爲什麼局域網內做服務器要在路由器上做端口映射?

首先,我們必須清楚:

(1)Internet網絡中,只有公網IP是能夠互相通訊的。

(2)局域網內,通一網段的私有IP地址能夠互相通訊。(但公網IP不能和私有IP直接互相通訊。)

(3)路由器一般有兩個IP:一個是公網IP地址(用於和公網的計算機通訊)。一個是內網(私有)IP(用於和內網的計算機通訊)。

(4)與路由器連接的計算機,獲取的只是內網(私有)IP地址。只能通過路由器和公網的其它計算機進行通訊。
        (它自己是不能直接和外網的計算機通訊的)

注意第(2)點,這就是爲什麼許多朋友都問:“爲什麼我的網站在局域網的電腦上可以瀏覽,但外網的電腦卻打不開?”的主要原因。


常見的服務器端口號:
WEB服務器(網站服務器):80端口
FTP服務器(文件服務器):21端口
終端服務器:3389端口
郵件服務器:25端口(SMTP)和110端口(POP)
VPN服務器:1723端口


實例說明

假設現在外網有一臺ADSL直接撥號上網的電腦,所獲得的是公網IP(61.168.45.23)。然後它想訪問局域網內的電腦
(192.168.1.10)上面的網站。

(路由器上已經做好了端口映射。具體規則是:將所有發向自己80端口的數據,都轉發到內網的計算機192.168.1.10上。)

訪問過程如下:

①公網電腦(61.168.45.23)向路由器(218.6.146.31)發送請求,要求訪問它的80端口。(相同道理,如果是要訪問FTP服務器,
     則發送訪問路由器21端口的請求。)

②路由器收到請求後,按照端口映射的規則,通過內網IP地址192.168.1.1把請求的數據發送到局域網內的計算機192.168.1.10上。

③計算機192.168.1.10收到請求後,把自己電腦中網站的數據發送到路由器。

④路由器收到計算機192.168.1.10發來的數據後,通過公網IP 218.6.146.31把它們發送到公網的計算機61.168.45.23上去。


下面我們就結合花生殼,再來說明上面的例子:

例如

我們的花生殼護照abc下有一個域名www.oray.net,那麼我們在192.168.1.10上,用護照abc登陸花生殼客戶端。這時候,www.oray.net 對應的IP地址就是路由器的公網IP地址218.6.146.31了。具體訪問過程如下:

①公網電腦(61.168.45.23)的用戶輸入www.oray.net,想要訪問192.168.1.10上的網站。

②花生殼的域名服務器告訴計算機61.168.45.23,www.oray.net這個域名對應的IP地址是218.6.146.31。

③於是,計算機61.168.45.23向路由器(218.6.146.31)發送請求,要求訪問它的80端口。

④路由器收到請求後,按照端口映射的規則,通過內網IP地址192.168.1.1把請求的數據發送到局域網內的計算機192.168.1.10上。

⑤計算機192.168.1.10收到請求後,把自己電腦中網站的數據發送到路由器。

⑥路由器收到計算機192.168.1.10發來的數據後,通過公網IP 218.6.146.31把它們發送到公網的計算機61.168.45.23上去。

可以看到,其實正個過程和原來差不多是一樣的,只是前面部分稍微有點不同,多了個域名解析過程而已。


四.到底什麼是端口

  在網絡技術中,端口的英文是Port,它有有兩種解釋:
           一是物理意義上的端口,比如,ADSL Modem、集線器、交換機、路由器用於連接其他網絡設備的接口,如RJ-45端口、SC端口等等。
           二是邏輯意義上的端口,一般是指TCP/IP協議中的端口,端口號的範圍從0到65535,比如用於瀏覽網頁服務的80端口,用於FTP服務的21端口等等。我們這裏將要介紹的就是邏輯意義上的端口。

  端口的分類

  邏輯意義上的端口有多種分類標準,下面將介紹兩種常見的分類:

  1. 按端口號分佈劃分

  (1)知名端口(Well-Known Ports)

  知名端口即衆所周知的端口號,範圍從0到1023,這些端口號一般固定分配給一些服務。比如21端口分配給FTP服務,25端口分配給SMTP(簡單郵件傳輸協議)服務,80端口分配給HTTP服務,135端口分配給RPC(遠程過程調用)服務等等。

  (2)動態端口(Dynamic Ports)

  動態端口的範圍從1024到65535,這些端口號一般不固定分配給某個服務,也就是說許多服務都可以使用這些端口。只要運行的程序向系統提出訪問網絡的申請,那麼系統就可以從這些端口號中分配一個供該程序使用。比如1024端口就是分配給第一個向系統發出申請的程序。在關閉程序進程後,就會釋放所佔用的端口號。

  不過,動態端口也常常被病毒木馬程序所利用,如冰河默認連接端口是7626、WAY 2.4是8011、Netspy 3.0是7306、YAI病毒是1024等等。

  2. 按協議類型劃分

  按協議類型劃分,可以分爲TCP、UDP、IP和ICMP(Internet控制消息協議)等端口。下面主要介紹TCP和UDP端口:

  (1)TCP端口

  TCP端口,即傳輸控制協議端口,需要在客戶端和服務器之間建立連接,這樣可以提供可靠的數據傳輸。常見的包括FTP服務的21端口,Telnet服務的23端口,SMTP服務的25端口,以及HTTP服務的80端口等等。

  (2)UDP端口

  UDP端口,即用戶數據包協議端口,無需在客戶端和服務器之間建立連接,安全性得不到保障。常見的有DNS服務的53端口,SNMP(簡單網絡管理協議)服務的161端口,QQ使用的8000和4000端口等等

            怎樣去查看(找)端口呢?

           提示:本人對Windows系統熟悉點,所以不闡述其它系統了!見諒!

  在Windows 2000/XP/Server 2003中要查看端口,可以使用Netstat命令:

  依次點擊“開始→運行”,鍵入“cmd”並回車,打開命令提示符窗口。在命令提示符狀態下鍵入“netstat -a -n”,按下回車鍵後就可以看到以數字形式顯示的TCP和UDP連接的端口號及狀態(如圖)。


QUOTE:
Microsoft Windows [版本 5.2.3790]
(C) 版權所有 1985-2003 Microsoft Corp.

C:/Documents and Settings/Administrator>netstat -a -n

Active Connections

     Proto     Local Address             Foreign Address           State
     TCP       0.0.0.0:21                0.0.0.0:0                 LISTENING
     TCP       0.0.0.0:25                0.0.0.0:0                 LISTENING
     TCP       0.0.0.0:80                0.0.0.0:0                 LISTENING
     TCP       0.0.0.0:110               0.0.0.0:0                 LISTENING
     TCP       0.0.0.0:135               0.0.0.0:0                 LISTENING
     TCP       0.0.0.0:143               0.0.0.0:0                 LISTENING
     TCP       0.0.0.0:366               0.0.0.0:0                 LISTENING
     TCP       0.0.0.0:1025              0.0.0.0:0                 LISTENING
     TCP       0.0.0.0:1026              0.0.0.0:0                 LISTENING
     TCP       0.0.0.0:1027              0.0.0.0:0                 LISTENING
     TCP       0.0.0.0:1040              0.0.0.0:0                 LISTENING
     TCP       0.0.0.0:1045              0.0.0.0:0                 LISTENING
     TCP       0.0.0.0:1863              0.0.0.0:0                 LISTENING
     TCP       0.0.0.0:3000              0.0.0.0:0                 LISTENING
     TCP       0.0.0.0:3004              0.0.0.0:0                 LISTENING
     TCP       0.0.0.0:3306              0.0.0.0:0                 LISTENING
     TCP       0.0.0.0:3389              0.0.0.0:0                 LISTENING
     TCP       0.0.0.0:4449              0.0.0.0:0                 LISTENING
     TCP       127.0.0.1:3001            0.0.0.0:0                 LISTENING
     TCP       127.0.0.1:3002            0.0.0.0:0                 LISTENING
     TCP       127.0.0.1:3003            0.0.0.0:0                 LISTENING
     TCP       127.0.0.1:3009            127.0.0.1:3306            ESTABLISHED
     TCP       127.0.0.1:3306            127.0.0.1:3009            ESTABLISHED
     TCP       127.0.0.1:9189            0.0.0.0:0                 LISTENING
     TCP       127.0.0.1:23883           0.0.0.0:0                 LISTENING
     TCP       192.168.1.100:80          59.49.233.34:31456        ESTABLISHED
     TCP       192.168.1.100:80          61.141.167.189:1177       ESTABLISHED
     TCP       192.168.1.100:80          218.56.136.208:5285       ESTABLISHED
     TCP       192.168.1.100:80          221.237.165.17:1213       ESTABLISHED
     TCP       192.168.1.100:80          222.168.11.186:4422       ESTABLISHED
     TCP       192.168.1.100:139         0.0.0.0:0                 LISTENING
     TCP       192.168.1.100:1038        222.47.205.27:5050        ESTABLISHED
     TCP       192.168.1.100:4079        219.136.252.79:80         ESTABLISHED
     TCP       192.168.1.100:4604        83.149.119.17:80          CLOSE_WAIT
     TCP       192.168.1.100:4605        83.149.119.17:80          CLOSE_WAIT
     TCP       192.168.1.100:4691        165.21.32.111:80          FIN_WAIT_1
     TCP       192.168.1.100:4694        165.21.32.104:80          FIN_WAIT_1
     UDP       0.0.0.0:161               *:*
     UDP       0.0.0.0:500               *:*
     UDP       0.0.0.0:1028              *:*
     UDP       0.0.0.0:1044              *:*
     UDP       0.0.0.0:3005              *:*
     UDP       0.0.0.0:3010              *:*
     UDP       0.0.0.0:3348              *:*
     UDP       0.0.0.0:3581              *:*
     UDP       0.0.0.0:3956              *:*
     UDP       0.0.0.0:3958              *:*
     UDP       0.0.0.0:4500              *:*
     UDP       0.0.0.0:4714              *:*
     UDP       0.0.0.0:27099             *:*
     UDP       0.0.0.0:29367             *:*
     UDP       0.0.0.0:29368             *:*
     UDP       127.0.0.1:123             *:*
     UDP       127.0.0.1:1037            *:*
     UDP       127.0.0.1:3006            *:*
     UDP       127.0.0.1:3363            *:*
     UDP       127.0.0.1:3551            *:*
     UDP       127.0.0.1:3600            *:*
     UDP       127.0.0.1:4321            *:*
     UDP       192.168.1.100:123         *:*
     UDP       192.168.1.100:137         *:*
     UDP       192.168.1.100:138         *:*
     UDP       192.168.1.100:17985       *:*
     UDP       192.168.1.100:17987       *:*

C:/Documents and Settings/Administrator>
這些,就是你的機器開放和正在使用的端口了!
(上面的具體參數是什麼意思,我們後面再講,這裏不講那麼多,免得新手一下接受不了)


不過這個操作命令我還是要解釋一下,因爲我自己也經常忘記
Netstat命令

命令格式:Netstat -a -e -n -o -s

  -a 表示顯示所有活動的TCP連接以及計算機監聽的TCP和UDP端口。

  -e 表示顯示以太網發送和接收的字節數、數據包數等。

  -n 表示只以數字形式顯示所有活動的TCP連接的地址和端口號。

  -o 表示顯示活動的TCP連接幷包括每個連接的進程ID(PID)。

  -s 表示按協議顯示各種連接的統計信息,包括端口號


netstat命令詳解


Displays protocol statistics and current TCP/IP network connections.

NETSTAT [-a] [-e] [-n] [-o] [-s] [-p proto] [-r] [interval]

     nbsp;-a nbsp;              Displays all connections and listening ports.
     -e               Displays Ethernet statistics. This may be combined with the -s
                   option.
     -n               Displays addresses and port numbers in numerical form.
     -o               Displays the owning process ID associated with each connection.
     -p proto         Shows connections for the protocol specified by proto; proto
                   may be any of: TCP, UDP, TCPv6, or UDPv6.     If used with the -s
                   option to display per-protocol statistics, proto may be any of:
                   IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP, or UDPv6.
     -r               Displays the routing table.
     -s               Displays per-protocol statistics.     By default, statistics are
                   shown for IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP, and UDPv6;
                   the -p option may be used to specify a subset of the default.
     interval         Redisplays selected statistics, pausing interval seconds
                   between each display.     Press CTRL+C to stop redisplaying
                   statistics.     If omitted, netstat will print the current
                   configuration information once.

基本是這樣了。

       好了,基本上,你應該有些端口的概念了!接下來,讓我們再來了解,什麼叫《端口映射》

             1-爲什麼要映射:如果你是ADSL、CABLE MODEM或光纖等寬帶接入用戶,想在網吧或公司內部建一個遊戲服務器或WEB服務器,並且能夠讓互聯網上的用戶訪問你的服務器,那麼你就會遇到端口映射問題。(舉個簡單例子:你爸上學校找你,來到學校大門卻不知道你在哪個教室,這時候值班老師就帶你爸爸來到你的教室---->這個過程就如同“端口映射”)

             2-怎樣去映射:通常情況下,路由器都有防火牆功能,互聯網用戶只能訪問到你的路由器WAN口(接ADSL線口),而訪問不到內部服務器。要想讓外面用戶訪問到服務器,那麼你就要在路由器上做一個轉發設置,也就是端口映射設置,讓用戶的請求到了路由器後,並能夠到達遊戲服務器或WEB服務器。這就是端口映射。
目前,所有的寬帶路由器都有端口映射功能,只是各個路由器廠商所取功能名稱不一樣,有的叫虛擬服務器,有的叫NAT設置。。。
端口映射設置很簡單,例如要映射一臺IP地址爲192.168.1.254的WEB服務器,只需把服務器的IP地址192.168.1.254和TCP端口80填入到路由器的端口映射表中就OK了,當然不同的服務有不同的端口,新手切勿亂改端口,避免造成衝突,這樣的衝突故障一般情況下你是找不到原因的!

            3-射完後,如何檢測:舉個例子:WEB服務器應該是80端口映射,這時候,先放一個名爲index.htm的靜態頁面,然後用你的ip或者域名輸入到地址欄,回車,看看是否能正常訪問!

5.爲什麼我輸入我的域名後,要輸入賬號和密碼?

(1)路由器(或Modem)中開啓了遠程管理功能,佔用了路由器的80端口,所以每次輸入域名(或路由器的公網IP),都會彈出登陸
        窗口。

(2)你的Web配置不正確,Web服務器的默認賬號沒有訪問站點目錄的權限。
http://blog.sina.com.cn/s/blog_5902fe8f0100cr0r.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章