ssh的高级应用本地端口转发

满堂花醉三千客,一剑霜寒十四州。这篇文章主要讲述ssh的高级应用本地端口转发相关的知识,希望能为你提供帮助。
1. SSH 本地端口转发SSH 会自动加密和解密所有  SSH 客户端与服务端之间的网络数据。但是,SSH 还能够将其他  TCP 端口的网络数据通过  SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程也被叫做“隧道”(tunneling),这是因为  SSH 为其他  TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些  TCP 应用均能够从中得益,避免了用户名,密M以及隐私信息的明文传输。而与此同时,如果工作环境中的防火墙限制了一些网络端口的使用,但是允许  SSH 的连接,也能够通过将  TCP 端口转发来使用  SSH 进行通讯
SSH 端口转发能够提供两大功能:
【ssh的高级应用本地端口转发】加密  SSH Client 端至  SSH Server 端之间的通讯数据
  突破防火墙的限制完成一些之前无法建立的 TCP  连接
SSH本地端口转发

ssh -L localport:remotehost:remotehostportsshserver




选项:
-f 后台启用
-N 不打开远程shell,处于等待状态
-g 启用网关功能
#当访问本机的9527的端口时,被加密后转发到sshsrv的ssh服务,再解密被转发到telnetsrv:23 #data< --> localhost:9527 < --> localhost:XXXXX< --> sshsrv:22< --> sshsrv:YYYYY< -- > telnetsrv:23

ssh –L9527:telnetsrv:23 -Nfgsshsrv

telnet 127.0.0.1 9527






[root@centos8 ~]#ssh -fNL 9527:10.0.0.28:80 10.0.0.18
[root@centos8 ~]#curl 127.0.0.1:9527






2. SSH 远程端口转发
ssh -R sshserverport:remotehost:remotehostportsshserver



#让sshsrv侦听9527端口的访问,如有访问,就加密后通过ssh服务转发请求到本机ssh客户端,再由本机解密后转发到telnetsrv:23
#Data< --> sshsrv:9527< --> sshsrv:22< --> localhost:XXXXX< --> localhost:YYYYY< -- > telnetsrv:23
ssh –R 9527:telnetsrv:23 –Nf sshsrv
远程端口转发并实现网关功能
?
[root@lan-server ~]#yum -y install httpd; systemctl start httpd; echo website On 10.0.0.28 > /var/www/html/index.html

root@ssh-server ~]#vim /etc/ssh/sshd_config

GatewayPorts yes

root@ssh-server ~]#systemctl restart sshd

[root@ssh-client ~]#ssh -fNgR 9527:10.0.0.28:80 10.0.0.8 root@10.0.0.8s password:

[root@centos6 ~]#curl 10.0.0.8:9527

website On 10.0.0.28

[root@centos7 ~]#curl 10.0.0.8:9527

website On 10.0.0.28



3.   SSH动态端口转发
#当用firefox访问internet时,本机的1080端口做为代理服务器,firefox的访问请求被转发到sshserver上,由sshserver替之访问internet

ssh -D 1080 root@sshserver-fNg

#在本机firefox设置代理socket proxy:127.0.0.1:1080

curl--socks5 127.0.0.1:1080 http://www.google.com



动态端口转发实现科学上网方式1

[root@centos8 ~]#ssh -fND 9527 10.0.0.18






    推荐阅读