Disclaimer
The SMBv1 protocol is from the 1983, it is unsecure and thus disabled for a good reason. The SMBv2 protocol has been available since 2006.
Problem Description
I arrived at this question trying to find a solution for the following two problems:
- I have an HP printer that can only use the legacy SMBv1 protocol (HP OfficeJet Pro 8620). So my printer refused to connect to the network share and the scan to network feature stopped working.
I tried to use Nautilus to browse the network shares on my own Ubuntu system. And I was getting an error with the message Unable to access location Failed to retrieve share list from server: Invalid Argument:

Solution
After several attempts with different values in the /etc/samba/smb.conf file I was finally able to resolve these problems using these two values:
client min protocol = NT1
server min protocol = NT1
I also found posts that suggested to add this third parameter:
ntlm auth = ntlmv1-permitted
However, on my system this was not necessary.
Explanation
As I understand it, the client min protocol option controls how your system communicates with other SMB servers, changing this option could be useful if your Ubuntu system works as a client and you want to use SMBv1 to access a server. By default (with Samba 4.11) your local Samba installation is configured to require SMBv2 or higher connections.
On the other hand, if your Ubuntu system acts as the server that requires SMBv2 or higher and you have a remote client (such as a printer) that can only understand the legacy SMBv1 protocol, then it seems that changing the client min protocol has no effect. Instead you need to change the server min protocol. This way the client can negotiate SMBv1 with the Samba daemon running on your Ubuntu system.
Side note, you can also pass the client min protocol option to tools such as smbclient, for example:
smbclient -L //<hostname>/<folder> --option='client min protocol=NT1'
Can be used to set the client protocol to SMBv1. This was useful to test the effect of changes in the smb.conf file.
I tried this on Ubuntu 20.04 which comes with samba version 4.11. I have not tested this solution on older Ubuntu distributions.
PSA: Fix to SMBv1 smbclient issues - Machines - Hack The Box :: Forums
[PSA] SBM1 Samba protocol has been deprecated, here's a workaround
windows ce - How to enable SMB1 as default and disable SMB2 and SMB3 on Ubuntu 18.04 Server? - Stack Overflow
Upgraded to Mint 20 - can't mount NAS folders
Disclaimer
The SMBv1 protocol is from the 1983, it is unsecure and thus disabled for a good reason. The SMBv2 protocol has been available since 2006.
Problem Description
I arrived at this question trying to find a solution for the following two problems:
- I have an HP printer that can only use the legacy SMBv1 protocol (HP OfficeJet Pro 8620). So my printer refused to connect to the network share and the scan to network feature stopped working.
I tried to use Nautilus to browse the network shares on my own Ubuntu system. And I was getting an error with the message Unable to access location Failed to retrieve share list from server: Invalid Argument:

Solution
After several attempts with different values in the /etc/samba/smb.conf file I was finally able to resolve these problems using these two values:
client min protocol = NT1
server min protocol = NT1
I also found posts that suggested to add this third parameter:
ntlm auth = ntlmv1-permitted
However, on my system this was not necessary.
Explanation
As I understand it, the client min protocol option controls how your system communicates with other SMB servers, changing this option could be useful if your Ubuntu system works as a client and you want to use SMBv1 to access a server. By default (with Samba 4.11) your local Samba installation is configured to require SMBv2 or higher connections.
On the other hand, if your Ubuntu system acts as the server that requires SMBv2 or higher and you have a remote client (such as a printer) that can only understand the legacy SMBv1 protocol, then it seems that changing the client min protocol has no effect. Instead you need to change the server min protocol. This way the client can negotiate SMBv1 with the Samba daemon running on your Ubuntu system.
Side note, you can also pass the client min protocol option to tools such as smbclient, for example:
smbclient -L //<hostname>/<folder> --option='client min protocol=NT1'
Can be used to set the client protocol to SMBv1. This was useful to test the effect of changes in the smb.conf file.
I tried this on Ubuntu 20.04 which comes with samba version 4.11. I have not tested this solution on older Ubuntu distributions.
NOTE: This answer relates to version 4.7.6 of samba and for a unique circumstance. Current versions of Samba work differently and setting client max to NT1 would make the max less than the min. To enable SMB1 ( NT1 ) on newer versions of Samba - like the one in Ubuntu 20.04 - use the answer provided by lanoxx below
client max protocol = SMB1
In an attempt to confuse as many people as possible SMB1 in samba is called NT1. So change your line to:
client max protocol = NT1
And don't add the max protocol = SMB1 line at all. If you set up a server on your 18.04 box it will negotiate the right level to use with its clients and by default the upper limit is SMB3. Has been for years.
First, there is no such thing as a HomeGroup in Linux, MacOS, or Windows starting with Win10.
Second, if you are talking about that specific error when running smbclient you would need to enable SMB1 ( Samba calls it NT1 ) on the client side in /etc/samba/smb.conf. Right under the workgroup = WORKGROUP line add this one:
client min protocol = NT1
Of course the server you are trying to connect to must have SMB1 enabled on its side. If you kept your Win10 machine up to date it is disabled so you will have to enable it there. If the server is running Ubuntu 20 or anything with the same version of samba you would have to edit smb.conf on that machine and add:
server min protocol = NT1
Then restart samba:
sudo service smbd restart
sudo service nmbd restart
If you don't do that on the server you will likely get a protocol negotiation failed: error.
That will probably eliminate the SMB1 error message. Whether you can "discover" all the workgroups and hosts in Nautilus is another matter. If you have to turn the clock back to SMB1 days you need to follow the rules set at that era ... name resolve order, host name length restrictions, etc ...
ran into this trying to get an old Netgear Stora to resolve on a unbuntu network
client min protocol = CORE
will get you up and going
20.04 LTS
ps this article may also help you
If you get an error while trying to mount an SMB1 samba share and you have no way to upgrade your server for whatever reason (hello Freebox users), do this as per this post:
$ sudo vim /etc/samba/smb.conf
[global] client min protocol = CORE
The error I was getting in Thunar file manager was something along the lines "failed to mount, software caused connection abort".
Hope this helps!