Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
setup L2TP IPSEC VPN in archlinux using NetworkManager

setup L2TP IPsec VPN in archlinux using NetworkManager

install networkmanager-l2tp first:

yaourt -S networkmanager-l2tp

then reboot or systemctl restart NetworkManager

using commandline only

because nmtui can not create VPN connections, so I ended up creating one in the GUI and analysis generated config file

this can be done only via root, create the vpn config /etc/NetworkManager/system-connections/{vpn_name} manually:

[connection]
id={vpn_name}
uuid=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa 
type=vpn
autoconnect=false
permissions=

[vpn]
gateway={ip_of_vpn_server}
ipsec-psk={PSK}
password-flags=2
user={given_user}
service-type=org.freedesktop.NetworkManager.l2tp

[ipv4]
dns-search=
method=auto

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto

fill {vpn_name} {ip_of_vpn_server}, {PSK}, {given_user}, change uuid if needed (list current connections via nmcli c) and make sure the config permission is 600 with owner root:root, then:

systemctl restart NetworkManager # reload to detect the config
nmcli c up {vpn_name} --ask # establish the vpn connection, it will ask for password
nmcli # check connection status
nmcli c down {vpn_name} # close the vpn connection

via GNOME/KDE Plasma GUI

GNOME

add vpn in gnome

options of l2tp ipsec

KDE PLASMA

add_vpn_in_kde

options_of_kde_l2tp_ipsec

  • Gateway is the ip of the vpn server
  • User name is the given user
  • Password can be left blank to enter when connecting
  • click IPsec Settings... button
    • Check Enable IPsec tunnel to L2TP host
    • paste PSK to Pre-shared key
    • IMPORTANT Uncheck Enable IPsec tunnel to L2TP host before click OK button, I think this is a bug
  • click Add button and enable
@Raw1mage

This comment has been minimized.

Copy link

Raw1mage commented Mar 28, 2019

I was looking for a way to add l2tp vpn client connection using only nmcli, because I did not install Gnome or any KDE.
Your document is the first one in the world that talks about this topic, so I appreciated it very much.
The issue is that after adding a config in /etc/NetworkManage/system-connections,
"systemctl restart NetworkManager" does not import the new config file automatically.
so nmcli c up and all the following steps are not working.

@Raw1mage

This comment has been minimized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.