ssh的高级应用本地端口转发
Posted 王华_linux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssh的高级应用本地端口转发相关的知识,希望对你有一定的参考价值。
1. SSH 本地端口转发
SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是,SSH 还能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程也被叫做“隧道”(tunneling),这是因为 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些 TCP 应用均能够从中得益,避免了用户名,密M以及隐私信息的明文传输。而与此同时,如果工作环境中的防火墙限制了一些网络端口的使用,但是允许 SSH 的连接,也能够通过将 TCP 端口转发来使用 SSH 进行通讯
SSH 端口转发能够提供两大功能:
加密 SSH Client 端至 SSH Server 端之间的通讯数据
突破防火墙的限制完成一些之前无法建立的 TCP 连接
SSH本地端口转发
ssh -L localport:remotehost:remotehostport sshserver
选项:
-f 后台启用
-N 不打开远程shell,处于等待状态
-g 启用网关功能
ssh –L 9527:telnetsrv:23 -Nfg sshsrv
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:remotehostport sshserver
#让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动态端口转发
ssh -D 1080 root@sshserver -fNg
curl --socks5 127.0.0.1:1080 http://www.google.com
动态端口转发实现科学上网方式1
[root@centos8 ~]#ssh -fND 9527 10.0.0.18
以上是关于ssh的高级应用本地端口转发的主要内容,如果未能解决你的问题,请参考以下文章