怎樣從外網訪問內網伺服器,網訪問內伺服器

來源:互聯網
上載者:User

怎樣從外網訪問內網伺服器,網訪問內伺服器

假設內網有一個自己的電腦A(運行Win7),希望在家中用另一台電腦B(運行Win7)訪問內網資源。

 

先決條件

1. A機上可訪問外網並且可以安裝虛擬機器。

2. 擁有一個外網的VPS伺服器S(運行Debian),可購買BandWagon的廉價伺服器(http://bandwagonhost.com/),一年100多元。


原理

從A機發起到S的串連,並保持此串連。以此串連為基礎,建立從S到A的隧道。再將S所有到80連接埠的請求(HTTP請求)通過隧道轉寄到A機上,由A機作為S機的HTTP代理。外網B機建立從B到S的隧道,由S機作為B機的代理,從而實現 B -> S -> A -> 內網 的二級代理結構。

 

用到的主要軟體和命令
  • ssh:Linux命令,建立串連;
  • curl:Linux命令,抓取URL;
  • delegate:Linux軟體,用於將HTTP請求轉換為SOCKS請求的Proxy 伺服器;
  • iptables:Linux命令,路由表配置;
  • VirtualBox:Windows軟體,虛擬機器;
  • Ubuntu Server:虛擬機器作業系統;
  • Bitvise:Windows軟體,SSH隧道代理;
  • Privoxy:Windows軟體,用於將HTTP請求轉換為SOCKS請求的Proxy 伺服器。

 

一、建立反向隧道

1.1. 在A機上安裝UbuntuServer虛擬機器。

下載VirtualBox:https://www.virtualbox.org/wiki/Downloads

下載Ubuntu Server:http://www.ubuntu.com/download/server

1.2. 由A機發起,建立從A到S的反向隧道串連,命令格式:

ssh -R [NPORT]:localhost:22 -p [RPORT] [SUSER]@[S_IP]

NPORT :在S機上進行偵聽的連接埠。在S機上發往"localhost:NPORT"的資料包都將被直接轉寄到A機的22連接埠(SSH預設服務連接埠)。

RPORT:S機的SSH服務連接埠。

SUSER:登入S機的使用者名稱,一般為root。

S_IP:S機的公網IP。

執行此命令後,可能需要輸入SUSER在S機的密碼。反向隧道串連建立成功以後,即可作為S的終端進行操作(在A機上遠程登入到S)。

命令舉例:

ssh -R 876:localhost:22 -p 26131 root@14.12.83.20

1.3. 由S機發起,建立從S到A的SSH動態轉寄,即從S機到A機的SOCKS代理服務,命令格式:

ssh -f -N -D [SPORT] -p [NPORT] [LUSER]@localhost

SPORT:S機上SOCKS代理服務進行偵聽的連接埠。在S機上發出的以"localhost:SPORT"為SOCKS 代理的資料包都將被直接轉寄給A機。

NPORT:S機上偵聽的反向隧道連接埠,在第1.2步指定。

LUSER:登入A機的使用者名稱。

執行此命令後,可能需要輸入LUSER在A機的密碼。至此,從S機到A機的SOCKS代理已建立成功。

命令舉例:

ssh -f -N -D 1080 -p 876 devymex@localhost

1.4. 用curl命令測試連接,命令格式:

curl --socks4 localhost:[SPORT] [URL]

SPORT:S機上SOCKS代理服務進行偵聽的連接埠,在1.3步制定。

URL:任意網址。

命令舉例:

curl --socks4 localhost:1080 www.baidu.com

 

二、在伺服器端安裝delegated

登入到S機執行下列操作。

2.1. 如果沒有g++需要先安裝g++,命令:

apt-get install g++

2.2. 下載和解壓delegate(DeleGate Support Site),命令:

cd ~wget ftp://ftp.delegate.org/pub/DeleGate/delegate9.9.13.tar.gztar -xzf delegate9.9.13.tar.gz

2.3. 編譯delegate,命令:

cd ~/delegate9.9.13make

2.4. 運行delegate,命令格式:

cd ./srcdelegated -P[HPORT] SERVER=http SOCKS=localhost:[SPORT]

DPORT:S機上HTTP代理服務進行偵聽的連接埠。

SPORT:S機上SOCKS代理服務進行偵聽的連接埠,在1.3步指定。

命令舉例:

delegated -P8118 SERVER=http SOCKS=localhost:1080

2.5. 用curl命令測試連接,命令格式:

curl -x localhost:[HPORT] [URL]

HPORT:S機上HTTP代理服務進行偵聽的連接埠,在2.4步指定。

URL:任意網址。

命令舉例:

curl -x localhost:8118 www.baidu.com

 

三、在伺服器端建立連接埠轉寄

登入到S機執行下列操作。

3.1 清除已有nat規則,命令:

iptables -t nat -F

3.2 建立http 協議的連接埠轉寄,命令格式:

iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports [HPORT]

HPORT:S機上HTTP代理服務進行偵聽的連接埠,在2.4步指定。

命令執行後,由S機發出的HTTP請求(80連接埠)都將被轉寄到HPORT連接埠上。

命令舉例:

iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8118

3.3. 用curl命令測試連接,命令格式:

curl [URL]

HPORT:S機上HTTP代理服務進行偵聽的連接埠,在2.4步指定。

URL:任意網址。

命令舉例:

curl www.baidu.com

 

四、外網機通過SSH隧道串連到伺服器

1. 在B機安裝Bitvise SSH用戶端軟體

:https://www.bitvise.com/ssh-client

2. 配置Bitvise SSH的Login頁

Host:S機的伺服器IP;Port:SSH服務連接埠;Username:登入使用者名稱;Initial method:password;Password:登入密碼。

3. 配置Services頁:SOCKS/HTTP Proxy Forwarding:Enabled;Listen interface:127.0.0.1;Listen port:1080。

4. 在B機安裝Privoxy。

:http://sourceforge.net/projects/ijbswa/files/

5. 配置Privoxy目錄下的config.txt檔案,並運行Privoxy:

listen-address  0.0.0.0:1984forward-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 [PORT]

5. B機上建議使用Firefox+AutoProxy進行訪問。
AutoProxy:Firefox 21-27的AutoProxy擴充20131215更新


如果您有任何疑惑,或遇到任何問題,敬請評論或私信,協助我完善此方案。謝謝!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.