原文地址: http://unmi.cc/windows-linux-port-forwarding/html
這裏記錄一下我曾經使用過的幾個端口轉發工具,即端口映射、端口重定向,和 NAT 也是差很少的概念。linux
Linux 下用過 iptables,rinetd;Windows 下用過某個防火牆的 NAT 功能、RemoteAnywhere 的端口重定向、FPipe,還有最近剛找到的 PassPort。試着去設置一下 Windows 2000 的 NAT 功能,但未成功,仍是特定的軟件簡單易用,下面介紹逐一介紹下。web
iptables 的功能固然強大,但理解與設置卻有點抽象,曾用它進行過透明代理上網,見:Linux 下僅用 iptables 實現爲透明代理服務器。真要用它進行端口重定向太麻煩,會用它固然很方便的,在 Linux 平臺下是開箱即用的,不少機器都安裝了它。windows
rinetd,一直在用它,它能夠多組端口映射寫在配置文件裏,好像只支持 TCP 協議。下載地址http://www.boutell.com/rinetd/http/rinetd.tar.gz,如何安裝不細講了,能夠 apt-get install,或 yum install,或是 make/make install。服務器
安裝後,它默認使用 /etc/rinetd.conf 文件,好比經過入口機訪問某臺內網的遠程桌面,或透過入口的 80 端口訪問內網某機器的 8080 端口上的 Web 服務,能夠這麼寫:工具
1
2
3
4
|
#經過 61.108.218.106:3389 進來的請求重定向給 10.80.10.7:3389
61.108.218.106 3389 10.80.10.7 3389
#任何接口進來請求80端口重定向給 10.80.10.8:8080
0.0.0.0 80 10.80.10.8 8080
|
格式是:【直接被訪問的IP 端口號 重定向到機器IP 端口號】,中間用空格分開。this
使用默認 /etc/rinited.conf 的話,直接執行 rinitd 就啓用你所配置的端口重定向規則。若是不是用的默認文件就用參數 -c 指定配置文件,如 rinitd -c /home/unmi/rinitd.conf。另外還能夠指定 allow 和 deny 規則,只須要 allow 關鍵字,可記錄日誌文件。只需在 rinited.conf 文件中再寫上spa
1
2
3
|
#只容許 218.20.68.* 訪問,未被容許的則視爲禁止
allow 218.20.68.*
logfile /var/log/rinetd.log
|
請參考:http://www.boutell.com/rinetd/。.net
rinetd 還出了 Windows 的版本,相應的下載地址是:http://www.boutell.com/rinetd/http/rinetd.zip。使用方式也是同樣的,命令方式。命令行
那個防火牆軟件的 NAT 功能沒什麼可說,通常人都用不到。RemoteAnywhere 是能夠進行遠程管理的,它帶了 Port Forwarding 功能,經過 Web 就能設置,相信爲了簡單的端口重定向功能,誰也不肯意裝上這個累贅,何況還難免費。
最初在 Windows 上我仍是用的 FPipe,也是命令行式的,支持 TCP 和 UDP 協議。執行一個命令重定向一個端口,不能把重定向規則寫在配置文件中。固然,你願意用批處理逐行讀配置一次次執行 fpipe 命令也行得通的,規則多了當心屏幕一片黑。
FPipe 的下載和幫助界面見:http://www.foundstone.com/us/resources/proddesc/fpipe.htm.
它就只有一個可執行文件 fpipe.exe。直接執行 fpipe 會顯示出它的命令說明的:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
|
C:\Documents and Settings\unmi>fpipe
FPipe v2.1 - TCP/UDP port redirector.
Copyright 2000 (c) by Foundstone, Inc.
<a href="http://www.foundstone.com/">http://www.foundstone.com</a>
FPipe [-hvu?] [-lrs <port>] [-i IP] IP
-?/-h - shows this help text
-c - maximum allowed simultaneous TCP connections. Default is 32
-i - listening interface IP address
-l - listening port number
-r - remote port number
-s - outbound source port number
-u - UDP mode
-v - verbose mode
Example:
fpipe -l 53 -s 53 -r 80 192.168.1.101
|
好比,要完成上面 web 服務的重定向,以執行:
fpipe -i 61.108.218.106 -l 80 -r 80 -s 8080 10.80.10.8
這裏多了一層概念,就是端口,1. 請求哪一個端口,2. 定向到它機的端口,3. 數據從哪一個端口出
支持 UDP 加 -u 參數,執行後命令窗口不關閉,並會顯示鏈接日誌。
Windows 下仍是但願有圖形界面的,那就是 PassPort,它是免費開源的,支持 TCP/UDP、可配置多組映射規則,修改規則後還無需重啓,可做爲 Windows 系統服務運行。好用的強力推薦的東西不能列在後頭,仍是另立一篇來講說它。
參考:1. 端口重定向Fpipe的用法