How to configure a new NetworkManager connection from a shell script/command line?

12,054

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.

Share:
12,054

Related videos on Youtube

Filippo Cremonese
Author by

Filippo Cremonese

Updated on September 18, 2022

Comments

  • Filippo Cremonese
    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
    nicolaus-hee about 9 years
    I 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
    Michael Hirschler over 6 years
    I think nmcli connection reload "your connection name" is the correct one.