SSH端口转发笔记(ipv6 与 端口映射)

2015-12-28 08:00  阅读 1,495 views 次

SSH端口转发笔记(ipv6 与 端口映射)

SSH端口转发笔记(ipv6 与 端口映射)

端口转发概念

端口转发或隧道,是一种通过SSH转发本来不安全的TCP通信的安全保护罩。您可以保护例如POP3,SMTP和HTTP连接,否则可能是不安全的。网络上什么人都有!

有两种类型的端口转发:本地和远程转发。它们也分别被称作传出和传入隧道。

本地端口转发转发流量来本地端口到指定的远程端口。例如,所有流向客户机端口1234的流量可能被转发到服务器(主机)端口23上。

注:localhost的值是在ssh连接建立之后才确定——所以本地端口转发(传出隧道)时,localhost指您所连接的服务器(远程主机的电脑)。

远程端口转发则正好相反:其转发流向远程端口的流量到指定的本地端口。例如,所有的流量流向服务器(主机)上的1234端口可以被转发到客户端(本地主机)的端口23上。

端口转发实现

ssh的三个强大的端口转发命令:

转发到远端:ssh -C -f -N -g -L 本地端口:目标IP:目标端口 用户名@目标IP

转发到本地:ssh -C -f -N -g –R 本地端口:目标IP:目标端口 用户名@目标IP

动态转发:ssh -C -f -N -g -D listen_port user@Tunnel_Host

-C:压缩数据传输。

-f :后台认证用户/密码,通常和-N连用,不用登录到远程主机。

-N :不执行脚本或命令,通常与-f连用。

-g :在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。

-L 本地端口:目标IP:目标端口: 将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-R 本地端口:目标IP:目标端口: 将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-p :被登录的ssd服务器的sshd服务端口。

-D port: 指定一个本地机器 “动态的’’ 应用程序端口转发. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接. 目前支持 SOCKS4 协议, 将充当 SOCKS4 服务器. 只有 root 才能转发特权端口. 可以在配置文件中指定动态端口的转发.

应用举例

1.将发往本机的80端口访问转发到174.139.9.66的8080端口

ssh -C -f -N -g -L 80:174.139.9.66:8080 master@174.139.9.66

2.将发往174.139.9.66的8080访问转发到本机的80端口

ssh -C -f -N -g -R 80:174.139.9.66:8080 master@174.139.9.66

任何人在你的本地子网中应该能够这样做是为了连接到本机的工作:

$ ssh root@192.168.10.10 -p 10000

补充

远程端口转发可以让任何人使用

如果你想让每个在子网的人都能够SSH到自己家里的电脑,没有-g选项可以让远程端口转发能够让其他人使用,所以你需要改变远程主机的SSH配置,编辑/etc/ssh/sshd_config 增加以下这行:

GatewayPorts yes

就像以前一样连接:

home $ SSH user@work.example.org -R 10000:192.168.1.10:22

现在,它是监听的服务器在工作的所有接口:

现在任何人可以通过服务器连接到自己家里的电脑:

ipv6 示例

基本上与ipv4相同,只是因为ipv6地址的形式中有冒号,所以为了清晰,需要在ipv6地址两端加[] 例如:

注意

  • 如果你想映射的端口<1024,您将需要root身份。
  • 不要忘记,如果需要对端口进行映射,需要在相应防火墙中打开所需的端口。
  • 然而,转发的端口只能运行TCP协议,但有另一种方法,通过SSH使用netcat可以用来转发UDP协议的内容。
打赏作者
如果你觉得这篇文章对你有帮助,半年内收入涨幅大于20%,可以考虑请博主喝一杯咖啡^_^

您的支持将鼓励我们继续创作!

[微信] 扫描二维码打赏

[支付宝] 扫描二维码打赏

本文地址:https://www.simongong.net/ssh-e7-ab-af-e5-8f-a3-e8-bd-ac-e5-8f-91-e7-ac-94-e8-ae-b0ipv6-e4-b8-8e-e7-ab-af-e5-8f-a3-e6-98-a0-e5-b0-84/
版权声明:本文为原创文章,版权归 西蒙宫 所有,欢迎分享本文,转载请保留出处!

发表评论


表情