成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SSH隧道與端口轉發及內網穿透

安全 數據安全
大家都知道SSH是一種安全的傳輸協議,用在連接服務器上比較多。不過其實除了這個功能,它的隧道轉發功能更是吸引人。本文是作者根據自己的需求以及在網上查找的資料配合自己的實際操作所得到的一些心得。

大家都知道SSH是一種安全的傳輸協議,用在連接服務器上比較多。不過其實除了這個功能,它的隧道轉發功能更是吸引人。下面是個人根據自己的需求以及在網上查找的資料配合自己的實際操作所得到的一些心得。

SSH/plink命令的基本資料:

ssh -C -f -N -g -L listen_port:DST_Host:DST_port user@Tunnel_Host

ssh -C -f -N -g -R listen_port:DST_Host:DST_port user@Tunnel_Host

ssh -C -f -N -g -D listen_port user@Tunnel_Host

相關參數的解釋:

-f Fork into background after authentication.

后臺認證用戶/密碼,通常和-N連用,不用登錄到遠程主機。

-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 端口, 一旦這個端口上有了連接, 該連接就經過安全通道轉發出去, 根據應用程序的協議可以判斷出遠程主機將和哪里連接. 目前支持 SOCKS4 協議, 將充當 SOCKS4 服務器. 只有 root 才能轉發特權端口. 可以在配置文件中指定動態端口的轉發.

-C Enable compression.

壓縮數據傳輸。

-N Do not execute a shell or command.

不執行腳本或命令,通常與-f連用。

-g Allow remote hosts to connect to forwarded ports.

在-L/-R/-D參數中,允許遠程主機連接到建立的轉發的端口,如果不加這個參數,只允許本地主機建立連接。注:這個參數我在實踐中似乎始終不起作用。

建立本地SSH隧道例子

在我們計劃建立一個本地SSH隧道之前,我們必須清楚下面這些數據:

1.中間服務器d的IP地址

2.要訪問服務器c的IP地址

3.要訪問服務器c的端口

現在,我們把上面這張圖變得具體一些,給這些機器加上IP地址。并且根據下面這張圖列出我們的計劃:

1.需要訪問234.234.234.234的FTP服務,也就是端口21

2.中間服務器是123.123.123.123

現在我們使用下面這條命令來達成我們的目的

1.ssh -N -f -L 2121:234.234.234.234:21 123.123.123.123

2.ftp localhost:2121 # 現在訪問本地2121端口,就能連接234.234.234.234的21端口了

這里我們用到了SSH客戶端的三個參數,下面我們一一做出解釋:

·-N告訴SSH客戶端,這個連接不需要執行任何命令。僅僅做端口轉發

·-f告訴SSH客戶端在后臺運行

·-L做本地映射端口,被冒號分割的三個部分含義分別是

·需要使用的本地端口號

·需要訪問的目標機器IP地址(IP:234.234.234.234)

·需要訪問的目標機器端口(端口:21)

·最后一個參數是我們用來建立隧道的中間機器的IP地址(IP: 123.123.123.123)

我們再重復一下-L參數的行為。-L X:Y:Z的含義是,將IP為Y的機器的Z端口通過中間服務器映射到本地機器的X端口。

在這條命令成功執行之后,我們已經具有繞過公司防火墻的能力,并且成功訪問到了我們喜歡的一個FTP服務器了。

如何建立遠程SSH隧道

通過建立本地SSH隧道,我們成功地繞過防火墻開始下載FTP上的資源了。那么當我們在家里的時候想要察看下載進度怎么辦呢?大多數公司的網絡是通過路由器接入互聯網的,公司內部的機器不會直接與互聯網連接,也就是不能通過互聯網直接訪問。通過線路D-B-A訪問公司里的機器a便是不可能的。也許你已經注意到了,雖然D-B-A這個方向的連接不通,但是A-B-D這個方向的連接是沒有問題的。那么,我們能否利用一條已經連接好的A-B-D方向的連接來完成D-B-A方向的訪問呢?答案是肯定的,這就是遠程SSH隧道的用途。

與本地SSH一樣,我們在建立遠程SSH隧道之前要清楚下面幾個參數:

·需要訪問內部機器的遠程機器的IP地址(這里是123.123.123.123)

·需要讓遠程機器能訪問的內部機器的IP地址(這里因為是想把本機映射出去,因此IP是127.0.0.1)

·需要讓遠程機器能訪問的內部機器的端口號(端口:22)

在清楚了上面的參數后,我們使用下面的命令來建立一個遠程SSH隧道

1.ssh -N -f -R 2222:127.0.0.1:22 123.123.123.123

現在,在IP是123.123.123.123的機器上我們用下面的命令就可以登陸公司的IP是192.168.0.100的機器了。

1.ssh -p 2222 localhost

-N,-f 這兩個參數我們已經在本地SSH隧道中介紹過了。我們現在重點說說參數-R。該參數的三個部分的含義分別是:

·遠程機器使用的端口(2222)

·需要映射的內部機器的IP地址(127.0.0.1)

·需要映射的內部機器的端口(22)

例如:-R X:Y:Z 就是把我們內部的Y機器的Z端口映射到遠程機器的X端口上。

建立SSH隧道的幾個技巧

自動重連

