linux远程ipv6端口,SSH端口转发笔记(ipv6 与 端口映射)

91d3f65df380a0a4115651e9000992a1.gif

91d3f65df380a0a4115651e9000992a1.gif

端口转发概念

端口转发或隧道,是一种通过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

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

work.example.org$ netstat -tunelp | grep 10000

tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 0 73721060 4426/1

1

2

3

4

work.example.org$netstat-tunelp|grep10000

tcp000.0.0.0:100000.0.0.0:*LISTEN0737210604426/1

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

anyone.example.org $ SSH anyone@work.example.org -p 10000

1

2

anyone.example.org$SSHanyone@work.example.org-p10000

ipv6 示例

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

ssh -g -L 8922:[2001:...:...:...:...:...:fe23:93e4]:22 id@2001:...:...:...:...:...:...:93e4

1

2

ssh-g-L8922:[2001:...:...:...:...:...:fe23:93e4]:22id@2001:...:...:...:...:...:...:93e4

注意

如果你想映射的端口<1024,您将需要root身份。

不要忘记,如果需要对端口进行映射,需要在相应防火墙中打开所需的端口。

然而,转发的端口只能运行TCP协议,但有另一种方法,通过SSH使用netcat可以用来转发UDP协议的内容。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IPv4是当前使用最广泛的互联网协议版本,但是由于IPv4地址资源有限,不足以满足日益增长的互联网用户需求,因此IPv6作为下一代互联网协议被广泛推广。IPv6与IPv4不兼容,所以在将IPv6网络与IPv4网络连接时,需要通过端口映射来实现。 IPv6到IPv4的端口映射主要有两种方式,一种是通过NAT64实现,另一种是通过代理服务器实现。NAT64是一种网络地址转换技术,将IPv6网络的数据包转换为IPv4网络的数据包。在这种情况下,IPv6地址被映射到IPv4地址,IPv6端口则被映射到IPv4端口。当从IPv6网络发送数据包到IPv4网络时,NAT64将根据预设的映射规则进行数据包的转换与转发,确保数据包能够顺利到达IPv4网络。 另一种方式是通过代理服务器实现IPv6到IPv4的端口映射。代理服务器作为一个中转站,接收来自IPv6网络的数据包,并将其转发到IPv4网络。在这种情况下,IPv6地址和端口信息被代理服务器用IPv4地址和端口来代替,并通过代理服务器与IPv4网络进行数据交互。 不论是通过NAT64还是代理服务器,IPv6到IPv4的端口映射都是为了实现IPv6网络与IPv4网络的互通。通过端口映射IPv6用户可以访问IPv4资源,同时IPv4用户也可以访问IPv6资源,实现互联网的无缝连接。,从而更好地满足了互联网用户的需求。随着IPv6的推广和普及,IPv6到IPv4的端口映射技术将会越来越重要和广泛应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值