nfs 支持ipv6

匿名 (未验证) 提交于 2019-12-02 23:57:01

项目在docker里mount 一个nfs来读写,而现在需要支持ipv6,所以先写了各小demo,最后成功mount,这里记录一下

#include <sys/mount.h> #include <errno.h> #include <stdio.h>  int main(){ const char* src = "[2001:db8:1::1]:/root/nfsshare/zone1"; const char* opt = "addr=2001:db8:1::1,clientaddr=2001:db8:1::242:ac11:3"; const char* des = "/mnt";  int ret = mount(src,des,"nfs4",0,opt);  if(ret != 0){     perror("mount"); }  }

说明:

  • addr=2001:db8:1::1 是服务端地址
  • clientaddr=2001:db8:1::242:ac11:3 是客户端地址
  1. 先确保了网络连通,这里的server 地址实际是在主机中看到的docker0的地址,nfs server监听在所有的地址上
  2. 在bash中使用mont 命令成功mount
  3. 使用strace 追踪mount 命令,然后看到系统调用mount 的参数,也就是我们需要的参数了
  4. 使用到的strace 选项-f 追踪子进程,-s 1024 显示调用的字符串长度,默认长度比较短导致显示不完整
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!