ssh 反向代理 外網訪問內網

jopen 9年前發布 | 60K 次閱讀 網絡技術 SSH

先明確一下概念

  外網是有固定ip的機器,ssh可以之間連接上;

  內網是類似公司局域網之類,有獨立ip但是不能ssh,需要管理員做端口轉發等等權限性操作才可以。


文中用內網表示需要被訪問的局域網內電腦,用外網表示局域網外電腦。


# 一、首先,查看外網現有的ssh端口開放情況。

[zhipeng@zhangzhipeng2023.cn ~]$sudo netstat -anopl | grep ssh

[sudo] password for zhipeng:

tcp     0    0 0.0.0.0:22        0.0.0.0:*        LISTEN    22645/sshd      off (0.00/0/0)


-------------------------------------------------------------------


內網ssh連接外網:

ssh -C -R (vpsPort ):(vpsHostname ): (mySSHPort )-p(vpsSSHPort )(vpsUser )@(vpsIP 

參數說明: 

-C 數據壓縮;

-R vpsPort 要綁定的外網端口;

vpsHostname 給外網設置主機名;

mySSHPort 內網ssh服務的端口。

-p vpsSSHPort 外網ssh服務端口

vpsUser 外網用戶名

vpsIP 外網用戶名
</div>


neiwang@ZHIPENG-PC ~ $ ssh -C -R 3345:localhost:22 -p 22 zhipeng@VPSIP


Last login: Tue Jun  9 13:12:51 2015 from NeiWangIP

Welcome to WaiWang Compute Service!

# OK,成功登陸到外網服務器上


# 二、現在再查看一下外網的SSH端口狀態

可以看到,外網已經在監聽3344端口,并且和內網電腦建立了ssh連接

[zhipeng@zhangzhipeng2023.cn ~]$sudo netstat -anopl | grep ssh

[sudo] password for zhipeng:

tcp     0    0 127.0.0.1:3345      0.0.0.0:*        LISTEN    22799/sshd: zhipeng  off (0.00/0/0)

tcp     0    0 0.0.0.0:22        0.0.0.0:*        LISTEN    22645/sshd      off (0.00/0/0)

tcp     0   36 VPSIP:22    NeiWangIP:11694    ESTABLISHED 22796/sshd: zhipeng  on (0.38/0/0)


</div>


# 三、 接著,試一下從外網ssh內網

$ssh -C  -N -D(vpsPort ) -p(mySSHPort ) (myHostname )@(vpsHostname 

參數我就不解釋了,看名字和第一步對比就知道了 myName是內網用戶名

我這里加-f -N 是會報錯的,如下:

[zhipeng@zhangzhipeng2023.cn ~]$ssh -C  -f -N -D 3345 -p 3345 neiwang@localhost

The authenticity of host '[localhost]:3345 ([127.0.0.1]:3345)' can't be established.

ECDSA key fingerprint is 93:e8:a5:fa:1a:3e:0e:19:6e:c3:28:af:f7:9d:15:3c.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '[localhost]:3345' (ECDSA) to the list of known hosts.

neiwang@localhost's password:

bind: Cannot assign requested address

channel_setup_fwd_listener: cannot listen to port: 3345

Could not request local forwarding.
</div>


[zhipeng@zhangzhipeng2023.cn ~]$sudo ssh -C -D 3345 -p 3345 neiwang@localhost

neiwang@localhost's password: #輸入內網密碼

bind: Cannot assign requested address

channel_setup_fwd_listener: cannot listen to port: 3345

Could not request local forwarding.

Last login: Tue Jun  9 13:18:53 2015 from 127.0.0.1
</div>


[2015-06-09 13:21.51]  ~

[neiwang.neiwang-PC] 0bB logout

Connection to localhost closed.
</div> </div>


ssh反向代理大功告成。


題外話,也不能全算題外話,很重要的

0、安全問題,慎用。

1、別忘了打開內網的sshd服務

2、外網iptables記得打開端口(防火墻)

3、如果內網電腦是windows,記得關閉防火墻,或者設置好端口訪問,不然ssh 22端口會訪問異常無法連接。
</div> 來自:http://blog.sina.com.cn/s/blog_83dc494d0102vph3.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!