<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Openvpn on Notebook</title><link>http://blog.cmac4603.dev/tags/openvpn/</link><description>Recent content in Openvpn on Notebook</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 09 Jun 2026 12:26:29 +0100</lastBuildDate><atom:link href="http://blog.cmac4603.dev/tags/openvpn/index.xml" rel="self" type="application/rss+xml"/><item><title>OpenVPN on Arch</title><link>http://blog.cmac4603.dev/posts/openvpn-on-arch/</link><pubDate>Tue, 09 Jun 2026 12:26:29 +0100</pubDate><guid>http://blog.cmac4603.dev/posts/openvpn-on-arch/</guid><description>&lt;h2 id="import-using-systemctl"&gt;Import using systemctl&lt;/h2&gt;
&lt;p&gt;Copy OpenVPN client file to &lt;code&gt;/etc&lt;/code&gt; directory:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo cp client.ovpn /etc/openvpn/client/myvpnconf.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Systemctl&amp;rsquo;s &lt;code&gt;enable&lt;/code&gt; command turns on the service on boot, the &lt;code&gt;--now&lt;/code&gt; flag also starts the service immediately:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# note the filename after @&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;systemctl enable --now openvpn-client@myvpnconf.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This will start the VPN service with that configuration on boot, but this won&amp;rsquo;t integrate with networkmanager.&lt;/p&gt;
&lt;h2 id="integrating-vpn-connections--with-networkmanager"&gt;Integrating VPN connections with networkmanager&lt;/h2&gt;
&lt;h3 id="disable-the-original-systemctl-service-if-added-previously"&gt;Disable the original systemctl service (if added previously)&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;systemctl disable --now openvpn-client@myvpnconf.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="import-openvpn-connection"&gt;Import OpenVPN connection&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nmcli connection import type openvpn file myvpnconf.ovpn
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="edit-the-connection-to-add-username--password"&gt;Edit the connection to add username &amp;amp; password&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nmcli connection modify myvpnconf &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; +vpn.data &lt;span style="color:#e6db74"&gt;&amp;#34;connection-type=password-tls, username=&lt;/span&gt;$USERNAME&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; vpn.user-name $USERNAME &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; +vpn.secrets &lt;span style="color:#e6db74"&gt;&amp;#34;password=&lt;/span&gt;$PASSWORD&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="automatically-connect-to-vpn"&gt;Automatically connect to VPN&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;List connections&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nmcli connection
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;NAME UUID TYPE DEVICE
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;zrh-003 d46e4a92-778e-4792-b085-e1f638ecb8e3 vpn enp1s0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;enp1s0 1715b889-3c47-3e21-a86f-94ce207297a9 ethernet enp1s0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tun0 7405f329-255d-4b50-b98d-c2e865a443a4 tun tun0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Edit connection by adding the VPN UUID&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# note if device name doesn&amp;#39;t work use the UUID of the connection (not the VPN)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nmcli c edit enp1s0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nmcli&amp;gt; set connection.secondaries d46e4a92-778e-4792-b085-e1f638ecb8e3
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nmcli&amp;gt; save persistent
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Connection &lt;span style="color:#e6db74"&gt;&amp;#39;enp1s0&amp;#39;&lt;/span&gt; &lt;span style="color:#f92672"&gt;(&lt;/span&gt;1715b889-3c47-3e21-a86f-94ce207297a9&lt;span style="color:#f92672"&gt;)&lt;/span&gt; successfully updated.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item></channel></rss>