隧道可能因為某些原因斷開,例如:機器重啟,長時間沒有數據通信而被路由器切斷等等。因此我們可以用程序控制隧道的重新連接,例如一個簡單的循環或者使用 djb’s daemontools . 不管用哪種方法,重連時都應避免因輸入密碼而卡死程序。關于如何安全的避免輸入密碼的方法,請參考我的 如何實現安全的免密碼ssh登錄 。這里請注意,如果通過其他程序控制隧道連接,應當避免將SSH客戶端放到后臺執行,也就是去掉-f參數。

保持長時間連接

有些路由器會把長時間沒有通信的連接斷開。SSH客戶端的TCPKeepAlive選項可以避免這個問題的發生,默認情況下它是被開啟的。如果它被關閉了,可以在ssh的命令上加上-o TCPKeepAlive=yes來開啟。

另一種方法是,去掉-N參數,加入一個定期能產生輸出的命令。例如: top或者vmstat。下面給出一個這種方法的例子:

1.ssh -R 2222:localhost:22 123.123.123.123 "vmstat 30"

檢查隧道狀態

有些時候隧道會因為一些原因通信不暢而卡死,例如:由于傳輸數據量太大,被路由器帶入stalled狀態。這種時候,往往SSH客戶端并不退出,而是卡死在那里。一種應對方法是,使用SSH客戶端的ServerAliveInterval和ServerAliveCountMax選項。 ServerAliveInterval會在隧道無通信后的一段設置好的時間后發送一個請求給服務器要求服務器響應。如果服務器在 ServerAliveCountMax次請求后都沒能響應,那么SSH客戶端就自動斷開連接并退出,將控制權交給你的監控程序。這兩個選項的設置方法分別是在ssh時加入-o ServerAliveInterval=n和-o ServerAliveCountMax=m。其中n, m可以自行定義。

如何將端口綁定到外部地址上

使用上面的方法,映射的端口只能綁定在127.0.0.1這個接口上。也就是說,只能被本機自己訪問到。如何才能讓其他機器訪問這個端口呢?我們可以把這個映射的端口綁定在0.0.0.0的接口上,方法是加上參數-b 0.0.0.0。同時還需要打開SSH服務器端的一個選項-GatewayPorts。默認情況下它應當是被打開的。如果被關閉的話,可以在/etc /sshd_config中修改GatewayPorts no為GatewayPorts yes來打開它。

通過SSH隧道建立SOCKS服務器

如果我們需要借助一臺中間服務器訪問很多資源,一個個映射顯然不是高明的辦法(事實上,高明確實沒有用這個方法)。幸好,SSH客戶端為我們提供了通過SSH隧道建立SOCKS服務器的功能。

通過下面的命令我們可以建立一個通過123.123.123.123的SOCKS服務器。

1.ssh -N -f -D 1080 123.123.123 # 將端口綁定在127.0.0.1上

2.ssh -N -f -D 0.0.0.0:1080 123.123.123.123 # 將端口綁定在0.0.0.0上

通過SSH建立的SOCKS服務器使用的是SOCKS5協議,在為應用程序設置SOCKS代理的時候要特別注意。

責任編輯:藍雨淚 來源: 紅黑聯盟
相關推薦

2024-01-09 12:05:24

SSH協議端口

2022-02-17 13:46:15

SSH命令內網

2017-03-23 12:38:49

2017-10-10 12:40:13

SSHTCPOpenSSH

2019-10-29 16:30:10

FedoraSSH端口Linux

2022-09-19 13:11:56

命令SSH內網穿透

2019-04-22 14:44:16

內網穿透反向代理分離

2024-11-25 16:25:23

內網穿透網絡協議

2024-10-12 20:56:19

ProxyChain

2011-03-16 12:55:00

iptables 端口

2024-12-04 08:01:42

傳統進程端口內網域名

2017-03-13 14:34:53

2011-03-17 14:26:45

iptables 端口

2019-02-28 08:44:19

內網釘釘Web

2020-09-03 08:03:52

內網穿透

2021-11-02 10:40:51

內網穿透代理工具Linux

2021-10-27 20:40:24

辦公

2015-05-28 10:25:17

QQ通信

2023-10-26 14:23:26

2023-09-13 12:34:23

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕99| 一区| 亚洲精品久久久久久久久久久久久 | 男女精品网站 | 久久久国产一区二区 | 人干人操 | 亚洲综合久久网 | 亚洲高清在线观看 | 国产男女视频 | 综合久久av| 亚洲视频二区 | 日韩精品久久一区二区三区 | 日韩欧美一区二区三区在线播放 | 国产午夜精品一区二区三区嫩草 | 欧美极品在线观看 | 国产情品| 日韩午夜一区二区三区 | 99亚洲综合 | 亚洲成年影院 | 91精品久久久久久久久久入口 | 久久99精品久久久久久国产越南 | 免费观看一级特黄欧美大片 | 国产在线一区观看 | 激情欧美一区二区三区 | 国产精品一区二区欧美 | 国产一区二区自拍 | 久久精品久久综合 | 国产精品免费高清 | 免费国产视频 | 欧美一级观看 | 国产一区二区三区欧美 | 一级黄色片一级黄色片 | 国产1区2区3区 | 免费一级毛片 | 亚洲成人精品在线 | 国产在线精品一区二区 | 九九久久国产 | av网站在线播放 | 欧美久久久久久 | 成人网在线 | 亚洲精品一二三区 |