一.花生殼的作用
首先,我們先來了解一下花生殼的到底有什麼作用。因爲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