How to configure a new NetworkManager connection from a shell script/command line?
Solution 1
Check your /etc/NetworkManager/NetworkManager.conf
Under [main]
there should be a plugins
directive and if you have enabled the keyfile
plugin (i.e. plugins=keyfile,ifupdown
or similar), it should monitor the /etc/NetworkManager/system-connections/
directory for file changes.
Further, a man NetworkManager.conf
tells you that 'it will ignore files that are readable or writeable by any user or group other than root'.
Don't know if this solves your problem, but it is worth checking out!
According to this, it should work with NetworkManager v7+
Cheers! / Daniel
Solution 2
This worked for me:
nmcli reload "your connection name"
followed by a reboot. Reactivation will probably work as well.
Related videos on Youtube
Filippo Cremonese
Updated on September 18, 2022Comments
-
Filippo Cremonese almost 2 years
I've tried to find a way to configure a new connection manageable by NetworkManager using a terminal/shell script all day long, but I've been unsuccessful.
The reason is that I have a lot of openvpn configuration files and I wanted to have a nice and fast way of importing them, also beacuse NetworkManager openvpn plugin doesn't parse the certificates embedded into configuration files, so the only way to configure a new VPN connection is to do that manually via the GUI after I run a script to extract the certificates from the config files, which is a rather long and tedious process.
I found that on RedHat the nmcli utility has the ability to configure a new connection in this way:
nmcli con add [...]
However this is not possibile on (standard) Linux Mint 17.1.
I tried to add a new connection manually, adding a new file in
/etc/NetworkManager/system-connections
[connection] id=VPNConnection id=3389cf54-949e-4c69-a746-864f0f8720b8 type=vpn [vpn] service-type=org.freedesktop.NetworkManager.openvpn fragment-size=1300 connection-type=password-tls password-flags=1 auth=MD5 tunnel-mtu=1500 cipher=AES-256-CBC comp-lzo=yes cert-pass-flags=0 remote=[vpn provider] port=[vpn port] mssfix=yes username=[username] remote-cert-tls=server cert=[user cert] ca=[ca cert] key=[user priv. key] [ipv6] method=ignore [ipv4] method=auto
but this new configuration doesn't show up in NetworkManager.
Also, I don't have any ~/.gconf/system directory, neither under my personal home nor under /root.
Where could NetworkManager read configuration files from?
-
nicolaus-hee about 9 yearsI am having the exact same problem. But the
reload
command is not included in my version of NetworkManager (most current package for Raspbian Wheezy). Any other idea? Rebooting and restarting the service didn't help either. -
Michael Hirschler over 6 yearsI think
nmcli connection reload "your connection name"
is the correct one.