linux – TCP / IPv6通过ssh隧道

我想知道如何通过ssh / ipv4隧道(ptp连接)隧道传输tcp / ipv6流量.可能吗?我怎样才能实现这一目标?

解决方法

是的,这是可能的并且不是太困难,但解决方案非常不理想,因为SSH在TCP上运行并且具有合理的开销.

服务器必须在其配置文件sshd_config中:

PermitTunnel point-to-point

然后,您需要在两台计算机上都是root用户.您使用以下命令连接到服务器:

ssh -w any root@server

连接后,使用两个系统中的命令ip link来了解在每个系统中创建的tunN设备,并在以下命令中使用它.请注意,我使用的是示例站点本地地址,这些地址已过时,但对此介绍没有问题.

在服务器上:

server# ip link set tun0 up
server# ip addr add fec0:1::1/112 dev tun0

在客户端:

client# ip link set tun0 up
client# ip addr add fec0:1::2/112 dev tun0

如果没有防火墙规则阻止,这足以让您通过隧道ping另一端.下一步是在隧道上设置路由(不要忘记net.ipv6.conf.default.forwarding = 1),然后调整链路MTU以获得最佳性能.

server# sysctl net.ipv6.conf.all.forwarding=1

client# ip -6 route add default via fec0:1::1

这将允许您的客户端ping服务器有权访问的其他网络,因为目标具有返回到远程客户端的路由.

您还必须修复链接MTU,以便客户端不会发送服务器无法向前传输的数据包.这取决于服务器本身的IPv6链路的MTU.不要依赖路径MTU发现,因为它无法在SSH隧道上正常工作.如果有疑问,请从较低的MTU值开始,如1280(IPv6允许的最小MTU).

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...