AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1526070
Accepted
John Rennie
John Rennie
Asked: 2024-09-08 17:52:49 +0800 CST2024-09-08 17:52:49 +0800 CST 2024-09-08 17:52:49 +0800 CST

Verificando por que uma montagem NFS dá um erro

  • 772

Estou perguntando em nome do filho de um amigo que está na faculdade na Índia, então peço desculpas se o que eu perguntar não tiver informações suficientes. Ele está usando WSL2 no Windows 11 e tem o Ubuntu 22.04.3 LTS instalado.

Seu professor deu estas instruções para montar um compartilhamento NFS necessário para o curso:

sudo apt-get install nfs-common
cd /
sudo mkdir tools
sudo mount -t nfs 10.0.17.82:/tools /tools

Os três primeiros comandos funcionam bem, mas a montagem falha. Eu o fiz adicionar um sinalizador -v e a saída é:

minor@Tejas:~$ sudo mkdir /tools
[sudo] password for minor:
minor@Tejas:~$ ls /tools
minor@Tejas:~$ sudo mount -v -t nfs 10.0.17.82:/tools /tools
mount.nfs: timeout set for Sun Sep  8 15:10:40 2024
mount.nfs: trying text-based options 'vers=4.2,addr=10.0.17.82,clientaddr=172.29.144.144'
mount.nfs: mount(2): Invalid argument
mount.nfs: trying text-based options 'vers=4,minorversion=1,addr=10.0.17.82,clientaddr=172.29.144.144'
mount.nfs: mount(2): Operation not permitted
mount.nfs: trying text-based options 'addr=10.0.17.82'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 10.0.17.82 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 10.0.17.82 prog 100005 vers 3 prot UDP port 20048
mount.nfs: mount(2): Permission denied
mount.nfs: Operation not permitted
minor@Tejas:~$

Pedi para ele usar showmounte o resultado foi:

minor@Tejas:~$ showmount -e 10.0.17.82
Export list for 10.0.17.82:
/ *

Não consigo ver uma /toolsexportação na lista, mas também não sei se deveria conseguir vê-la. É bem possível que o professor dele não tenha configurado o servidor corretamente.

De qualquer forma, alguém pode sugerir o que está errado ou outras etapas para verificar qual é o problema?

22.04
  • 1 1 respostas
  • 64 Views

1 respostas

  • Voted
  1. Best Answer
    steeldriver
    2024-09-10T02:56:16+08:002024-09-10T02:56:16+08:00

    É difícil fazer um diagnóstico definitivo sem ver os logs NFS do lado do servidor 1 , no entanto, o comportamento pode ser explicado pelo fato de que a interface de rede WSL usa Network Address Translation (NAT), o que faz com que a porta de origem do lado do cliente pareça não ser privilegiada, enquanto o servidor exporta o sistema de arquivos remoto usando a secureopção - que permite apenas conexões de portas privilegiadas.

    Para demonstrar, configurei nfs-kernel-serverem uma caixa Kubuntu 24.04 com o seguinte /etc/exportsarquivo:

    /               192.168.1.0/24(rw,nohide,secure,no_subtree_check,sync)
    

    e criou um /toolsdiretório com um /tools/sometoolarquivo fictício e tentou montá-lo a partir de uma VM do VirtualBox executando o Ubuntu 22.04 com uma interface NAT:

    • Host (Windows) IP: 192.168.1.9

    • Convidado (Ubuntu 22.04) IP: 10.0.2.15 (NAT)

        $ sudo mount -t nfs -vvv 192.168.1.26:/tools /tools
        mount.nfs: timeout set for Mon Sep  9 17:33:09 2024
        mount.nfs: trying text-based options 'vers=4.2,addr=192.168.1.26,clientaddr=10.0.2.15'
        mount.nfs: mount(2): Operation not permitted
        mount.nfs: trying text-based options 'addr=192.168.1.26'
        mount.nfs: prog 100003, trying vers=3, prot=6
        mount.nfs: trying 192.168.1.26 prog 100003 vers 3 prot TCP port 2049
        mount.nfs: prog 100005, trying vers=3, prot=17
        mount.nfs: trying 192.168.1.26 prog 100005 vers 3 prot UDP port 43961
        mount.nfs: mount(2): Permission denied
        mount.nfs: Operation not permitted
      
    • Log do lado do servidor:

       Sep 09 13:31:09 htpc rpc.mountd[457645]: refused mount request from 192.168.1.9 for /tools (/): illegal port 58242
      

    Observe a porta de origem de numeração alta (>1024) na mensagem de erro illegal port 58242.

    Reconfigurando a interface da VM no modo em ponte:

    • Host (Windows) IP: 192.168.1.9

    • Convidado (Ubuntu 22.04) IP: 192.168.1.22 (BRIDGED)

        $ sudo mount -t nfs -vvv 192.168.1.26:/tools /tools
        mount.nfs: timeout set for Mon Sep  9 17:38:28 2024
        mount.nfs: trying text-based options 'vers=4.2,addr=192.168.1.26,clientaddr=192.168.1.22'
        $ 
        $ ls /tools
        sometool
      

    Log do lado do servidor:

        Sep 09 13:36:28 htpc rpc.mountd[457645]: auth_unix_ip: inbuf 'nfsd 192.168.1.22'
        Sep 09 13:36:28 htpc rpc.mountd[457645]: successful authentication for IP 192.168.1.22 as 192.168.1.0/24
        Sep 09 13:36:28 htpc rpc.mountd[457645]: auth_unix_ip: client 0x5d0dce71bef0 '192.168.1.0/24'
    

    Para obter mais evidências de que o problema é a porta não privilegiada, tentei adicionar a noresvportopção ao comando mount na VM em ponte :

        sudo mount -t nfs -onoresvport -vvv 192.168.1.26:/tools /tools
    

    e obteve o mesmo comportamento da configuração NAT.

    Algumas soluções alternativas possíveis são:

    1. Pode ser possível configurar o WSL para usar uma interface em ponte, conforme descrito neste blog, por exemplo Como fazer uma ponte [sic] do subsistema Windows para Linux

      No entanto, isso está fora do escopo deste site.

    2. Você pode mudar para uma instalação "bare metal" do Ubuntu ou uma solução de virtualização que permita interface em ponte pronta para uso, como Oracle Virtualbox ou VMware.

    3. Você pode pedir ao seu professor para modificar a exportação para permitir números de porta não privilegiados - se for um servidor Linux moderno, isso significaria adicionar a insecureopção (ou mudar securepara insecure):

       secure This option requires that requests not using gss originate on an
              Internet  port  less than IPPORT_RESERVED (1024). This option is
              on by default.  To turn it off, specify insecure.
    

    Para mais informações, consulte

    • man exportsna Seção 5 das páginas de manual do Ubuntu

    • a seção CONSIDERAÇÕES DE SEGURANÇA deman nfs


    Se o servidor do professor estiver executando um Linux baseado em systemd, o registro não será habilitado por padrão, mas pode ser habilitado seguindo as instruções aqui Onde estão os logs do NFS v4 no systemd?

    • 1

relate perguntas

  • Conexão lenta à Internet no Ubuntu 22.04 Beta [fechado]

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve