IPv6 隧道代理设置
Hurricane Electric 提供免费的 隧道代理 服务,如果您希望为仅支持 IPv4 的主机添加 IPv6 连接,则在 Arch 下使用该服务相对容易。请阅读他们 FAQ 中 “Tunnel Broker” 部分,以获取先决条件列表。
注册隧道
这并不难。如果填写这里的说明有困难,请随时填写,否则只需访问隧道代理站点并完成注册即可。
设置 Hurricane Electric 隧道
创建以下 systemd 单元,将粗体文本替换为您从 Hurricane Electric 获取的 IP 地址
注意: 如果您位于 NAT 之后(典型的家庭路由器设置),请使用您的本地 IPv4 地址作为
client_IPv4_address
,例如 192.168.0.2
。/etc/systemd/system/he-ipv6.service
[Unit] Description=he.net IPv6 tunnel After=network.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/ip tunnel add he-ipv6 mode sit remote server_IPv4_address local client_IPv4_address ttl 255 ExecStart=/usr/bin/ip link set he-ipv6 up mtu 1480 ExecStart=/usr/bin/ip addr add client_IPv6_address dev he-ipv6 ExecStart=/usr/bin/ip -6 route add ::/0 dev he-ipv6 ExecStop=/usr/bin/ip -6 route del ::/0 dev he-ipv6 ExecStop=/usr/bin/ip link set he-ipv6 down ExecStop=/usr/bin/ip tunnel del he-ipv6 [Install] WantedBy=multi-user.target
然后启动/启用 he-ipv6.service
。
systemd-networkd
如果 systemd-networkd 处理您的网络连接,那么最好也让它处理隧道代理(而不是使用 .service 文件)。
/etc/systemd/network/he-tunnel.netdev
[Match] [NetDev] Name=he-ipv6 Kind=sit MTUBytes=1480 [Tunnel] # IPv6 Tunnel Endpoints|Server IPv4 Address Remote=216.66.80.30 # Local IPv4 | NAT-Address Local=192.168.0.2 TTL=255
/etc/systemd/network/he-tunnel.network
[Match] Name=he-ipv6 [Network] # IPv6 Tunnel Endpoints|Client IPv6 Address>/64 Address=2001:470:NNNN:NNNN::2/64 # IPv6 Tunnel Endpoints|Server IPv6 Address Gateway=2001:470:NNNN:NNNN::1 DNS=2001:4860:4860::8888 DNS=2001:4860:4860::8844 [Route] # IPv6 Tunnel Endpoints|Server IPv6 Address Gateway=2001:470:NNNN:NNNN::1 Destination=::/0 [RoutingPolicyRule] # IPv6 Tunnel Endpoints|Client IPv6 Address>/64 From=2001:470:NNNN:NNNN::2/64 [RoutingPolicyRule] # Routed IPv6 Prefixes|Routed 64>/64 - OR - Routed IPv6 Prefixes|Routed 48>/48 From=2001:470:NNNN::/48
并且,将此行添加到您的默认互联网连接 .network 文件的 [Network]
部分
/etc/systemd/network/DEVICE.network
Tunnel=he-ipv6
使用动态 IPv4 IP 进行隧道传输
通过 cron 任务更新
使用动态 IPv4 IP 进行隧道传输的最简单方法是设置一个 cron 任务,该任务将定期更新您当前的地址。示例 URL 和更新密钥可以在隧道详情页面的高级选项卡中找到。
要检查更新是否有效,请运行以下命令(将 USERNAME
、UPDATEKEY
和 TUNNELID
替换为您的帐户和隧道的详细信息)
$ wget -O - https://USERNAME:UPDATEKEY@ipv4.tunnelbroker.net/nic/update?hostname=TUNNELID
如果它有效,请通过打开 crontab -e
并添加新行来创建 cron 任务
*/10 * * * * wget -q -O /dev/null https://USERNAME:UPDATEKEY@ipv4.tunnelbroker.net/nic/update?hostname=TUNNELID
通过 ddclient 更新
或者,可以通过安装 ddclient 并配置 /etc/ddclient.conf
来配置此项
protocol=dyndns2 use=web web=checkip.dns.he.net server=ipv4.tunnelbroker.net ssl=yes login=USERNAME password=UPDATEKEY TUNNELID
最后启动/启用 ddclient.service
。