★★★★★fbi warning★★★★★
以下操作相當於給內網的防火牆上開了個洞,會給整個內網帶來極其嚴重的安全隱患!
為避免產生法律問題,請在操作前務必向網路管理員諮詢您的操作許可權!
★★★★★★★★★★★★★★★★★★★
《基於vps伺服器的內網****方案》
前言
假設我們在內網有乙個自己的電腦a(執行win7),希望在外網家中用另一台電腦b(執行win7)訪問內網資源,或偽裝為內網電腦訪問外網資源。
由於內網電腦沒有公網ip,所以外網電腦無法直接向內網電腦發起連線。為實現我們的目標,需要從內網電腦主動向乙個公網伺服器發起乙個連線,外網電腦通過這個伺服器使用這一連線,再通過內網電腦進行訪問。
現在已有許多商業內網**伺服器可以實現此功能,比如花生殼、步輕雲、teamview、gotomycloud等等。但天下沒有免費的午餐,要使用第三方的公網伺服器就必須為第三方付費,並且這些伺服器都有各種各樣的限制。此外,由於資料報會流經第三方,因此對資料安全也是一大隱患。
隨著個人vps伺服器的普及,越來越多的朋友想用自己的vps伺服器作為內網**,這樣既安全又免費。本套方案實現了這一目標,並具有以下無可替代的優勢:
如果您的方案在滿足上面四個條件的基礎上,比我的方案更簡單,敬請指教!下文將對配置方案作詳細的介紹。
先決條件
1. a機上可訪問外網並且可以安裝虛擬機器。
2. 擁有乙個外網的vps伺服器s(執行debian 7.x)。推薦購買bandwagon的廉價vps伺服器(
),一年100多元。
一、建立從內網機到外網伺服器的反向隧道
1.1. 在a機上用虛擬機器執行ubuntu server。首先安裝virtualbox虛擬機器。
最新版的virtualbox不用配置網路即可從本地可用的網路連線上網。
在virtualbox中安裝ubuntu server,全部預設設定即可。
1.2. 由a機發起,建立從a到s的反向隧道連線,命令格式:
ssh -c -r :localhost:22 -p @
執行此命令後,可能需要輸入suser在s機的密碼。反向隧道連線建立成功以後,即遠端登入到s,接下來的操作都是將在s上執行。命令舉例:
ssh -c -r 876:localhost:22 -p 26131 [email protected]
1.3. 建立從s到a的ssh動態**,可視為從s到a的socks**服務,命令格式:
ssh -c -f -n -d -p @localhost
執行此命令後,可能需要輸入luser在a機的密碼。至此,我們已將a作為s的socks**伺服器。命令舉例:
ssh -c -f -n -d 1080 -p 876 devymex@localhost
1.4. 用curl命令測試連線,命令格式:
curl --socks4 localhost:
此命令若執行成功,url所指向的內容會列印在螢幕上。一般以簡短的html頁面為佳,太大的資源會很慢。命令舉例:
如果未安裝curl,需先安裝:
apt-get install curl
若未找到curl包,需先更新apt-get:
apt-get update
二、在伺服器端用delegate實現二級http**
2.1.如果沒有g++需要先安裝g++,命令:
apt-get install g++
cd ~
wget
tar -xzf delegate9.9.13.tar.gz
tar -xzf:/home/delegate9.9.13子目錄並解壓縮到此目錄中。
2.3. 編譯delegate,命令:
cd ~/delegate9.9.13
make
make命令必須在delegate解壓後的目錄中執行。如果未安裝make,需先安裝:
apt-get install make
make執行的過程較慢,其間會提示輸入電子郵箱,任意輸入,然後按y即可。
2.4. 啟動delegate,命令格式:
命令舉例:
2.5. 用curl命令測試連線,命令格式:
curl -x localhost:
命令舉例:
三、在伺服器端建立埠**
現在s機上已經有本地的http**了,接下來要將
3.1 如有必要,先清除已有nat規則,命令:
iptables -t nat -f
iptables是乙個非常強大的防火牆/路由程式,用法也比較複雜,具體可參考相關文件,此處不做贅述。
3.2 建立http協議的埠**,命令格式:
iptables -t nat -a output -p tcp --dport 80 -j redirect --to-ports
命令執行後,由s機發出的http請求(80埠)都將被**到hport埠上。
命令舉例:
iptables -t nat -a output -p tcp --dport 80 -j redirect --to-ports 8118
3.3. 用curl命令測試連線,命令格式:
curl
命令舉例:
四、在外網機通過ssh隧道連線到外網伺服器
1. 在b機安裝bitvise ssh客戶端軟體
2. 配置bitvise ssh客戶端的login頁
host:s機的伺服器ip;port:ssh服務埠;username:登入使用者名稱;initial method:password;password:登入密碼。
3. 配置bitvise ssh客戶端的services頁
4. 在b機安裝privoxy。
5. 配置privoxy目錄下的config.txt檔案,並執行privoxy:
listen-address 0.0.0.0:1984
forward-socks5 / 127.0.0.1:1080 .
6. b機上的任意程式,以localhost:1984為http**,即可通過a機訪問內網資源。
備註
1. kill掉delegate程序即可終止s機上的http**服務,刪除delegate的目錄即可完全解除安裝delegate。
2. 執行如下命令可取消80埠資料報的**:
iptables -t nat -f
3. 斷開從a機到s機的連線,即可終止s機上的socks**服務。
4. 檢視偵聽指定埠的程序id,命令格式:
fuser -un tcp
從外網訪問內網伺服器的方法
一 確保頁面在內網可正常訪問 比如,tomcat預設頁面是 http localhost 8080 二 確認內網ip和外網ip 1 windows系統的內網ip查詢辦法 a 按下 win r 快捷鍵,開啟 執行 視窗 b 在 執行 視窗裡輸入 cmd 並按enter鍵,開啟命令 command 視窗...
外網如何訪問內網伺服器
如何實現外網訪問內網?路由器如何配置?老闆想在家裡實現遠端訪問伺服器,公司伺服器ip192.168.1.8 dns 192.168.1.8 最佳答案 路由器上需要設定埠對映,將你伺服器上的3389埠對映到路由器上,這樣,你老闆就可以通過外網訪問3389埠來對伺服器進行遠端桌面控制。不過為了安全,你可...
外網訪問伺服器內網的資料
客戶公司給了他們自己的伺服器 外網ip還有跟外網在乙個網段的內網ip 我也不清楚這個是什麼服務,目前沒有琢磨明白。但是客戶給出了這樣的組合,意思肯定是,資料都放在內網伺服器上。對外的介面和程式服務都放在外網伺服器上面。問題來了,資料都在內網上,我用自己的開發機想要看資料咋辦捏,最簡單的方法,遠端桌面...