通过自己的 Linux(IPv6 连接)服务器建立 IPv6 隧道

通过自己的 Linux(IPv6 连接)服务器建立 IPv6 隧道

不幸的是,有很多 IPv6 隧道代理,他们的文档经常会使如何设置您自己的 IPv6 隧道的搜索结果变得混乱。

我有一台具有 IPv6 连接的 Linux 服务器。我想为我的 Windows 7 x64 计算机建立自己的隧道(尽可能通过 SSH SOCKS 或类似方式,非常安全),以便用于所有 IPv6 用途,同时使用我自己的 ISP 提供的 IPv4 地址用于其他所有用途。

如何进行此项设置?

这和我发布的内容非常相似这里,但我非常感激 Windows 级别或 Chrome 级别的解决方案。

答案1

创建 6in4 网关:

注(2015 年 2 月 25 日):我正在审查这些说明,并且我认为您可以跳过addr addroute del步骤,但我还不太确定。需要测试。

  1. 创建 IPv6 隧道接口:

    # ip tunnel add tun6in4 mode sit local <gwaddr> remote any
    # ip link set tun6in4 up
    

    <gwaddr>您的服务器的公共 IPv4 地址在哪里;

  2. 将新子网的 IPv6 地址分配给隧道:

    # ip addr add 2001:db8:e3af:666::1/64 dev tun6in4
    
  3. 将子网路由到您自己的 IP 地址,首先删除自动路由:

    # ip route del 2001:db8:e3af:666::/64 dev tun6in4
    # ip route add 2001:db8:e3af:666::/64 via ::78.260.211.195 dev tun6in4
    
  4. 启用 IPv6 转发:

    # echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
    

客户端

在您的 PC 上,按照标准 6in4 隧道说明进行操作,为自己分配一个与上述位于同一子网的地址。

  1. 添加隧道:

    C:\> netsh
    netsh> int ipv6
    netsh interface ipv6> add v6v4tunnel Myserver <locaddr> <gwaddr>
    

    其中,<gwaddr>是网关服务器的 IPv4 地址,<locaddr>是 PC 网络接口的本地地址(不一定是公共地址)。

    如果你有電視在网关上设置后,您还可以附加enable以通过隧道启用 IPv6 自动配置。

  2. 对于手动配置,添加地址...

    netsh interface ipv6> add addr Myserver 2001:db8:e3af:666::2
    

    和一条路线:

    netsh interface ipv6> add route ::/0 Myserver
    netsh interface ipv6> show route
    
  3. 如果您希望 Windows 向您的 LAN 通告 IPv6 连接(例如電視在 Linux 上,您也可以这么做。

    netsh interface ipv6> add route 2001:db8:e3af:666::/64 eth0 pub=yes
    netsh interface ipv6> set route ::/0 Myserver pub=yes
    netsh interface ipv6> show route
    
    netsh interface ipv6> set interface eth0 forward=enable advertise=enable
    netsh interface ipv6> show interface eth0
    

    eth0用您的 LAN 接口的名称或数字索引替换– 可能"Local Area Connection"...我已重命名它以节省输入。


仅保护 IPv6 隧道是没有意义的,因为 1)网关和目的地之间的流量无论如何都是公开的,2)你永远不知道连接是普通 IPv4 还是“安全”的 IPv6

但是,您可以尝试在两台计算机之间设置 IPsec 来保护 6in4 流量,或者创建合适的 VPN,例如 OpenVPN 或 L2TP/IPsec。

相关内容