nfs 支持ipv6

mount 一个ipv6 nfs

项目在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 显示调用的字符串长度,默认长度比较短导致显示不完整

转载于:https://www.cnblogs.com/hustcpp/p/11461138.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值