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

Mic*_* H. 7 windows linux proxy ipv6 ipv4

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

我有一台具有 IPv6 连接的 Linux 服务器。我想为我的 Windows 7 x64 计算机创建我自己的隧道(非常安全,通过 SSH SOCKS 或类似的,如果可能)用于所有 IPv6 目的,同时将我自己的 ISP 给定的 IPv4 地址用于其他所有目的。

怎么设置呢?

这与我在此处发布的内容非常相似,但我非常感谢 Windows 级别或 Chrome 级别的解决方案。

use*_*686 9

创建6in4网关:

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

  1. 创建 IPv6 隧道接口:

    # ip tunnel add tun6in4 mode sit local <gwaddr> remote any
    # ip link set tun6in4 up
    
    Run Code Online (Sandbox Code Playgroud)

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

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

    # ip addr add 2001:db8:e3af:666::1/64 dev tun6in4
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)
  4. 启用 IPv6 转发:

    # echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
    
    Run Code Online (Sandbox Code Playgroud)

客户端

在您的 PC 上,按照标准的 6in4 隧道指令,为自己分配一个来自上述相同子网的地址。

  1. 添加隧道:

    C:\> netsh
    netsh> int ipv6
    netsh interface ipv6> add v6v4tunnel Myserver <locaddr> <gwaddr>
    
    Run Code Online (Sandbox Code Playgroud)

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

    如果您在网关上设置了radvd,您还可以附加enable以通过隧道启用 IPv6 自动配置。

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

    netsh interface ipv6> add addr Myserver 2001:db8:e3af:666::2
    
    Run Code Online (Sandbox Code Playgroud)

    和路线:

    netsh interface ipv6> add route ::/0 Myserver
    netsh interface ipv6> show route
    
    Run Code Online (Sandbox Code Playgroud)
  3. 如果您希望 Windows 将 IPv6 连接通告到您的 LAN(如Linux 上的radvd),您也可以这样做。

    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
    
    Run Code Online (Sandbox Code Playgroud)

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


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

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