像訪問廣域網同樣訪問局域網中的計算機

準備

一臺處於廣域網中的vps (ubuntu系統),vps安裝ssh,局域網計算機安裝sshhtml

開始

1.修改vps文件

  1. 修改vps文件 /etc/ssh/sshd_config ,在第一行添加代碼 GatewayPorts yes前端

  2. 開啓端口,好比開啓6666端口mysql

  3. 查看當前端口是否被佔用
    lsof -i:6666
    若是被佔用的話能夠殺死進程
    kill 進程號sql

2.局域網主機連入

ssh -fNR 6666:localhost:80 root@vps的ip

輸入vps登錄密碼。完成。shell

3. 訪問

如今訪問vps的6666端口,就至關於訪問局域網內計算機的80端口ubuntu

4. 局域網計算機掉線

若是局域網計算機掉線,vps會等待必定的時間,若是在這個時間段內局域網計算機能夠上網了,就恢復鏈接;若是超過這個時間段,vps就自動中斷這條服務。具體戳 ssh幾個超時參數安全

ssh 隧道代理轉發

ssh 有三個強大的端口轉發命令,分別是本地轉發、遠程轉發、動態轉發。服務器

本地訪問127.0.0.1:port1就是host:port2(用的更多)
ssh -CfNg -L port1:127.0.0.1:port2 user@host    #本地轉發
訪問host:port2就是訪問127.0.0.1:port1
ssh -CfNg -R port2:127.0.0.1:port1 user@host    #遠程轉發
能夠將dmz_host的hostport端口經過remote_ip轉發到本地的port端口
ssh -qTfnN -L port:dmz_host:hostport -l user remote_ip   #正向隧道,監聽本地port
能夠將dmz_host的hostport端口轉發到remote_ip的port端口
ssh -qTfnN -R port:dmz_host:hostport -l user remote_ip   #反向隧道,用於內網穿透防火牆限制之類
socket代理:
ssh -qTfnN -D port remotehost
參數詳解:
-q Quiet mode. 安靜模式
-T Disable pseudo-tty allocation. 不佔用 shell 了
-f Requests ssh to go to background just before command execution. 後臺運行,並推薦加上 -n 參數
-N Do not execute a remote command. 不執行遠程命令,端口轉發就用它了
-L port:host:hostport 
將本地機(客戶機)的某個端口轉發到遠端指定機器的指定端口. 工做原理是這樣的, 本地機器上分配了一個 socket 偵聽 port 端口, 一旦這個端口上有了鏈接, 該鏈接就通過安全通道轉發出去, 同時遠程主機和 host 的 hostport 端口創建鏈接. 能夠在配置文件中指定端口的轉發. 只有 root 才能轉發特權端口. IPv6 地址用另外一種格式說明: port/host/hostport
-R port:host:hostport 
將遠程主機(服務器)的某個端口轉發到本地端指定機器的指定端口. 工做原理是這樣的, 遠程主機上分配了一個 socket 偵聽 port 端口, 一旦這個端口上有了鏈接, 該鏈接就通過安全通道轉向出去, 同時本地主機和 host 的 hostport 端口創建鏈接. 能夠在配置文件中指定端口的轉發. 只有用 root 登陸遠程主機才能轉發特權端口. IPv6 地址用另外一種格式說明: port/host/hostport
-D port 
指定一個本地機器 「動態的’’ 應用程序端口轉發. 工做原理是這樣的, 本地機器上分配了一個 socket 偵聽 port 端口, 一旦這個端口上有了鏈接, 該鏈接就通過安全通道轉發出去, 根據應用程序的協議能夠判斷出遠程主機將和哪裏鏈接. 目前支持 SOCKS協議, 將充當SOCKS服務器. 只有 root 才能轉發特權端口. 能夠在配置文件中指定動態端口的轉發.

1 ssh 本地轉發

遠程管理服務器上的 mysql,mysql 不能直接 root 遠程登錄。這時候就能夠經過本地轉發,經過 ssh 將服務器的 3306 端口轉發到本地 1234 端口ssh

ssh -CfNg -L 1234:27.0.0.1:3306 root@vps的ip

2 ssh 遠程轉發

內網的服務器,外網不能直接訪問,使用遠程轉發,將內網的服務器端口轉發到外網端口。這時候訪問外網的端口,就訪問到了內網的端口。socket

ssh -CfNg -R 81:127.0.0.1:80 root@192.168.153.142

如今在 192.168.153.142 訪問 127.0.0.1:81 就是訪問內網的服務器的 80 端口。

3 ssh 動態轉發 socks 代理

把遠程主機設置成代理,來代理訪問不能訪問的資源。在地機器上分配了一個監聽端口, 一旦這個端口上有了鏈接, 該鏈接就通過 ssh 隧道轉發出去, 根據應用程序的協議能夠判斷出遠程主機將和哪裏鏈接。

ssh -qTfnN -D 1080  root@vps的ip

參考:http://www.zerokeeper.com/experience/network-port-forwarding-and-penetration.html

相關文章
相關標籤/搜索