FreeBSD 11设置Tunnelbroker IPv6隧道

最近把热备的vps迁移到了阿里云国际版$4.5刀上面. 由于阿里云本身不支持原生IPv6, 只能使用tunnelbroker提供的隧道来实现IPv6的支持. FreeBSD 11的API和之前版本有一些不同,因此写一篇blog来记录官方推荐的IPv6隧道的配置.

 

以下为tunnelbroker的信息页

请在/etc/rc.conf最后加入下列配置, 请根据自己的IPv6信息修改配置.

# IPv6 Tunnel Client
ipv6_activate_all_interfaces="YES"
ifconfig_vtnet0_ipv6="inet6 IPv6地址 prefixlen 64"
cloned_interfaces="gif0"
ifconfig_gif0="tunnel 本机IP 隧道服务器IPv4地址"
ifconfig_gif0_ipv6="inet6 IPv6地址 IPv6网关IP prefixlen 128 mtu 1480"
ipv6_defaultrouter="-iface gif0"

重启网络和路由

service netif restart && service routing restart

现在你的IPv6地址应该就可以使用了.

Linux下创建Patch的方法

当在Linux下修改了某个文件(夹)之后,如果需要把修改的部分分享出去,可以使用diff命令来创建patch(补丁)文件.

在使用diff命令创建patch之前,我们需要修改之前的原始文件,和修改过的新文件.

当为一个文件创建patch的时候可以使用以下代码:
diff -Naru file_orig.c file_updated.c > file.patch

其中

  • -N 将缺失文件视为空
  • -a 将所有文件视为文本文件
  • -r 递归比较所有子文件夹
  • -u 输出行数(默认 3)行

 

当需要为整个文件夹创建patch的时候可以使用以下代码:
diff -crB dir_orig dir > dfile.patch

其中

  • -c 输出行数(默认 3)行
  • -r 递归比较所有子文件夹
  • -B 忽略连续的换行符

当你需要应用这个patch的时候可以运行
patch -p1 --dry-run < file.patch
其中参数-p[n]中的n值为需要跳过的目录数.

以/usr/src/linux为例:

若-p0就是不跳过任何目录,

-p1将跳过/,得到usr/src/linux,

-p2将跳过/usr,得到src/linux

绝大多数情况下这个值应该为1.

 

删除–dry-run当你满意输出到屏幕上的结果.