[SSH服务]——SSH端口转发

实验拓扑图

实验描述

假设有三台主机A、B、C。B和A、C可以连通,AC两台主机不能连通。

这时候可以用本地端口转发,来实现A和C通过B来连通。

实验中,为了构造上述环境,我们使用三台虚拟机,其网络环境设置如拓扑图所示:

(1) 主机A :eth1(172.16.10.1/24)

(2) 主机B: eth0(172.16.10.3/24)     eth1(172.16.20.1/24)

(3) 主机C: eth0(172.16.20.1/24)

实验与验证

1. 确保B和A、C的连通,A、C不能连通(符合实验环境)

2. 在A、B的ssh配置文件/etc/ssh/sshd_config中开启允许转发的选项,并重启ssh服务

# vim /etc/ssh/sshd_config
   GatewayPorts        yes
   AllowTcpForwarding  yes
# service sshd restart

3. 在主机C安装httpd并启动http服务,为了更好的验证我们在主机C的站点主目录下写一个“小文件”

# yum install httpd -y
# vim /var/www/html/index.html
  hello,I‘m 172.16.20.2
# service httpd start

4. 在主机A上执行命令:

# ssh -l  root  -L 172.16.10.1:59000:172.16.20.2:80  172.16.10.3

参数-L后面总共有四个用冒号分割的值,分别是 ‘本地地址:本地端口:目标主机:目标主机端口‘

这条命令的意思是:

指定SSH绑定本地主机A(172.16.10.1)的59000端口,转发到目标主机C(172.16.20.2)的80端口。并指定由主机B(192.16.10.3)来转发。

执行结果:

5. (注意不要退出上一步骤的命令)在A新打开一个终端(Ctrl+Alt+F2)来验证就好,执行命令:

# curl  http://172.16.10.1:59000

执行结果:

这说明:

      我们连接了本地主机A的59000端口,就等于连上了主机C 172.16.20.2的80端口。



补充

1. 本实验参考了文章:http://my.oschina.net/guol/blog/115235

2. 实验过程中要注意防火墙的设置,最好 # iptables -F 清除一下防火墙规则

时间: 2024-10-08 12:28:27

[SSH服务]——SSH端口转发的相关文章

SSH隧道技术----端口转发,socket代理

本文大部分参考引用加copy:http://blog.chinaunix.net/uid-20761674-id-74962.html 本文的受众 如果你遇到了以下问题,那么你应该阅读这篇文章 我听说过这种技术,我对它很感兴趣 我想在家里访问我在公司的机器(写程序,查数据,下电影). 公司为了防止我们用XX软件封锁了它的端口或者服务器地址. 公司不让我们上XX网站,限制了网址甚至IP. 公司不让我们看关于XX的信息,甚至花血本买了XX设备,能够对内容进行过滤.一看XX内容,链接就中断了. 我爸是

流量操控之SSH隧道与端口转发

目  录 第1章            概述... 3 1.1.         实现命令... 3 1.2.         SSH隧道类型... 3 第2章            SSH隧道... 4 2.1.         动态映射(Socks代理)... 4 2.1.1.   命令... 4 2.1.2.   相关参数说明... 4 2.1.3.   意义... 4 2.1.4.   运用场景... 4 2.1.5.   优点... 6 2.1.6.   缺点... 6 2.2.   

SSH隧道tunneling端口转发

SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据.但是,SSH 还能够将其他 TCP 端口的网络数据通过SSH 链接来转发,并且自动提供了相应的加密及解密服务.这一过程也被叫做"隧道"(tunneling),这是因为 SSH 为其他TCP 链接提供了一个安全的通道来进行传输而得名. 例如,Telnet,SMTP,LDAP 这些 TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输.而与此同时,如果工作环境中的防火墙限制了一些网络端口的使用,但是允许 S

ssh配置及端口转发

生成密钥 默认密钥 ssh-keygen -t rsa -C [email protected] 生成自定义文件名密钥 ssh-keygen -t rsa -f ~/.ssh/id_rsa_github -C [email protected] 多密钥配置 添加文件~/.ssh/config,内容如下 Host test-github #网站本地别称,建议设置成网站域名,该行不要直接复制,具体见下文 Hostname github.com #网站实际地址 IdentityFile ~/.ssh/

使用 SSH 隧道实现端口转发、SOCKS 代理

SSH隧道 本地端口转发 本地客户端通过 local_port 连接到 MobaXterm: MobaXterm 绕过防火墙,使用 user 用户连接到 ssh_server_ip:ssh_server_port 的 SSH 服务器: SSH 服务器连接到 romote_ip:romote_port 的远程服务器. ssh -N -f -L local_port:romote_ip:romote_port [email protected]_server_ip:ssh_server_port -

SSH 内网端口转发实战

导读 大家都知道SSH是一种安全的传输协议,用在连接服务器上比较多.不过其实除了这个功能,它的隧道转发功能更是吸引人. 如果两个内网之间的linux服务器需要互相登录,或需要互相访问内网某个端口,担忧没有公网IP,可以使用的方法有ngrok(https://ngrok.com/),但并不方便,我们只需两条 SSH 命令即可. 先给出本文主角,两条SSH命令: 远程端口转发(由远程服务器某个端口转发到本地内网服务器端口) ssh   -CfNg  -R(命令行的关键)   2222(远程服务器端口

ssh验证和端口转发

ssh 服务登录验证 ssh 服务登录验证方式: 用户/ 口令 基于密钥 基于用户和口令登录验证 客户端发起ssh请求,服务器会把自己的公钥发送给用户 用户会根据服务器发来的公钥对密码进行加密 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功 基于用户名口令登录验证 基于密钥的登录方式 1.首先在客户端生成一对密钥(ssh-keygen) 2.并将客户端的公钥ssh-copy-id拷贝到服务端 3. 当客户端再次发送一个连接请求,包括ip .用户名 4. 服务端得到

添加或修改ssh服务的端口

通常ssh远程登录的默认端口是22,这个端口一般是可以更改或者添加的,配置文件位置在:/etc/ssh/sshd_config通过编辑文件可以修改sshd服务的相关配置,以下新增端口2223,即除了22端口可以登录服务器外2223也可以登录 执行命令 vim /etc/ssh/sshd_config 编辑配置文件 可以看到默认端口是22并且注释,然后去掉注释并且新增一行 Port 2223 然后保存并退出 现在重启ssh服务: systemctl restart sshd.service 重启之

ssh强大的端口转发功能

ssh 最普通的用法便是通过 ssh 远程登录 linux 服务器,或是远程执行命令,但是,ssh 的用法不光局限于此,它的端口转发功能才是高级的用法.ssh的远程登录以及远程执行命令就不记录了,主要记录一下 ssh 在不同地方的端口转发. 这是ssh的参数解释相关参数的解释: -f Fork into background after authentication. 后台认证用户/密码,通常和-N连用,不用登录到远程主机. -L port:host:hostport 将本地机(客户机)的某个端