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 顯示調用的字符串長度,默認長度比較短導致顯示不完整


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM