<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-7268743010500230881</atom:id><lastBuildDate>Fri, 16 Oct 2026 05:20:32 +0000</lastBuildDate><category>Favorites</category><category>Linux</category><category>MIS / IT</category><category>Security</category><category>JavaScript</category><category>Mobile</category><category>Hardware</category><category>Audio</category><category>Drupal</category><category>PHP</category><category>SVG</category><category>Docker</category><category>Dojo</category><category>Video</category><category>Tutorial</category><category>Spirituality</category><category>Cloud</category><category>Windows</category><category>Business</category><category>Convert</category><category>HTML5</category><category>Mac</category><category>PNG</category><category>Software</category><title>Mr. Blue Coat</title><description></description><link>http://mrbluecoat.blogspot.com/</link><managingEditor>noreply@blogger.com (Mr. Blue Coat)</managingEditor><generator>Blogger</generator><openSearch:totalResults>434</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-4515353619652545696</guid><pubDate>Fri, 16 Oct 2026 01:07:10 +0000</pubDate><atom:updated>2026-10-15T22:20:32.582-07:00</atom:updated><title>MOVED</title><description>&lt;p&gt;&amp;nbsp;This blog has moved to&amp;nbsp;&lt;a href=&quot;https://mrbluecoat.vivaldi.net/&quot;&gt;https://mrbluecoat.vivaldi.net/&lt;/a&gt;&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2026/10/moved.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-7414584281238549303</guid><pubDate>Mon, 12 Oct 2026 01:43:50 +0000</pubDate><atom:updated>2026-10-11T18:43:50.356-07:00</atom:updated><title>Best Android spam call/text blocker</title><description>&lt;p&gt;After testing a bunch of open source options, &lt;a href=&quot;https://github.com/SysAdminDoc/CallShield&quot;&gt;CallShield&lt;/a&gt; was the best. Install it and keep it updated via &lt;a href=&quot;https://obtainium.imranr.dev/&quot;&gt;Obtanium&lt;/a&gt;.&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2026/10/best-android-spam-calltext-blocker.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-8280099306549029082</guid><pubDate>Sat, 05 Sep 2026 15:36:41 +0000</pubDate><atom:updated>2026-09-05T08:36:41.673-07:00</atom:updated><title>Useful tool to remove Microsoft spying from Windows: O&amp;O ShutUp10</title><description>&lt;p&gt;We all know corporate tech giants spy on their users but we often don&#39;t realize the extent of that spying. The &lt;a href=&quot;https://www.oo-software.com/en/shutup10&quot;&gt;free ShutUp10 tool from O&amp;amp;O&lt;/a&gt; is a great way to not only disable that spying but become aware of it in the first place. Use it, disable all the recommended settings (except maybe not hiding the search bar) and spread the word!&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2026/09/useful-tool-to-remove-microsoft-spying.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-3068878831614593888</guid><pubDate>Thu, 25 Jun 2026 20:33:03 +0000</pubDate><atom:updated>2026-08-29T17:51:57.184-07:00</atom:updated><title>Network stress test a DietPi system</title><description>&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;apt install screen stress-ng htop&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;screen -d -m stress-ng --class network --seq 0 --exclude dccp,sctp --cpu-load 80 --timeout 1m&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;while true; do cpu; sleep 10; done&lt;/span&gt;&lt;/p&gt;&lt;p&gt;-----&lt;/p&gt;&lt;p&gt;Notes:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;DCCP is defined in RFC 4340 as a proposed standard, though its implementation in the Linux kernel has been marked deprecated and was removed in version 6.16 due to lack of maintenance.&lt;/li&gt;&lt;li&gt;The SCTP module is often blacklisted by default in distributions like RHEL 8+ and Ubuntu for security reasons.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2026/06/network-stress-test-dietpi-system.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-2079761887711522247</guid><pubDate>Mon, 18 May 2026 03:42:02 +0000</pubDate><atom:updated>2026-05-17T20:51:20.121-07:00</atom:updated><title>Radxa Dragon Q6A - a surprisingly good SBC</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTDB9zzhcIaM-mvSXMoBEaqfc2SS3dbxnI4L4QHGCq0w-oa1M54VdNdmMAbV5xpGRnkfAlWybX9xvqqCqvfPN437aLD5okUDZcd5Y1CrvgdUkT_LXMe_jdg_pg-iO38nQynfP7lceH4wGsnUCuWrvYIhVryUtR7JwI8I8-mrejfeW_enTTsA_5KOrh/s1200/banner_radxa_dragon_q6a.webp&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1200&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTDB9zzhcIaM-mvSXMoBEaqfc2SS3dbxnI4L4QHGCq0w-oa1M54VdNdmMAbV5xpGRnkfAlWybX9xvqqCqvfPN437aLD5okUDZcd5Y1CrvgdUkT_LXMe_jdg_pg-iO38nQynfP7lceH4wGsnUCuWrvYIhVryUtR7JwI8I8-mrejfeW_enTTsA_5KOrh/s320/banner_radxa_dragon_q6a.webp&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;The SBC world is in a bit of a slump right now due to international tensions and inflationary pressure so I haven&#39;t spent much time in the space, but I recently came across &lt;a href=&quot;https://bret.dk/every-single-board-computer-i-tested-in-2025/&quot;&gt;this positive review&lt;/a&gt; for the Radxa Dragon Q6A and decided to try it out. I was able to grab the 6 GB version for $79 before it went out of stock at &lt;a href=&quot;https://arace.tech/products/radxa-dragon-q6a&quot;&gt;Arace Tech&lt;/a&gt;. The &lt;a href=&quot;https://arace.tech/products/emmc-module&quot;&gt;eMMC module&lt;/a&gt;&amp;nbsp;and &lt;a href=&quot;https://arace.tech/products/radxa-ufs-module&quot;&gt;UFS module&lt;/a&gt;&amp;nbsp;are sold out nearly everywhere so I opted for an NVME drive (M.2 M Key 2230 slot). For $79 in today&#39;s economy, the device is surprisingly agile thanks to its&amp;nbsp;&lt;a href=&quot;https://radxa.com/products/dragon/q6a/&quot;&gt;Qualcomm QCS6490 octa-core CPU&lt;/a&gt;. If you&#39;re in the market for a small ARM device, this is probably your best option at the moment. P.S. Make sure to also include the&amp;nbsp;&lt;a href=&quot;https://arace.tech/products/radxa-armor-case-7056a&quot;&gt;Armor Case 7056A heatsink&lt;/a&gt;, which &lt;a href=&quot;https://github.com/geerlingguy/sbc-reviews/issues/85#issuecomment-4212363077&quot;&gt;works great for this device&lt;/a&gt;.&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2026/05/radxa-dragon-q6a-surprisingly-good-sbc.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTDB9zzhcIaM-mvSXMoBEaqfc2SS3dbxnI4L4QHGCq0w-oa1M54VdNdmMAbV5xpGRnkfAlWybX9xvqqCqvfPN437aLD5okUDZcd5Y1CrvgdUkT_LXMe_jdg_pg-iO38nQynfP7lceH4wGsnUCuWrvYIhVryUtR7JwI8I8-mrejfeW_enTTsA_5KOrh/s72-c/banner_radxa_dragon_q6a.webp" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-3233822035563249103</guid><pubDate>Sat, 16 May 2026 13:40:23 +0000</pubDate><atom:updated>2026-07-29T07:56:56.082-07:00</atom:updated><title>New unofficial MTG format: Destitute</title><description>&lt;style&gt;
  td {
    word-wrap: break-word;
  }
&lt;/style&gt;

&lt;p&gt;I love playing &lt;a href=&quot;https://magic.wizards.com/en&quot;&gt;Magic: The Gathering&lt;/a&gt; but I&#39;m also competitive and am hard-wired not to lose if at all possible. That becomes problematic when teaching my kids the game because I generally win, which is not fun for them and they quickly lose interest. I&#39;ve been looking for a &#39;handicap&#39; that could level the playing field and came up with &lt;b&gt;Destitute&lt;/b&gt;: cards that are legal in &lt;i&gt;both&lt;/i&gt; &lt;a href=&quot;https://magic.wizards.com/en/formats/pauper&quot;&gt;Pauper&lt;/a&gt; and &lt;a href=&quot;https://magic.wizards.com/en/formats/modern&quot;&gt;Modern&lt;/a&gt; formats:&lt;/p&gt;

&lt;div class=&quot;table-container&quot;&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Pauper&lt;/th&gt;
&lt;th&gt;Modern&lt;/th&gt;
&lt;th&gt;Destitute&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizDaXuHMntAIy99a4uQDcXkhCO-BDUnlvDzKQxs2q3m7In8lCDFcDobVF45JA_GT-ZEJSi-abPmLlCo1Sefu3D5bcSL0N83r7S41W8TBVPonWQgC84xPgYG_W5HebNfl98GkV0nEBFeZLOFX3PZ3db4JYeh_8MS6N38DbUvRCcdzzNFM6zbf7z7vF9/s936/wellwisher.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;936&quot; data-original-width=&quot;672&quot; height=&quot;226&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizDaXuHMntAIy99a4uQDcXkhCO-BDUnlvDzKQxs2q3m7In8lCDFcDobVF45JA_GT-ZEJSi-abPmLlCo1Sefu3D5bcSL0N83r7S41W8TBVPonWQgC84xPgYG_W5HebNfl98GkV0nEBFeZLOFX3PZ3db4JYeh_8MS6N38DbUvRCcdzzNFM6zbf7z7vF9/w162-h226/wellwisher.jpg&quot; width=&quot;162&quot; /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizHzINf0NJdZ1jjVh40yhOSQ1rqy5vAY9yh9r1DcOwx8TPriq7s3Er5Ds8AzZXOj9sX0yjUQwIReuuwoEB4GDXSLEcIi0PLJmwtqzLIoSHiocxSNhGl_vccqMlh9S5SGnnCmwcdlu2e4-SEQWQeDiox-kWeaiSCO9p3hyphenhyphenCFGTh8AvhzQ2_K51yRNAF/s936/joraga-warcaller.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;936&quot; data-original-width=&quot;672&quot; height=&quot;221&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizHzINf0NJdZ1jjVh40yhOSQ1rqy5vAY9yh9r1DcOwx8TPriq7s3Er5Ds8AzZXOj9sX0yjUQwIReuuwoEB4GDXSLEcIi0PLJmwtqzLIoSHiocxSNhGl_vccqMlh9S5SGnnCmwcdlu2e4-SEQWQeDiox-kWeaiSCO9p3hyphenhyphenCFGTh8AvhzQ2_K51yRNAF/w159-h221/joraga-warcaller.jpg&quot; width=&quot;159&quot; /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBMGniaihZQSz1xnPvNEwgGiIe_9LAISc7T1OjhJAVnfNN92LchgmewItrr0dZ5Y0oKEX9Ya0hqSBO9phImHcu_bU_xEnAbPOooT2h6UQrDaq-EvLAEZdpHARwN4hB1JpH0Rr65_7i1QxqFX-iwWyKpgAXpYQCkeqiij-MWy50-jVPxjZBN-QK9u0o/s936/priest-of-titania.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;936&quot; data-original-width=&quot;672&quot; height=&quot;227&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBMGniaihZQSz1xnPvNEwgGiIe_9LAISc7T1OjhJAVnfNN92LchgmewItrr0dZ5Y0oKEX9Ya0hqSBO9phImHcu_bU_xEnAbPOooT2h6UQrDaq-EvLAEZdpHARwN4hB1JpH0Rr65_7i1QxqFX-iwWyKpgAXpYQCkeqiij-MWy50-jVPxjZBN-QK9u0o/w163-h227/priest-of-titania.jpg&quot; width=&quot;163&quot; /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;Legal in Pauper but not Modern so&amp;nbsp;&lt;span style=&quot;color: red;&quot;&gt;NOT&lt;/span&gt; Destitute legal&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;Legal in Modern but not Pauper so&amp;nbsp;&lt;span style=&quot;color: red;&quot;&gt;NOT&lt;/span&gt; Destitute legal&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;Legal in Pauper and Modern so &lt;span style=&quot;color: #04ff00;&quot;&gt;IS&lt;/span&gt; Destitute legal&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I let my kids play Modern decks but I restrict myself to Destitute decks as a handicap. It has the right balance of challenge for me since it takes more work to develop a good Pauper deck and even though I don&#39;t win as often my competitive side is assuaged knowing it was only because I was limited in my options. As a bonus, Destitute decks are cheaper so I can make more of them!&lt;/p&gt;&lt;p&gt;Here are a few Destitute decks to give you some starting ideas:&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://tappedout.net/mtg-decks/destitute-modular-1/&quot;&gt;Destitute Modular&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://tappedout.net/mtg-decks/destitute-stompy-1/&quot;&gt;Destitute Stompy&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://tappedout.net/mtg-decks/destitute-unblockable-1/&quot;&gt;Destitute Unblockable&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2026/05/new-unofficial-mtg-format-destitute.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizDaXuHMntAIy99a4uQDcXkhCO-BDUnlvDzKQxs2q3m7In8lCDFcDobVF45JA_GT-ZEJSi-abPmLlCo1Sefu3D5bcSL0N83r7S41W8TBVPonWQgC84xPgYG_W5HebNfl98GkV0nEBFeZLOFX3PZ3db4JYeh_8MS6N38DbUvRCcdzzNFM6zbf7z7vF9/s72-w162-h226-c/wellwisher.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-4126248491141256779</guid><pubDate>Wed, 06 May 2026 14:39:00 +0000</pubDate><atom:updated>2026-05-06T07:39:40.259-07:00</atom:updated><title>Brave Origin on Linux</title><description>&lt;p&gt;To install &lt;a href=&quot;https://support.brave.app/hc/en-us/articles/38561489788173-What-is-Brave-Origin&quot;&gt;Brave Origin&lt;/a&gt; on EndeavourOS:&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;yay -S brave-origin-beta-bin&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Then run &lt;a href=&quot;https://github.com/ChaoticSi1ence/SlimBrave-Neo&quot;&gt;SlimBrave Neo&lt;/a&gt; to further de-bloat.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;P.S. If you want something more privacy extreme, try &lt;a href=&quot;https://librewolf.net/&quot;&gt;LibreWolf&lt;/a&gt;&amp;nbsp;or &lt;a href=&quot;https://helium.computer/&quot;&gt;Helium&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2026/05/brave-origin-on-linux.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-1184098773853768580</guid><pubDate>Wed, 15 Apr 2026 14:50:00 +0000</pubDate><atom:updated>2026-04-21T19:19:07.667-07:00</atom:updated><title>Best Windows / Android antivirus for home protection</title><description>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdl5uhYSJszbofcVk1djrd_O4JfMGhlPufmoAomqo0Gvo7FjcHI03jJfA6Q03f-dibF0oQ2kp_vUAsBIxEkgw7OVMIxdXy6Cuq1t4ge6-U0R8EBASR2a2maB7WPGlX_nHjVfMa2jjoBDkTSu4Kk2tJv5BLgHc_i_CBZee3qFSlz0fHP_ReuLz5ZA0o/s1120/00FcoWg1aHPphwddd7S5yEj-3.webp&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;630&quot; data-original-width=&quot;1120&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdl5uhYSJszbofcVk1djrd_O4JfMGhlPufmoAomqo0Gvo7FjcHI03jJfA6Q03f-dibF0oQ2kp_vUAsBIxEkgw7OVMIxdXy6Cuq1t4ge6-U0R8EBASR2a2maB7WPGlX_nHjVfMa2jjoBDkTSu4Kk2tJv5BLgHc_i_CBZee3qFSlz0fHP_ReuLz5ZA0o/s320/00FcoWg1aHPphwddd7S5yEj-3.webp&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Trying to be as objective as possible, here are sources I trust:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://customer.appesteem.com/home/deceptorfighters?year=2026&quot;&gt;AppEsteem&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.av-comparatives.org/tests/summary-report-2025/&quot;&gt;AV Comparitives&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.av-test.org/en/antivirus/home-windows/&quot;&gt;AV Test&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://avlab.pl/en/advanced-in-the-wild-malware-test/recent-results/&quot;&gt;AVLab&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.mrg-effitas.com/test-reports/&quot;&gt;MRG Effitias&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://selabs.uk/reports/endpoint-security-eps-home-2025-q4/&quot;&gt;SE Labs&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.testingground.io/report/android/tgl_android_malware_detection_202602_consumer_en.html&quot;&gt;Testing Ground Labs&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://venaksecurity.com/2026/03/16/venak-security-zero-day-av-edr-q1-2026-test-results/&quot;&gt;Venak Security&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.virusbulletin.com/testing/vb100/&quot;&gt;Virus Bulletin VB100&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div&gt;Other options can be found &lt;a href=&quot;https://www.amtso.org/tests/&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Note: other reputable sources, like &lt;a href=&quot;https://www.pcmag.com/about/how-we-test-antivirus-and-security-software&quot;&gt;PCMag&lt;/a&gt; and &lt;a href=&quot;https://cybernews.com/how-we-test/antivirus-software/#testing-and-methodology&quot;&gt;Cybernews&lt;/a&gt;&amp;nbsp;and &lt;a href=&quot;https://softwarelab.org/blog/how-we-test-antivirus-software/&quot;&gt;SoftwareLab&lt;/a&gt;, don&#39;t release full details of their internal testing so I don&#39;t include their recommendations in my scoring.&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;Each vendor gets 1 point for each perfect score given by the sources above. Each vendor gets -1 point for each non-perfect score given by the sources above. Vendors that are only included in a single source above are excluded.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Net results:&lt;/b&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;6&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Kasperksy&lt;/b&gt;: +1&amp;nbsp;AV Comparitives, +1&amp;nbsp;AV Test, +1&amp;nbsp;AVLab, +1&amp;nbsp;SE Labs, +1&amp;nbsp;Testing Ground Labs, +1&amp;nbsp;AppEsteem&lt;/div&gt;&lt;div&gt;&lt;div&gt;2&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;BitDefender&lt;/b&gt;: -1&amp;nbsp;AV Comparitives, +1&amp;nbsp;AV Test, +1&amp;nbsp;AVLab, +1&amp;nbsp;MRG Effitias&lt;/div&gt;&lt;div&gt;&lt;span&gt;2&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Elastic Security&lt;/b&gt;: +1 AVLab, +1&amp;nbsp;Virus Bulletin VB100&lt;/div&gt;&lt;div&gt;&lt;span&gt;2&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;EmsiSoft&lt;/b&gt;: +1&amp;nbsp;AVLab, +1&amp;nbsp;Virus Bulletin VB100&lt;/div&gt;&lt;div&gt;1&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;F-Secure&lt;/b&gt;: -1&amp;nbsp;AV Comparitives, +1&amp;nbsp;AV Test, +1&amp;nbsp;AVLab&lt;/div&gt;&lt;div&gt;1&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;McAfee&lt;/b&gt;: +1&amp;nbsp;AV Test, -1&amp;nbsp;MRG Effitias, +1&amp;nbsp;SE Labs, -1&amp;nbsp;Testing Ground Labs, +1&amp;nbsp;AppEsteem&lt;/div&gt;&lt;div&gt;1&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Microsoft Defender&lt;/b&gt;: -1&amp;nbsp;AV Comparitives, +1&amp;nbsp;AV Test, +1&amp;nbsp;AVLab, +1&amp;nbsp;SE Labs, -1 AppEsteem&lt;/div&gt;&lt;div&gt;1&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Norton&lt;/b&gt;: +1&amp;nbsp;AV Comparitives, +1&amp;nbsp;AV Test, +1&amp;nbsp;AVLab, -1&amp;nbsp;MRG Effitias, +1&amp;nbsp;SE Labs, -1&amp;nbsp;Testing Ground Labs, -1 AppEsteem&lt;/div&gt;&lt;div&gt;1&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Panda&lt;/b&gt;: -1&amp;nbsp;AV Comparitives, -1 SE Labs, +1&amp;nbsp;AppEsteem&lt;/div&gt;&lt;div&gt;1&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Sophos&lt;/b&gt;: -1&amp;nbsp;MRG Effitias, +1&amp;nbsp;SE Labs, +1&amp;nbsp;AppEsteem&lt;/div&gt;&lt;div&gt;0&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;K7&lt;/b&gt;: -1&amp;nbsp;AV Comparitives, -1&amp;nbsp;AV Comparitives, +1&amp;nbsp;AVLab, +1&amp;nbsp;AppEsteem&lt;/div&gt;&lt;div&gt;0&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;TotalAV&lt;/b&gt;: -1&amp;nbsp;AV Comparitives, +1&amp;nbsp;AV Test, -1 SE Labs, +1&amp;nbsp;AppEsteem&lt;/div&gt;&lt;div&gt;-1&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;AVG&lt;/b&gt;: -1&amp;nbsp;AV Comparitives, -1&amp;nbsp;AV Comparitives, +1&amp;nbsp;AppEsteem&lt;/div&gt;&lt;div&gt;-1&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;ESET&lt;/b&gt;: +1&amp;nbsp;AV Comparitives, -1&amp;nbsp;AV Comparitives, +1&amp;nbsp;AVLab, -1&amp;nbsp;MRG Effitias, +1&amp;nbsp;Testing Ground Labs, -1&amp;nbsp;Venak Security, -1 AppEsteem&lt;/div&gt;&lt;div&gt;-1&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;GData&lt;/b&gt;: -1&amp;nbsp;AV Comparitives, +1&amp;nbsp;AV Test, -1&amp;nbsp;MRG Effitias, +1&amp;nbsp;Venak Security, -1 AppEsteem&lt;/div&gt;&lt;div&gt;-1&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Malwarebytes&lt;/b&gt;: -1&amp;nbsp;AV Comparitives, +1&amp;nbsp;AVLab, +1&amp;nbsp;MRG Effitias, -1&amp;nbsp;Venak Security, -1 AppEsteem&lt;/div&gt;&lt;div&gt;-1&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Quick Heal&lt;/b&gt;: -1&amp;nbsp;AV Comparitives, +1&amp;nbsp;Venak Security, -1 AppEsteem&lt;/div&gt;&lt;div&gt;-1&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Webroot&lt;/b&gt;: +1&amp;nbsp;AVLab, -1 SE Labs, -1 AppEsteem&lt;/div&gt;&lt;div&gt;-2&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;AhnLab&lt;/b&gt;: -1&amp;nbsp;AV Test, -1&amp;nbsp;AV Comparitives, -1&amp;nbsp;Testing Ground Labs, +1&amp;nbsp;Virus Bulletin VB100&lt;/div&gt;&lt;div&gt;-2&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Avast&lt;/b&gt;: -1&amp;nbsp;AV Comparitives, +1&amp;nbsp;AV Test, -1 AVLab, -1&amp;nbsp;MRG Effitias, +1&amp;nbsp;SE Labs, -1&amp;nbsp;Testing Ground Labs, -1&amp;nbsp;Venak Security, +1&amp;nbsp;AppEsteem&lt;/div&gt;&lt;div&gt;-2&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Avira&lt;/b&gt;: -1&amp;nbsp;AV Comparitives, -1&amp;nbsp;AV Comparitives, -1&amp;nbsp;Testing Ground Labs, +1&amp;nbsp;AppEsteem&lt;/div&gt;&lt;div&gt;-2&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Dr.Web&lt;/b&gt;: -1&amp;nbsp;Testing Ground Labs, -1 AppEsteem&lt;/div&gt;&lt;div&gt;-2&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;SpyHunter&lt;/b&gt;: -1&amp;nbsp;AV Comparitives, -1 AppEsteem&lt;/div&gt;&lt;div&gt;&lt;span&gt;-2&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Total Defense&lt;/b&gt;: -1 AV Comparitives, -1&amp;nbsp;Testing Ground Labs&lt;/div&gt;&lt;div&gt;-2&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;b&gt;VIPRE&lt;/b&gt;&lt;/span&gt;: -1&amp;nbsp;AV Comparitives, -1 AppEsteem&lt;/div&gt;&lt;div&gt;-4&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Trend Micro&lt;/b&gt;: -1&amp;nbsp;AV Comparitives, -1&amp;nbsp;AV Comparitives, -1&amp;nbsp;AVLab, -1 AppEsteem&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Count of malware found in personal tests&lt;/b&gt; (using my own files and those from &lt;a href=&quot;https://github.com/kasuncsb/Live-Malware-DB&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;https://github.com/objective-see/Malware&quot;&gt;2&lt;/a&gt;, &lt;a href=&quot;https://github.com/kytulendu/DOS_av_effectiveness&quot;&gt;3&lt;/a&gt;):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #04ff00;&quot;&gt;&lt;b&gt;17,781&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;b&gt;EmsiSoft &lt;/b&gt;&lt;i&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;(cleanup worked but &quot;Processing Selected Files&quot; msg for 5 hours - rebooted)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;b style=&quot;color: #04ff00;&quot;&gt;17,773&lt;/b&gt;&lt;span style=&quot;color: black; white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Total Defense&lt;/b&gt;&lt;b style=&quot;color: black;&quot;&gt;&amp;nbsp;&lt;/b&gt;&lt;i&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;(&quot;Scanner process is not responding, try again later&quot; at 4 hour mark)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span style=&quot;color: #04ff00;&quot;&gt;&lt;b&gt;17,741&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;b&gt;Bit&lt;/b&gt;&lt;/span&gt;&lt;b&gt;Defender&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: black; white-space: pre;&quot;&gt;&lt;b style=&quot;color: #04ff00;&quot;&gt;17,447&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;G DATA&lt;/b&gt;&amp;nbsp;&lt;i&gt;&lt;span style=&quot;color: #fcff01;&quot;&gt;(cancelled scan cleanup run after 5 hours)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;9,358&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Avira&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;8,959&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Quick Heal&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;5,344&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Webroot&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;3,540&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Microsoft Defender&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: red;&quot;&gt;2,627&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b style=&quot;white-space: pre;&quot;&gt;ESET &lt;/b&gt;&lt;i style=&quot;white-space: pre;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;(4 couldn&#39;t be cleaned)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: red;&quot;&gt;827&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;b&gt;VIPRE&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&lt;i&gt;&lt;span style=&quot;color: red;&quot;&gt;(inconsistent trial behavior - many threats found but not removed)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: red;&quot;&gt;811&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;K7&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: red;&quot;&gt;541&lt;/span&gt;&lt;span style=&quot;font-weight: bold; white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;b&gt;SpyHunter&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: red;&quot;&gt;535&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Malwarebyte&lt;/b&gt;&lt;b&gt;s&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b style=&quot;white-space: pre;&quot;&gt;Avast&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b style=&quot;white-space: pre;&quot;&gt;AVG&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Sophos&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;X&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;AhnLab&lt;/b&gt;&amp;nbsp;&lt;i&gt;&lt;span style=&quot;color: red;&quot;&gt;(no trial available)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;X&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Dr.Web&lt;/b&gt;&amp;nbsp;&lt;i&gt;&lt;span style=&quot;color: red;&quot;&gt;(crashed computer while scanning)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;X&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Elastic Security&lt;/b&gt;&amp;nbsp;&lt;i&gt;&lt;span style=&quot;color: red;&quot;&gt;(not sold for home use)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;X&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;F-Secure&lt;/b&gt;&amp;nbsp;&lt;i&gt;&lt;span style=&quot;color: red;&quot;&gt;(requires credit card for trial)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;X&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Kasperksy&lt;/b&gt;&amp;nbsp;&lt;i&gt;&lt;span style=&quot;color: red;&quot;&gt;(&lt;a href=&quot;https://www.tomshardware.com/tech-industry/cyber-security/us-bans-kaspersky-and-hands-out-sanctions-to-execs&quot;&gt;banned in the U.S.&lt;/a&gt;)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;X&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;McAfee&lt;/b&gt;&amp;nbsp;&lt;i&gt;&lt;span style=&quot;color: red;&quot;&gt;(requires credit card for trial)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;X&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Norton&lt;/b&gt;&amp;nbsp;&lt;i&gt;&lt;span style=&quot;color: red;&quot;&gt;(requires credit card for trial)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;X&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Panda&lt;/b&gt;&amp;nbsp;&lt;i&gt;&lt;span style=&quot;color: red;&quot;&gt;(crashed computer while scanning)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;X&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Total AV&lt;/b&gt;&amp;nbsp;&lt;i&gt;&lt;span style=&quot;color: red;&quot;&gt;(&quot;An error occurred during the antivirus scan&quot;)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;X&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;b&gt;Trend Micro&lt;/b&gt;&amp;nbsp;&lt;i&gt;&lt;span style=&quot;color: red;&quot;&gt;(selected trial but after install said &quot;Invalid Activation Code&quot;)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2026/04/best-windows-android-antivirus-for-home.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdl5uhYSJszbofcVk1djrd_O4JfMGhlPufmoAomqo0Gvo7FjcHI03jJfA6Q03f-dibF0oQ2kp_vUAsBIxEkgw7OVMIxdXy6Cuq1t4ge6-U0R8EBASR2a2maB7WPGlX_nHjVfMa2jjoBDkTSu4Kk2tJv5BLgHc_i_CBZee3qFSlz0fHP_ReuLz5ZA0o/s72-c/00FcoWg1aHPphwddd7S5yEj-3.webp" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-728039480896846093</guid><pubDate>Mon, 13 Apr 2026 05:01:00 +0000</pubDate><atom:updated>2026-09-07T10:09:28.265-07:00</atom:updated><title>USB bootable antivirus scanner</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5u7lzy_l5QOnD-iJg1E4tydjzas363ApfLrrWBcZNcL5IbHKUYFFczTAYYjoIpSBdYxREGNCkTcnem06mQKpgctUdbaqzFXjEMFYY4LsIajaSH2lQnHsDvnYhdu4NriSPBYdw7TVjlQcVjeKsHAdjBWg-cyk3ifw6bsyix63Y_UY3w2-wVANF8s2G/s1024/ualinux_rescuepack.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;768&quot; data-original-width=&quot;1024&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5u7lzy_l5QOnD-iJg1E4tydjzas363ApfLrrWBcZNcL5IbHKUYFFczTAYYjoIpSBdYxREGNCkTcnem06mQKpgctUdbaqzFXjEMFYY4LsIajaSH2lQnHsDvnYhdu4NriSPBYdw7TVjlQcVjeKsHAdjBWg-cyk3ifw6bsyix63Y_UY3w2-wVANF8s2G/w400-h300/ualinux_rescuepack.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;A lot of USB bootable antivirus tools have been discontinued, leaving users with limited options. After testing most out there, I found &lt;a href=&quot;https://ualinux.com/en/ubuntu-rescuepack&quot;&gt;UALinux RescuePack&lt;/a&gt; to work the best. You can download it &lt;a href=&quot;https://ualinux.com/en/download/ubuntu-pack/ualinux-rescue-pack/ubuntu-rescue-pack&quot;&gt;here&lt;/a&gt;&amp;nbsp;and prepare a bootable USB using &lt;a href=&quot;https://etcher.balena.io/#download-etcher&quot;&gt;Balena Etcher&lt;/a&gt;. They&#39;re not a familiar name in the U.S. but are a &lt;a href=&quot;https://www.proxmox.com/en/partners/find-partner/all/partner/ualinux-ltd&quot;&gt;silver partner with the reputable company Proxmox&lt;/a&gt;, vouching for their authenticity. RescuePack includes a variety of security scanning tools, although &lt;a href=&quot;https://www.av-test.org/en/antivirus/home-windows/&quot;&gt;BitDefender seems to be the most reliable&lt;/a&gt; at updating malware signatures before running a scan.&lt;/p&gt;&lt;p&gt;P.S. Before booting RescuePack, make sure to &lt;a href=&quot;https://beebom.com/disable-bitlocker-windows/&quot;&gt;disable BitLocker&lt;/a&gt; (takes a while to complete) and reboot into Windows to verify it has been fully disabled.&lt;/p&gt;&lt;p&gt;P.P.S. If you plan to run Vba32, make sure to first open a terminal, go to&amp;nbsp;&lt;i&gt;Preferences&lt;/i&gt; and on the &lt;i&gt;General&lt;/i&gt; tab check &lt;i&gt;Unlimited scrollback&lt;/i&gt;.&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2026/04/usb-bootable-antivirus-scanner.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5u7lzy_l5QOnD-iJg1E4tydjzas363ApfLrrWBcZNcL5IbHKUYFFczTAYYjoIpSBdYxREGNCkTcnem06mQKpgctUdbaqzFXjEMFYY4LsIajaSH2lQnHsDvnYhdu4NriSPBYdw7TVjlQcVjeKsHAdjBWg-cyk3ifw6bsyix63Y_UY3w2-wVANF8s2G/s72-w400-h300-c/ualinux_rescuepack.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-4957040226937945789</guid><pubDate>Sat, 24 Jan 2026 19:03:00 +0000</pubDate><atom:updated>2026-01-24T12:03:14.999-07:00</atom:updated><title>Windows Video / Audio Editing Tools</title><description>&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&amp;nbsp;VLC&lt;/li&gt;&lt;li&gt;Shutter Encoder&lt;/li&gt;&lt;li&gt;Topaz Video AI&lt;/li&gt;&lt;li&gt;MKVToolnix&lt;/li&gt;&lt;li&gt;Avidemux&lt;/li&gt;&lt;li&gt;Lossless Cut&lt;/li&gt;&lt;li&gt;Davinci Resolve&lt;/li&gt;&lt;li&gt;Tenacity&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Other useful apps:&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Explorer&lt;/li&gt;&lt;li&gt;Settings&lt;/li&gt;&lt;li&gt;MyAsus&lt;/li&gt;&lt;li&gt;MSI Afterburner&lt;/li&gt;&lt;li&gt;NVIDIA app&lt;/li&gt;&lt;li&gt;iCue&lt;/li&gt;&lt;li&gt;Brave&lt;/li&gt;&lt;li&gt;Task Manager&lt;/li&gt;&lt;li&gt;HWmonitor&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2026/01/windows-video-audio-editing-tools.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-984079567816218560</guid><pubDate>Sat, 24 Jan 2026 18:56:00 +0000</pubDate><atom:updated>2026-01-24T11:59:01.275-07:00</atom:updated><title>EndeavourOS install notes</title><description>&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&amp;nbsp;Start the installer&lt;/li&gt;&lt;li&gt;Online&lt;/li&gt;&lt;li&gt;Plasma KDE&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://mrbluecoat.blogspot.com/2026/01/endeavouros-fix-for-laggy-behavior.html&quot;&gt;NVIDIA GPU fix&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Include printing support / remove Firefox&lt;/li&gt;&lt;li&gt;Use Grub for bootloader (systemd was buggy)&lt;/li&gt;&lt;li&gt;Select &#39;replace a partition&#39; and select the partition &lt;a href=&quot;https://github.com/saksham-991/Dual-Boot-EndeavourOS-with-Windows&quot;&gt;set up previously from Windows&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Some apps:&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Brave (with extensions BitWarden, GoFullPage, and uBlock Origin)&lt;/li&gt;&lt;li&gt;Thunderbird&lt;/li&gt;&lt;li&gt;OnlyOffice&lt;/li&gt;&lt;li&gt;Featherpad&lt;/li&gt;&lt;li&gt;code-oss (with extensions ESLint, Prettier, One Dark Pro)&lt;/li&gt;&lt;li&gt;GitHub Desktop&lt;/li&gt;&lt;li&gt;pCloud&lt;/li&gt;&lt;li&gt;Trayscale&lt;/li&gt;&lt;li&gt;Transmission QT&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://mrbluecoat.blogspot.com/2025/12/install-vlc-on-endeavouros.html&quot;&gt;VLC&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://mrbluecoat.blogspot.com/2025/12/add-epson-printer-to-endeavouros.html&quot;&gt;Epson&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2026/01/endeavouros-install-notes.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-6575124271146924452</guid><pubDate>Sun, 04 Jan 2026 18:59:00 +0000</pubDate><atom:updated>2026-01-04T11:59:57.624-07:00</atom:updated><title>Install software on EndeavourOS</title><description>&lt;p&gt;&amp;nbsp;First try pacman, then yay with &quot;-bin&quot; suffix:&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;$ sudo pacman -Sy github-desktop&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;error: target not found: github-desktop&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;$&amp;nbsp;yay -S github-desktop-bin&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://mrbluecoat.blogspot.com/2026/01/install-software-on-endeavouros.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-5918681177113920523</guid><pubDate>Sun, 04 Jan 2026 04:52:00 +0000</pubDate><atom:updated>2026-01-03T21:52:34.788-07:00</atom:updated><title>EndeavourOS fix for laggy behavior after install</title><description>&lt;p&gt;If you perform a fresh install of EndeavourOS and the system is laggy (mouse cursor delayed dragging effect) and you have an NVIDIA GPU, &lt;a href=&quot;https://forum.endeavouros.com/t/nvidia-gpu-users-attention-please-june-2025/72058/23&quot;&gt;follow these instructions&lt;/a&gt;.&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2026/01/endeavouros-fix-for-laggy-behavior.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-1219243854894331714</guid><pubDate>Sat, 27 Dec 2025 15:04:00 +0000</pubDate><atom:updated>2025-12-27T08:04:29.672-07:00</atom:updated><title>Best tool to wipe hard drive</title><description>&lt;p&gt;&lt;a href=&quot;https://aban.derobert.net/&quot;&gt;ABAN&lt;/a&gt; is a useful solution to wipe a hard drive. Works as a bootable USB or CD.&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2025/12/best-tool-to-wipe-hard-drive.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-4836377105946273903</guid><pubDate>Sat, 13 Dec 2025 23:43:00 +0000</pubDate><atom:updated>2025-12-13T16:43:56.931-07:00</atom:updated><title>Update EndeavourOS package manager mirrorlist</title><description>&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sudo&amp;nbsp;reflector -p https --sort rate -c US --verbose --save /etc/pacman.d/mirrorlist&lt;/span&gt;&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2025/12/update-endeavouros-package-manager.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-1655195094911330228</guid><pubDate>Sat, 13 Dec 2025 23:32:22 +0000</pubDate><atom:updated>2025-12-13T16:32:52.779-07:00</atom:updated><title>Install VLC on EndeavourOS</title><description>&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sudo pacman -S vlc vlc-plugins-all&lt;/span&gt;&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2025/12/install-vlc-on-endeavouros.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-6130157586006256851</guid><pubDate>Thu, 11 Dec 2025 21:13:00 +0000</pubDate><atom:updated>2025-12-11T14:14:57.436-07:00</atom:updated><title>Add Epson printer to EndeavourOS</title><description>&lt;p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;If the &lt;a href=&quot;https://discovery.endeavouros.com/printers/printers/2021/03/&quot;&gt;official instructions&lt;/a&gt; don&#39;t work for your needs, then do the following:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sudo pacman -S yay&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;yay -S epson-inkjet-printer-escpr&amp;nbsp;epson-inkjet-printer-escpr2&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sudo pacman -Syu cups cups-browsed cups-filters cups-pdf system-config-printer --needed&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sudo systemctl enable --now cups&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# get IP address of printer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# search for &quot;Printers&quot; in the EndeavourOS settings, then click &quot;Add...&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqz-CkVmV-1IPSt2v6dWR79iogesU9HGKlgkAOOwJImQO1BVOxSAbrfhBl-KS7MV4iuFAolIbopZ1F3npTwCYUQNIeqUUnrDTL4qMKnv6YydjBU_beIcUKCEtppWC3jDh4_62SN679D1sC9VH-DUp6cfFil2Tga-4qimPt2KKztiSrV6mAk2vJ8VwP/s931/Screenshot_20251211_140908.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;73&quot; data-original-width=&quot;931&quot; height=&quot;50&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqz-CkVmV-1IPSt2v6dWR79iogesU9HGKlgkAOOwJImQO1BVOxSAbrfhBl-KS7MV4iuFAolIbopZ1F3npTwCYUQNIeqUUnrDTL4qMKnv6YydjBU_beIcUKCEtppWC3jDh4_62SN679D1sC9VH-DUp6cfFil2Tga-4qimPt2KKztiSrV6mAk2vJ8VwP/w640-h50/Screenshot_20251211_140908.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# click &quot;AppSocket/HP JetDirect&quot;, then enter the address as &quot;socket://PRINTER_IP_ADDRESS&quot; and click &quot;Continue with Address...&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEDkevnpA5QV1HagPKvA9dC0Z6417v-amqU7PtMd9mr1YzXTaq23LF0PahhjAg8TtSi_W0EznJybY_q3BSjfG2carloyDHngnZpZufKgh5GjIMZeUYKRwTPoW9GBDm-yZATDnr7C_Ms6RD8bmnn5_ERR04m8IlFggTdzYrASzL_ij1I5l9VuL8otvx/s931/Screenshot_20251211_141108.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;353&quot; data-original-width=&quot;931&quot; height=&quot;242&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEDkevnpA5QV1HagPKvA9dC0Z6417v-amqU7PtMd9mr1YzXTaq23LF0PahhjAg8TtSi_W0EznJybY_q3BSjfG2carloyDHngnZpZufKgh5GjIMZeUYKRwTPoW9GBDm-yZATDnr7C_Ms6RD8bmnn5_ERR04m8IlFggTdzYrASzL_ij1I5l9VuL8otvx/w640-h242/Screenshot_20251211_141108.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# find the printer model in the list, then save and print test page&lt;/span&gt;&lt;/div&gt;</description><link>http://mrbluecoat.blogspot.com/2025/12/add-epson-printer-to-endeavouros.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqz-CkVmV-1IPSt2v6dWR79iogesU9HGKlgkAOOwJImQO1BVOxSAbrfhBl-KS7MV4iuFAolIbopZ1F3npTwCYUQNIeqUUnrDTL4qMKnv6YydjBU_beIcUKCEtppWC3jDh4_62SN679D1sC9VH-DUp6cfFil2Tga-4qimPt2KKztiSrV6mAk2vJ8VwP/s72-w640-h50-c/Screenshot_20251211_140908.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-3863221853216066089</guid><pubDate>Thu, 04 Dec 2025 22:49:00 +0000</pubDate><atom:updated>2025-12-04T15:49:05.536-07:00</atom:updated><title>Play MP3 files on an Amazon Alexa Echo device</title><description>&lt;p&gt;&amp;nbsp;1. Open a web browser and go to either Dropbox or Google Drive. Create a folder and edit the share settings to allow Anyone with the link Viewer permissions.&lt;/p&gt;&lt;p&gt;2. Upload mp3 files to the folder.&lt;/p&gt;&lt;p&gt;3. Open a web browser and go to &lt;a href=&quot;https://www.amazon.com/XdreaM-PlayListPlayer/dp/B079NCQW4W/&quot;&gt;https://www.amazon.com/XdreaM-PlayListPlayer/dp/B079NCQW4W/&lt;/a&gt; and click &quot;Enable&quot;&lt;/p&gt;&lt;p&gt;4. On your Amazon Echo device, say &quot;Alexa, open PLP and create the playlist Example&quot;. Amazon will tell you an access code.&lt;/p&gt;&lt;p&gt;5. Open a web browser and go to &lt;a href=&quot;https://xdream2000.com/alexa/plp/&quot;&gt;https://xdream2000.com/alexa/plp/&lt;/a&gt; , enter the Playlist name &#39;Example&#39; and Access code provided by Alexa and then click &#39;Edit playlist&#39;&lt;/p&gt;&lt;p&gt;6. In the &#39;Playlist&#39; section, paste the share link for each mp3 file from Step 2.&lt;/p&gt;&lt;p&gt;7. (optional) Add your email and password to the account section near the bottom of the page.&lt;/p&gt;&lt;p&gt;8. Save the playlist and wait a minute for the platform to analyze all the songs.&lt;/p&gt;&lt;p&gt;9. On your Amazon Echo device, say &quot;Alexa, open PLP and play Example&quot;&lt;/p&gt;&lt;p&gt;Enjoy!&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2025/12/play-mp3-files-on-amazon-alexa-echo.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-1088174353265149788</guid><pubDate>Fri, 28 Nov 2025 16:21:17 +0000</pubDate><atom:updated>2025-11-28T09:21:48.918-07:00</atom:updated><title>Image sharing site</title><description>&lt;p&gt;&amp;nbsp;A reminder to myself:&amp;nbsp;&lt;a href=&quot;https://catbox.moe/&quot;&gt;https://catbox.moe/&lt;/a&gt;&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2025/11/image-sharing-site.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-2064466373901886696</guid><pubDate>Tue, 04 Nov 2025 23:56:00 +0000</pubDate><atom:updated>2025-11-18T11:57:39.995-07:00</atom:updated><title>EndeavourOS Tip: update pacman to fastest mirrors</title><description>&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;sudo&amp;nbsp;reflector --latest 5 --sort rate --save /etc/pacman.d/mirrorlist&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;i&gt;P.S. Also install EOS Update Notifier for system updates:&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sudo pacman -Suy eos-update-notifier&lt;/span&gt;&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2025/11/endeavouros-tip-update-pacman-to.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-4093856944232444414</guid><pubDate>Mon, 13 Oct 2025 00:00:00 +0000</pubDate><atom:updated>2025-10-12T17:01:05.521-07:00</atom:updated><title>Concatenate multiple MKV videos (or MP4, etc.)</title><description>&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;ffmpeg -loglevel info -f concat -safe 0 -i &amp;lt;(for f in *.mkv; do echo &quot;file &#39;$(pwd)/$f&quot;; done) -c copy output.mkv&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;~ &lt;a href=&quot;https://stackoverflow.com/questions/58290403/how-to-concatenate-all-mkv-files-using-ffmpeg#comment138898533_61426464&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2025/10/concatenate-multiple-mkv-videos-or-mp4.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-7212126247352843252</guid><pubDate>Sat, 09 Aug 2025 23:25:00 +0000</pubDate><atom:updated>2025-08-18T21:09:32.090-07:00</atom:updated><title>Self-Hosted VPN Options</title><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrTu8g7LjOkQe54G1O9bAT3uJHoZrPD7KLMeRDPf1Zk-48mmFoHDRGEe1s6qvDUbdahKK5ICU9nXMDsXWDuWmwSlXW_C0o60oyTagduABFAo4R9p2TYZ30133Y3kB_qfx_GhZDLKU7-2pFq2P4br0QqJDC1s6z_fY-LHfSeFtidCWnZcWpb2Qhtjli/s375/vpn-speed-test.webp&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;234&quot; data-original-width=&quot;375&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrTu8g7LjOkQe54G1O9bAT3uJHoZrPD7KLMeRDPf1Zk-48mmFoHDRGEe1s6qvDUbdahKK5ICU9nXMDsXWDuWmwSlXW_C0o60oyTagduABFAo4R9p2TYZ30133Y3kB_qfx_GhZDLKU7-2pFq2P4br0QqJDC1s6z_fY-LHfSeFtidCWnZcWpb2Qhtjli/s16000/vpn-speed-test.webp&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;As a follow-up to my &lt;a href=&quot;https://mrbluecoat.blogspot.com/2021/04/open-source-gateway-vpn-performance.html&quot;&gt;2021 test&lt;/a&gt;, I wanted to compare various VPN options in regards to bandwidth speed performance. My requirements: self-hosted Linux-based server/exit node &lt;i&gt;(Debian 12, amd64, 1 Xeon Gold CPU @ 3.0 GHz, 1 GB RAM, 10 Gbps bandwidth [&lt;a href=&quot;https://technotim.live/posts/fast-internet-test-cli/&quot;&gt;real-world&lt;/a&gt; average 353 Mbps])&lt;/i&gt;&amp;nbsp;and&amp;nbsp;an Android client &lt;i&gt;(Pixel 8, Android 16, always-on VPN, block connections without VPN)&lt;/i&gt;. The Android device was 775 miles away from the Linux exit node to stress test the latency.&amp;nbsp;&lt;i&gt;Note: all tests were performed as root with no firewall -- in production you would want to apply appropriate security and control measures.&lt;/i&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;________________________________________________________________________&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://www.wireguard.com/&quot; style=&quot;color: #ffa400;&quot;&gt;WireGuard&lt;/a&gt;&amp;nbsp;&lt;/b&gt;+&lt;b&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/naggie/dsnet&quot; style=&quot;color: #ffa400;&quot;&gt;dsnet&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;apt install -y nano wget iptables wireguard&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;qrencode&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;wget https://github.com/naggie/dsnet/releases/download/v0.8.1/dsnet-linux-amd64 -O /usr/local/bin/dsnet&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;chmod +x /usr/local/bin/dsnet&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;dsnet init&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;nano /etc/dsnetconfig.json&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Add &quot;0.0.0.0/0&quot; to the &#39;Networks&#39; array and &quot;8.8.8.8&quot; as the &#39;DNS&#39; setting&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;echo &quot;net.ipv4.ip_forward = 1&quot; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sysctl -p&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;NETDEV=$(ip -o route get 8.8.8.8 | cut -f 5 -d &quot; &quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;iptables -t nat -A POSTROUTING -o $NETDEV -j MASQUERADE&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;iptables -A FORWARD -i dsnet -o $NETDEV -j ACCEPT&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;iptables -A FORWARD -i $NETDEV -o dsnet -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;dsnet up&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;dsnet add example | qrencode -t ansiutf8&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Android device: download WireGuard app from Play Store and scan QR code&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;color: #04ff00;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #04ff00;&quot;&gt;&lt;b&gt;Results:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;VPN off: 580, 530, 560, 570, 550 = average 558 Mbps&lt;/p&gt;&lt;p&gt;VPN on: 87, 79, 98, 78, 62 = average 81 Mbps&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: center;&quot;&gt;________________________________________________________________________&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;&lt;a href=&quot;https://github.com/juanfont/headscale&quot;&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;Headscale&lt;/span&gt;&lt;/a&gt; +&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/tailscale/tailscale&quot;&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;Tailscale&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;i&gt;&lt;span style=&quot;color: red;&quot;&gt;Warning&lt;/span&gt;: if you use the commercial Tailscale platform always run with &quot;--no-logs-no-support&quot;, otherwise&amp;nbsp;&lt;a href=&quot;https://news.ycombinator.com/item?id=44153792&quot;&gt;they monitor your traffic&lt;/a&gt;.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;apt install -y wireguard-tools&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;networkd-dispatcher ethtool&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;curl -sLO&amp;nbsp;https://github.com/juanfont/headscale/releases/download/v0.26.1/headscale_0.26.1_linux_amd64.deb&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;apt install ./headscale*.deb&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;echo &#39;{&quot;acls&quot;:[{&quot;action&quot;:&quot;accept&quot;,&quot;src&quot;:[&quot;*&quot;],&quot;dst&quot;:[&quot;*:*&quot;]}]}&#39; &amp;gt; /etc/headscale/acl.hujson&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;chmod 644 /etc/headscale/acl.hujson&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;umask 077&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;wg genkey &amp;gt; /etc/headscale/private.key&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;systemctl enable headscale&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;nano /etc/headscale/config.yaml&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# make these edits:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;i&gt;server_url: https://vpn.mydomain.com:443&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;i&gt;listen_addr: 0.0.0.0:443&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;i&gt;grpc_listen_addr: 0.0.0.0:50443&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;i&gt;allocation: random&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;i&gt;acme_email: &quot;youremail@mydomain.com&quot;&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;i&gt;tls_letsencrypt_hostname: &quot;vpn.mydomain.com&quot;&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;i&gt;policy &amp;gt; path: &quot;/etc/headscale/acl.hujson&quot;&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;i&gt;base_domain: mydomain.com&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;i&gt;magic_dns: false&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;systemctl restart headscale &amp;amp;&amp;amp; sleep 10 &amp;amp;&amp;amp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;systemctl status headscale&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;headscale users create example&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;curl -fsSL https://tailscale.com/install.sh | sh&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;echo &#39;net.ipv4.ip_forward = 1&#39; | tee -a /etc/sysctl.d/99-tailscale.conf&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;echo &#39;net.ipv6.conf.all.forwarding = 1&#39; | tee -a /etc/sysctl.d/99-tailscale.conf&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sysctl -p /etc/sysctl.d/99-tailscale.conf&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;printf &#39;#!/bin/sh\n\nethtool -K %s rx-udp-gro-forwarding on rx-gro-list off \n&#39; &quot;$(ip route show 0/0 | cut -f5 -d&quot; &quot; | head -n1)&quot; | tee /etc/networkd-dispatcher/routable.d/50-tailscale&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;chmod 755 /etc/networkd-dispatcher/routable.d/50-tailscale&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;/etc/networkd-dispatcher/routable.d/50-tailscale&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;tailscale up&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;--advertise-exit-node&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;--accept-dns=false&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;--login-server=https://vpn.mydomain.com:443&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# It will provide a URL for you to open. Click on it and copy the command to authenticate the request. Paste the command into your Headscale server terminal (changing USERNAME to the user you created in the step above).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;headscale nodes approve-routes --identifier 1 --routes 0.0.0.0/0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Android device: install Tailscale from the Google Play Store, open it. Tap &quot;Get Started&quot;. Tap &quot;OK&quot; at the VPN prompt. At the screen with the &quot;Log in&quot; button, quickly tap the gear icon in the top-right corner. (If you wait too long and it redirects you to a login page with various SSO options, tap the back button to go back to the prior screen).&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;On the Settings page, tap Accounts.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;On the Accounts page, tap the three vertical button icon in the top-right corner and select &#39;Use an alternate server&#39;.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Type https://vpn.mydomain.com and then tap &quot;Add account&quot;.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Copy the resulting command shown to your Headscale server to authenticate.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Once you get the Node yournode registered message, go back to the mobile app. In the EXIT NODE dropdown, select the exit node you created above. It should now appear in blue at the top of the Tailscale app screen and you should now be connected!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;color: #04ff00;&quot;&gt;&lt;b&gt;Results:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;VPN off: 550, 600, 590, 620, 570 = average 586 Mbps&lt;/p&gt;&lt;p&gt;VPN on: 86, 90, 78, 110, 94 = average 92 Mbps&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-align: center;&quot;&gt;________________________________________________________________________&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;https://gitlab.com/openconnect/ocserv&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;OpenConnect ocserv&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&amp;nbsp;&lt;i&gt;(or &lt;a href=&quot;https://github.com/bjdgyc/anylink&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;AnyLink&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;)&lt;/i&gt; + &lt;a href=&quot;https://www.cisco.com/site/us/en/products/security/secure-client/index.html&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;Cisco Secure Client (AnyConnect)&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;apt install -y iptables-persistent&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;certbot&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;ocserv&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;tee -a /etc/sysctl.conf &amp;lt;&amp;lt;EOF&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Enable routing&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.ip_forward = 1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Protect from IP Spoofing&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.conf.all.rp_filter = 1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.conf.default.rp_filter = 1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Ignore ICMP broadcast requests&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.icmp_echo_ignore_broadcasts = 1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Protect from bad icmp error messages&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.icmp_ignore_bogus_error_responses = 1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Disable source packet routing&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.conf.all.accept_source_route = 0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv6.conf.all.accept_source_route = 0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.conf.default.accept_source_route = 0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv6.conf.default.accept_source_route = 0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Block SYN attacks&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.tcp_syncookies = 1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.tcp_max_syn_backlog = 2048&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.tcp_synack_retries = 2&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.tcp_syn_retries = 5&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Log Martians&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.conf.all.log_martians = 1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.icmp_ignore_bogus_error_responses = 1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Ignore send redirects&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.conf.all.send_redirects = 0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.conf.default.send_redirects = 0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Ignore ICMP redirects&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.conf.all.accept_redirects = 0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv6.conf.all.accept_redirects = 0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.conf.default.accept_redirects = 0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv6.conf.default.accept_redirects = 0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.conf.all.secure_redirects = 0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;net.ipv4.conf.default.secure_redirects = 0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;EOF&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sysctl -p&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;iptables -t nat -A POSTROUTING -j MASQUERADE&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;iptables-save &amp;gt; /etc/iptables/rules.v4&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;mkdir /root/certificates&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;chmod 700 /root/certificates&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;cd /root/certificates&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;tee ca.template &amp;lt;&amp;lt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;organization = OID-6eec9b9f&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;cn = Example CA&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;serial = `date &quot;+%s&quot;`&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;expiration_days = -1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;ca&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;signing_key&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;cert_signing_key&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;crl_signing_key&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sleep 1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;tee example.template &amp;lt;&amp;lt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;organization = OID-6eec9b9f&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;cn = Example Router&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;dns_name = vpn.mydomain.com&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;ip_address = $(curl -4 ifconfig.me)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;serial = `date &quot;+%s&quot;`&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;expiration_days = -1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;signing_key&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;encryption_key&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;tls_www_server&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;certtool --generate-privkey --outfile ca-privkey.pem&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;certtool --generate-self-signed --load-privkey ca-privkey.pem --template ca.template --outfile ca-certificate.pem&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;certtool --generate-privkey --outfile example-privkey.pem&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;certtool --generate-certificate --load-privkey example-privkey.pem --load-ca-certificate ca-certificate.pem --load-ca-privkey ca-privkey.pem --template example.template --outfile example-certificate.pem&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;mkdir -p /etc/ocserv/&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;cp ca-certificate.pem example-certificate.pem example-privkey.pem /etc/ocserv/&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;tee /etc/ocserv/ocserv.conf &amp;lt;&amp;lt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# ocserv config options: https://ocserv.gitlab.io/www/manual.html#files&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;auth = &quot;certificate&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;tcp-port = 443&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;udp-port = 443&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;run-as-user = nobody&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;run-as-group = daemon&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;use-occtl = true&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;isolate-workers = false&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;socket-file = /run/ocserv-socket&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;server-cert = /etc/ocserv/example-certificate.pem&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;server-key = /etc/ocserv/example-privkey.pem&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;ca-cert = /etc/ocserv/ca-certificate.pem&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# read user id from cert&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;cert-user-oid = 0.9.2342.19200300.100.1.1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# read organization from cert&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;cert-group-oid = 2.5.4.11&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# log level&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#&amp;nbsp; &amp;nbsp;0 default (same as basic)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#&amp;nbsp; &amp;nbsp;1 basic&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#&amp;nbsp; &amp;nbsp;2 info&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#&amp;nbsp; &amp;nbsp;3 debug&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#&amp;nbsp; &amp;nbsp;4 http&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#&amp;nbsp; &amp;nbsp;8 sensitive&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#&amp;nbsp; &amp;nbsp;9 TLS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;log-level = 1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;ipv4-network = 10.20.30.0/24&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;ipv4-netmask = 255.255.255.0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# set router as internet gateway&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;default-domain = vpn.mydomain.com&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;predictable-ips = true&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;route = default&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;restrict-user-to-routes = true&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;tunnel-all-dns = true&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;dns = 8.8.8.8&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# tun name&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;device = example&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# gnutls priority string: https://gnutls.org/manual/html_node/Priority-Strings.html&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;tls-priorities = &quot;SECURE128:+SECURE192:-VERS-SSL3.0:-VERS-TLS1.0:-VERS-TLS1.1:-DHE-RSA&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# DoS protection&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;min-reauth-time = 300&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;max-ban-score = 80&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;ban-reset-time = 1200&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;cookie-timeout = 300&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;deny-roaming = true&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;rekey-time = 172800&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;rekey-method = ssl&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# prevent legacy CISCO clients and openconnect clients &amp;lt; 7.08&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;cisco-client-compat = false&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;dtls-legacy = false&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;client-bypass-protocol = false&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# other various settings&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;auth-timeout = 240&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;idle-timeout = 1200&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;session-timeout = 86400&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;mobile-idle-timeout = 2400&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;rate-limit-ms = 100&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;stats-report-time = 360&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;server-stats-reset-time = 604800&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;keepalive = 32400&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;dpd = 90&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;mobile-dpd = 1800&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;switch-to-tcp-timeout = 25&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# unused settings&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#mtu = 1420&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#max-clients = 50&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#max-same-clients = 2&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;systemctl start ocserv.service&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;systemctl status ocserv.service&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;systemctl enable ocserv.service&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;ocpasswd -c /etc/ocserv/ocpasswd jdoe &amp;lt;&amp;lt;&amp;lt; `openssl rand -base64 47`&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;certtool --generate-privkey --outfile jdoe-privkey.pem&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;tee jdoe.template &amp;lt;&amp;lt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;organization = OID-6eec9b9f&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;cn = John Doe&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;uid = jdoe&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;tls_www_client&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;signing_key&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;encryption_key&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Apple cert expiration max is 397: https://support.apple.com/en-us/HT211025&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;expiration_days = 397&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;certtool --generate-certificate --load-privkey jdoe-privkey.pem --load-ca-certificate ca-certificate.pem --load-ca-privkey ca-privkey.pem --template jdoe.template --outfile jdoe-certificate.pem&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# iOS supported ciphers: AES128, DES, 3DES, CAST, RC4&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# https://opensource.apple.com/source/CommonCrypto/CommonCrypto-36064/CommonCrypto/CommonCryptor.h&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Cisco client supported ciphers: AES, 3DES, MD5, SHA1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# https://www.cisco.com/c/en/us/td/docs/iosxr/ncs5500/security/72x/b-system-security-cg-ncs5500-72x/implementing-secure-shell.html#concept_79A76470F2C24487844E3B42F0B7B1B7&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Triple DES is deprecated for all new applications and usage is disallowed after 2023&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# https://www.cryptomathic.com/news-events/blog/3des-is-officially-being-retired&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# ...so we&#39;ll use aes-128&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;certtool --to-p12 --load-privkey jdoe-privkey.pem --load-certificate jdoe-certificate.pem --pkcs-cipher aes-128 --outfile jdoe.p12 --outder --password=YOURCERTPASSWORDHERE --p12-name=jdoe&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Copy the&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;jdoe&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;.p12 file to the Android device. Install the Cisco Secure Client-AnyConnect from the Play Store and open it. Tap the three dots in the top-right and choose &#39;Settings&#39; then uncheck &#39;Block Untrusted Servers&#39;. Go back to the main screen and tap on &#39;Connections&#39; then the plus sign (+). Add a description, then the server address vpn.mydomain.com. Tap on &#39;Advanced Preferences&#39; then &#39;Certificate&#39; then the blue &#39;Import&#39; button at the bottom then &#39;File&#39; then select the&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;jdoe&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;.p12 certificate. After the certificate is imported into the Cisco app storage, tap on it in the list to select it, then tap &#39;Done&#39; twice and the back button to get to the main app screen. Tap the &#39;AnyConnect VPN&#39; slider to enable the VPN.&lt;/span&gt;&lt;/div&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;i&gt;&lt;span style=&quot;color: red;&quot;&gt;Result&lt;/span&gt;: I couldn&#39;t get this to work with the Cisco Secure Client 5.1.9.115 in the Play Store&lt;/i&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-align: center;&quot;&gt;________________________________________________________________________&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://github.com/openziti/ziti&quot;&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;OpenZiti&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;echo &quot;net.ipv4.ip_forward = 1&quot; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sysctl -p&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;apt install -y jq&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;export ZITI_NETWORK=&quot;example&quot;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;export ZITI_CTRL_EDGE_ADVERTISED_ADDRESS=vpn.mydomain.com&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;export ZITI_CTRL_EDGE_ADVERTISED_PORT=8800&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;export ZITI_ROUTER_ADVERTISED_ADDRESS=vpn.mydomain.com&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;export ZITI_ROUTER_PORT=9090&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;source /dev/stdin &amp;lt;&amp;lt;&amp;lt; &quot;$(wget -qO- https://get.openziti.io/ziti-cli-functions.sh)&quot;; expressInstall&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;startController&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;startRouter&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;zitiLogin&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;mv /root/.ziti/quickstart/example/ziti-bin/ziti-v*/ziti /usr/local/bin/&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;ziti edge create identity &quot;NewUser&quot; -o NewUser.jwt&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Android device: copy the NewUser.jwt file to the device and then install the &#39;Ziti Mobile Edge&#39; app from the Play Store and open. Tap the &#39;Add Identity&#39; icon in the top-right corner and choose &#39;Select JWT File&#39; and locate the NewUser.jwt file.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style=&quot;color: red;&quot;&gt;Result&lt;/span&gt;: Says connected but no Internet access on the Android device.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-align: center;&quot;&gt;________________________________________________________________________&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;b&gt;&lt;a href=&quot;https://github.com/netbirdio/netbird&quot;&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;NetBird&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;echo &quot;net.ipv4.ip_forward = 1&quot; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sysctl -p&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;apt install -y jq&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;curl -fsSL https://get.docker.com | sh&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;export NETBIRD_DOMAIN=vpn.mydomain.com; curl -fsSL https://github.com/netbirdio/netbird/releases/latest/download/getting-started-with-zitadel.sh | bash&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Follow the instructions from the output of the prior command to login to the NetBird portal and change the default admin password&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;curl -fsSL https://pkgs.netbird.io/install.sh | sh&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;netbird up --management-url https://vpn.mydomain.com&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Click the three dots to the right of the newly added peer and choose &#39;Set Up Exit Node&#39; then in the groups dropdown choose All.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Android device:&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;install the NetBird app from the Play Store and open. Tap the three-bar icon in the top-left corner and choose &#39;Change Server&#39; (tap Yes when prompted for confirmation). In the Server textbox set https://vpn.mydomain.com:443&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Once verified, you can tap the big grey circle in the middle of the app to connect. If you get an error, disable Always-On VPN and then try again and you should be prompted to login with your admin credentials. After you authenticate you can restore the Always-On VPN settings.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: #04ff00;&quot;&gt;&lt;b&gt;Results:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;VPN off: 600, 550, 590, 630, 550 = average 584 Mbps&lt;/p&gt;&lt;p&gt;VPN on: 79, 89, 91, 35, 64 = average 72 Mbps&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;text-align: center;&quot;&gt;________________________________________________________________________&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;a href=&quot;https://github.com/Jigsaw-Code/?q=outline&quot;&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;Outline VPN&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;echo &quot;net.ipv4.ip_forward = 1&quot; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sysctl -p&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;iptables -I INPUT -j ACCEPT&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;SB_IMAGE=oreoluwa/shadowbox:daily sudo --preserve-env bash -c &quot;$(wget -qO- https://raw.githubusercontent.com/EricQmore/installer/main/install_server.sh)&quot; install_server.sh&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# on desktop:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#&amp;nbsp; &amp;nbsp;https://s3.amazonaws.com/outline-releases/manager/linux/stable/Outline-Manager.AppImage&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#&amp;nbsp; &amp;nbsp;./Outline-Manager.AppImage --no-sandbox&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#&amp;nbsp; &amp;nbsp;click on &quot;Set Up&quot; on &quot;Set up Outline anywhere tile&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#&amp;nbsp; &amp;nbsp;paste code from Oracle instance terminal&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#&amp;nbsp; &amp;nbsp;click on the share icon on one of the keys in the Access Keys list&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#&amp;nbsp; &amp;nbsp;download Outline VPN app from Play Store and paste access key into it to connect&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: #04ff00;&quot;&gt;&lt;b&gt;Results:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;VPN off: 610, 580, 610, 600, 590 = average 598 Mbps&lt;/p&gt;&lt;p&gt;VPN on: 15, 12, 15, 31, 15 = average 18 Mbps&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;text-align: center;&quot;&gt;________________________________________________________________________&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;a href=&quot;https://github.com/gravitl/netmaker&quot;&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;Netmaker&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#&amp;nbsp;add a Wildcard DNS record to your domain (i.e. an &#39;A&#39; record of &#39;*&#39; with IP address of your server IP address)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;wget -qO /root/nm-quick.sh https://raw.githubusercontent.com/gravitl/netmaker/master/scripts/nm-quick.sh &amp;amp;&amp;amp; sudo chmod +x /root/nm-quick.sh &amp;amp;&amp;amp; sudo /root/nm-quick.sh&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Select option 2 to use a custom domain and enter mydomain.com&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# After the installation completes, you will be prompted to login to the dashboard with a provided URL. Create a login and verify the server is listed as a Gateway&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Android device:&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;install the Netmaker RAC app from the Play Store and open.&amp;nbsp;Ensure the &#39;Self-hosted&#39; box is highlighted and then enter server api.mydomain.com with the username and password you created in the previous step to login to the dashboard.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span style=&quot;color: red;&quot;&gt;Result&lt;/span&gt;: throws a generic error message; if I use an IP address instead of the domain it says failure in SSL library&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;text-align: center;&quot;&gt;________________________________________________________________________&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;a href=&quot;https://github.com/zerotier/ZeroTierOne&quot;&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;ZeroTier&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span style=&quot;color: red;&quot;&gt;Result&lt;/span&gt;: &lt;a href=&quot;https://docs.zerotier.com/selfhosting/#roots&quot;&gt;their documentation&lt;/a&gt; says &quot;You can host your own roots (&quot;moons&quot;) in addition to ZeroTier&#39;s, but we can&#39;t provide support for removing ZeroTier&#39;s roots except to enterprise customers. The mobile apps don&#39;t currently support custom roots.&quot;&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;text-align: center;&quot;&gt;________________________________________________________________________&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;a href=&quot;https://github.com/n42n/n3n&quot;&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;n3n&lt;/span&gt;&lt;/a&gt;&amp;nbsp;+ &lt;a href=&quot;https://github.com/switch-iot/hin2n&quot;&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;Hin2n&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;apt install -y iptables&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;echo &quot;net.ipv4.ip_forward = 1&quot; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sysctl -p&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;iptables -t nat -A POSTROUTING -j MASQUERADE&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;useradd -m -s /bin/bash n3n&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;echo &quot;n3n ALL=(ALL) NOPASSWD: ALL&quot; &amp;gt;&amp;gt; /etc/sudoers&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;cd /tmp&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;wget https://github.com/n42n/n3n/releases/download/3.4.4/n3n_3.4.4-1_amd64.deb&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;apt install ./n3n_3.4.4-1_amd64.deb&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;systemctl start n3n-supernode &amp;amp;&amp;amp; systemctl enable n3n-supernode &amp;amp;&amp;amp; systemctl status n3n-supernode&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;tee /etc/n3n/examplenetwork.conf &amp;lt;&amp;lt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;[community]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;name=examplenetwork&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;key=examplepassword&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;supernode=$(curl -s -4 ifconfig.me):7654&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sed -i &#39;s/%i/%i -r/&#39; /usr/lib/systemd/system/n3n-edge@.service&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;systemctl start n3n-edge@examplenetwork &amp;amp;&amp;amp; systemctl enable n3n-edge@examplenetwork &amp;amp;&amp;amp; systemctl status n3n-edge@examplenetwork&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;n3nctl -s examplenetwork supernodes&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;n3nctl -s examplenetwork edges&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;ip a&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Note the non-routable IP address of the &#39;examplenetwork&#39; network interface (e.g. 10.1.2.3)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Android device:&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;install the Hin2n apk file from GitHub and open.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;click + in top right, give VPN name, set N2N version to &quot;v3&quot;, set supernode address to public IP of your server and port 7654, community is examplenetwork and encrypt key is examplepassword, and check &#39;Get IP from supernode&#39;. Check the box &#39;More settings&#39; and set the Gateway IP address to the &#39;ip a&#39; value above and set a DNS server IP address (e.g. 8.8.8.8),&amp;nbsp;then Save. C&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;lick on link icon to connect and it will say &#39;[OK] edge&#39;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: #04ff00;&quot;&gt;&lt;b&gt;Results:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;VPN off: 630, 600, 560, 630, 560 = average 596 Mbps&lt;/p&gt;&lt;p&gt;VPN on: 28, 35, 37, 18, 18 = average 27 Mbps&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;text-align: center;&quot;&gt;________________________________________________________________________&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;a href=&quot;https://github.com/amnezia-vpn/amneziawg-linux-kernel-module&quot;&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;AmneziaWG&lt;/span&gt;&lt;/a&gt;&amp;nbsp;+&amp;nbsp;&lt;a href=&quot;https://github.com/wgtunnel/wgtunnel&quot;&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;WG Tunnel&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;apt&amp;nbsp;update&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;apt full-upgrade -y&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;reboot&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;apt install -y software-properties-common python3-launchpadlib gnupg2 linux-headers-$(uname -r) iptables qrencode openresolv&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 57290828&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;echo &quot;deb https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu focal main&quot; | tee -a /etc/apt/sources.list&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;echo &quot;deb-src https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu focal main&quot; | tee -a /etc/apt/sources.list&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;apt update&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;apt install -y amneziawg&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;reboot&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;echo &quot;net.ipv4.ip_forward = 1&quot; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sysctl -p&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;mkdir -p /etc/amnezia/amneziawg/clients&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;umask 077&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;awg genkey | tee /etc/amnezia/amneziawg/server.key | awg pubkey &amp;gt; /etc/amnezia/amneziawg/server.key.pub&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;awg genkey | tee /etc/amnezia/amneziawg/clients/mobile.key | awg pubkey | tee /etc/amnezia/amneziawg/clients/mobile.key.pub&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# server&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;tee -a /etc/amnezia/amneziawg/wg0.conf &amp;lt;&amp;lt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;[Interface]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;PrivateKey = $(cat /etc/amnezia/amneziawg/server.key)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Address = 10.0.0.1/32&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;ListenPort = 51820&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;DNS = 8.8.8.8, 8.8.4.4&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;SaveConfig = true&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Jc = 4&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Jmin = 8&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Jmax = 80&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;S1 = 25&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;S2 = 75&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;H1 = 123&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;H2 = 456&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;H3 = 789&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;H4 = 101112&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;[Peer]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;PublicKey = $(cat /etc/amnezia/amneziawg/clients/mobile.key.pub)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;AllowedIPs = 10.0.0.0/24&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;PersistentKeepalive = 25&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;awg-quick up wg0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;systemctl enable awg-quick@wg0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# client&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;tee -a /etc/amnezia/amneziawg/clients/mobile.conf &amp;lt;&amp;lt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;[Interface]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;PrivateKey = $(cat /etc/amnezia/amneziawg/clients/mobile.key)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Address = 10.0.0.2/32&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;DNS = 8.8.8.8, 8.8.4.4&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Jc = 4&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Jmin = 8&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Jmax = 80&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;S1 = 25&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;S2 = 75&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;H1 = 123&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;H2 = 456&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;H3 = 789&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;H4 = 101112&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;[Peer]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;PublicKey = $(cat /etc/amnezia/amneziawg/server.key.pub)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;AllowedIPs = 0.0.0.0/0, ::/0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Endpoint = $(curl -s -4 ifconfig.me):51820&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;PersistentKeepalive = 25&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;qrencode -t ansiutf8 &amp;lt; /etc/amnezia/amneziawg/clients/mobile.conf&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;Android device:&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;install the WG Tunnel app from the Play Store and open. Tap the plus (+) button to load the configuration via QR code. You should then be able to connect&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: #04ff00;&quot;&gt;&lt;b&gt;Results:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;VPN off: 560, 630, 550, 600, 550 = average 578 Mbps&lt;/p&gt;&lt;p&gt;VPN on: 79, 89, 91, 35, 64 = average 72 Mbps&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;span style=&quot;color: #01ffff;&quot;&gt;Note&lt;/span&gt;: AmneziaWG has their own app on the Play Store but I found it to be slower than WG Tunnel.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-align: center;&quot;&gt;________________________________________________________________________&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://github.com/openvpn&quot;&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;OpenVPN&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;wget https://git.io/vpn -O openvpn-install.sh &amp;amp;&amp;amp; bash openvpn-install.sh&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# select UDP mode&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# transfer client ovpn file to Android device&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Android device: download OpenVPN Connect app from Play Store, open, and agree to terms. On the &#39;Upload File&#39; tab, tap &#39;Browse&#39; and select the ovpn file you downloaded in the prior step. Then tap &#39;Connect&#39;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;color: #04ff00;&quot;&gt;&lt;b&gt;Results:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;VPN off:&amp;nbsp;610, 620, 590, 570, 580 = average 594 Mbps&lt;/p&gt;&lt;p&gt;VPN on: 58, 61, 69, 52, 62 = average 61 Mbps&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;text-align: center;&quot;&gt;________________________________________________________________________&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;a href=&quot;https://github.com/libreswan/libreswan&quot;&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;Libreswan&lt;/span&gt;&lt;/a&gt;&amp;nbsp;+&amp;nbsp;&lt;a href=&quot;https://github.com/strongswan&quot;&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;strongSwan&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;wget https://get.vpnsetup.net -O vpn.sh &amp;amp;&amp;amp; sh vpn.sh&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# transfer vpnclient.sswan file to Android device&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Android device: download strongSwan VPN Client app from Play Store, open, and tap the three dots in the top-right corner and choose &#39;Import VPN profile&#39; and select the vpnclient.sswan file in the prior step. Tap &#39;Import Certificate From VPN Profile&#39;, keep default of &#39;VPN &amp;amp; app user certificate&#39; option and then tap &#39;OK&#39; twice. Then a new screen will prompt to &#39;Choose certificate&#39; and you&#39;ll be given the option of the newly imported certificate; choose it and tap &#39;Select&#39; then tap &#39;Import&#39; in the top-right corner. Finally, tap the newly added VPN option in the list and accept all the prompts. You should now be connected.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: #04ff00;&quot;&gt;&lt;b&gt;Results:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;VPN off:&amp;nbsp;580, 610, 580, 640, 570 = average 596 Mbps&lt;/p&gt;&lt;p&gt;VPN on: 67, 68, 57, 68, 31 = average 58 Mbps&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-align: center;&quot;&gt;________________________________________________________________________&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://github.com/vpnhood/VpnHood&quot;&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;VpnHood&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;su -c &quot;bash &amp;lt;( wget -qO- https://github.com/vpnhood/VpnHood.App.Server/releases/latest/download/VpnHoodServer-linux-x64.sh)&quot;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;/opt/VpnHoodServer/vhserver gen&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# copy the &#39;--- AccessKey ---&#39; string that starts with &#39;vh://&#39; to a secure location&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Android device: download the &#39;VpnHood! Client&#39; app from Play Store &lt;i&gt;(not the &#39;VpnHood! Connect&#39; app)&lt;/i&gt; and open. Tap on &#39;Server&#39; at the bottom then tap &#39;Add server&#39; and paste the &#39;vh://....&#39; value from the previous step. If you get an error while initializing, temporarily disable Always-on VPN in the Android settings and retry.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;color: #04ff00;&quot;&gt;&lt;b&gt;Results:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;VPN off: 590, 540, 630, 590, 590 = average 588 Mbps&lt;/p&gt;&lt;p&gt;VPN on: 75, 77, 80, 63, 73 = average 74 Mbps&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-align: center;&quot;&gt;________________________________________________________________________&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://github.com/txthinking/brook&quot;&gt;&lt;span style=&quot;color: #ffa400;&quot;&gt;Brook&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;echo &quot;net.ipv4.ip_forward = 1&quot; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sysctl -p&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;bash &amp;lt;(curl https://bash.ooo/nami.sh)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;nami install joker brook&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;joker brook server --listen :9999 --password hello&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Android device: download the &lt;a href=&quot;https://github.com/txthinking/brook/releases/latest/download/Brook.apk&quot;&gt;Android APK file&lt;/a&gt; and &lt;a href=&quot;https://www.wikihow.com/Allow-Apps-from-Unknown-Sources-on-Android&quot;&gt;install it&lt;/a&gt;. A free account via email is required (you can use an anonymous email service like &lt;a href=&quot;https://temp-mail.org/&quot;&gt;TempMail&lt;/a&gt;). Once logged in, tap the plus (+) icon in the top-right corner. Enter the IP address of the server and the port the server is listening on (9999 in this example) as well as the password indicated in the server command above (&#39;hello&#39; in this example), then tap &#39;Add&#39;. Tap &#39;Connect&#39; and you should see an astronaut sitting on a rocket indicating the connection was successful.&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;i&gt;&lt;span style=&quot;color: #01ffff;&quot;&gt;Note&lt;/span&gt;: the app crashed once during my testing but otherwise seemed stable.&lt;/i&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;color: #04ff00;&quot;&gt;&lt;b&gt;Results:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;VPN off: 560, 570, 460, 460, 590 = average 528 Mbps&lt;/p&gt;&lt;p&gt;VPN on: 300, 282, 252, 298, 321 = average 291 Mbps&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2025/08/self-hosted-vpn-options.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrTu8g7LjOkQe54G1O9bAT3uJHoZrPD7KLMeRDPf1Zk-48mmFoHDRGEe1s6qvDUbdahKK5ICU9nXMDsXWDuWmwSlXW_C0o60oyTagduABFAo4R9p2TYZ30133Y3kB_qfx_GhZDLKU7-2pFq2P4br0QqJDC1s6z_fY-LHfSeFtidCWnZcWpb2Qhtjli/s72-c/vpn-speed-test.webp" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-6420215352584627011</guid><pubDate>Fri, 04 Jul 2025 21:08:00 +0000</pubDate><atom:updated>2025-07-04T14:08:20.866-07:00</atom:updated><title>gokrazy: a minimal OS for Go programs (and containers)</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxzn-kwJ5cy2CuGOWMspIE2naMRVKT9u0f-imlGU10duccWq95uJ23vOsYJQAAAIkt3GXctYrw8haMniKnO3_vMvbmu0TCBk8SHWzq0PdknnaBL9iPoqfyG97ecz_9Hm9sMVEi9t8Q2sTrVFZInfEMhLxFtFyklRZH6Y3Jm3v-ig6RowR3rm9epKBA/s6812/gk.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;6812&quot; data-original-width=&quot;6275&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxzn-kwJ5cy2CuGOWMspIE2naMRVKT9u0f-imlGU10duccWq95uJ23vOsYJQAAAIkt3GXctYrw8haMniKnO3_vMvbmu0TCBk8SHWzq0PdknnaBL9iPoqfyG97ecz_9Hm9sMVEi9t8Q2sTrVFZInfEMhLxFtFyklRZH6Y3Jm3v-ig6RowR3rm9epKBA/w184-h200/gk.jpg&quot; width=&quot;184&quot; /&gt;&lt;/a&gt;&lt;/div&gt;In addition to an adorable mascot, &lt;a href=&quot;https://github.com/gokrazy/gokrazy&quot;&gt;gokrazy&lt;/a&gt; has some cool features:&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;An entire operating system that can run on AMD64/ARM64 bare metal with only &lt;b&gt;five&lt;/b&gt; system executables (&lt;b&gt;dhcp&lt;/b&gt;, &lt;b&gt;heartbeat&lt;/b&gt;, &lt;b&gt;init&lt;/b&gt;&amp;nbsp;[which starts a &lt;a href=&quot;https://gokrazy.org/overview.png&quot;&gt;lightweight web interface&lt;/a&gt;], &lt;b&gt;ntp&lt;/b&gt;,&amp;nbsp;&lt;b&gt;randomd&lt;/b&gt;) and then your choice of userland programs -- common options include:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/gokrazy/hello&quot;&gt;hello&lt;/a&gt;: simple example hello world program&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/gokrazy/mkfs&quot;&gt;mkfs&lt;/a&gt;: to automatically expand the optional permanent partition&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/gokrazy/serial-busybox&quot;&gt;serial-busybox&lt;/a&gt;: a&amp;nbsp;statically compiled standalone busybox binary, for debugging on the serial port&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/gokrazy/fbstatus&quot;&gt;fbstatus&lt;/a&gt;:&amp;nbsp;graphically shows the gokrazy system status on the Linux frame buffer, which is typically available via HDMI&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/gokrazy/breakglass&quot;&gt;breakglass&lt;/a&gt;: a debugging executable that allows for SCP and SSH access&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/gokrazy/podman&quot;&gt;podman&lt;/a&gt;:&amp;nbsp;container engine&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://gokrazy.org/packages/tailscale/&quot;&gt;tailscale&lt;/a&gt;: VPN&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://gokrazy.org/packages/caddy-http-server/&quot;&gt;caddy&lt;/a&gt;: HTTP server&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://gokrazy.org/packages/minio/&quot;&gt;minio&lt;/a&gt;: object storage&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://gokrazy.org/packages/prometheus/&quot;&gt;prometheus&lt;/a&gt;:&amp;nbsp;monitoring system and time series database&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Immutable (read-only) root filesystem and&amp;nbsp;no C runtime dramatically reduce your security vulnerability footprint&lt;/li&gt;&lt;li&gt;Current Linux kernel (new versions are typically available &amp;lt; 24h after upstream release)&lt;/li&gt;&lt;li&gt;Native update capability with A/B partitioning scheme&lt;/li&gt;&lt;li&gt;Minimal state and configuration&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Here&#39;s a basic example on an x86 AMD64&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/Next_Unit_of_Computing&quot;&gt;NUC&lt;/a&gt; device (which I&#39;ll call the &quot;production machine&quot;):&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;On another Linux machine (which I&#39;ll call the &quot;build machine&quot;), make sure you have &lt;a href=&quot;https://go.dev/dl/&quot;&gt;Go version 1.24 or higher&lt;/a&gt; installed: &lt;span style=&quot;font-family: courier;&quot;&gt;go version&lt;/span&gt;&lt;/li&gt;&lt;li&gt;If they don&#39;t exist already, create an SSH keypair on the build machine: &lt;span style=&quot;font-family: courier;&quot;&gt;ssh-keygen&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Fork&amp;nbsp;&lt;a href=&quot;https://github.com/gokrazy/hello&quot;&gt;https://github.com/gokrazy/hello&lt;/a&gt; and then modify the &lt;b&gt;go.mod&lt;/b&gt; file to indicate the new repo name, then &lt;a href=&quot;https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release&quot;&gt;create a new release&lt;/a&gt;&amp;nbsp;of the hello example app as &lt;b&gt;v1.0.0&lt;/b&gt;&lt;/li&gt;&lt;li&gt;Install &lt;b&gt;gok&lt;/b&gt;, the gokrazy CLI tool:&amp;nbsp;&lt;span style=&quot;font-family: courier;&quot;&gt;go install github.com/gokrazy/tools/cmd/gok@main&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Create a configuration directory for your new instance, which I&#39;ll call &quot;example&quot;:&amp;nbsp;&lt;span style=&quot;font-family: courier;&quot;&gt;gok -i example new&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Since we&#39;re targeting an AMD device and by default gokrazy expects an ARM device, you need to edit the newly created &lt;b&gt;~/gokrazy/example/config.json&lt;/b&gt; file and do the following:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Add this line above the line that says &quot;Hostname&quot;:&amp;nbsp;&lt;span style=&quot;font-family: courier;&quot;&gt;&quot;KernelPackage&quot;: &quot;github.com/gokrazy/kernel.amd64&quot;,&lt;/span&gt;&lt;/li&gt;&lt;li&gt;In the &quot;Environment&quot; section, change the &quot;GOARCH=arm64&quot; line to say &quot;GOARCH=amd64&quot;&lt;/li&gt;&lt;li&gt;In the &quot;Packages&quot; section, replace the&amp;nbsp;&quot;github.com/gokrazy/hello&quot; line with your forked version&lt;/li&gt;&lt;li&gt;Save and close the file&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;To deploy to the production machine we can either create an image file and then use a tool like dd to overwrite the eMMC drive or we can use a USB thumb drive to boot and load gokrazy into memory:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Image file:&amp;nbsp;&lt;span style=&quot;font-family: courier;&quot;&gt;gok -i example overwrite --full example.img --target_storage_bytes 1258299392&lt;/span&gt;&lt;/li&gt;&lt;li&gt;USB thumb drive (&lt;span style=&quot;color: red;&quot;&gt;assuming /dev/sda is your thumb drive device -- verify your setup with &lt;b&gt;lsblk&lt;/b&gt;&lt;/span&gt;):&amp;nbsp;&lt;span style=&quot;font-family: courier;&quot;&gt;gok -i example overwrite --full &lt;span style=&quot;color: red;&quot;&gt;/dev/sda&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;In this example, we&#39;ll use the USB thumb drive approach. After running that command, the output shows a unique URL, like:&amp;nbsp; &quot;http://gokrazy:nY54bft6kxwwdLPMRL3u@example/&quot;&amp;nbsp; Make a note of that for later.&lt;/li&gt;&lt;li&gt;Unplug the USB thumb drive from the build machine, plug it into the production machine and boot into it on the production machine. (Notice how fast it boots!)&lt;/li&gt;&lt;li&gt;Once booted, either note the IP from the screen (if shown) or use a port scanning tool on the build machine to identify it. In my example, it was&amp;nbsp;192.168.31.192&amp;nbsp; Add this to your hosts file as an alias to the app name: &lt;span style=&quot;font-family: courier;&quot;&gt;echo &quot;192.168.31.192 example&quot; | sudo tee -a /etc/hosts&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Open link from Step 8. In the &quot;Services&quot; section, you&#39;ll see a &quot;/user/hello&quot; link. Click on it and you&#39;ll see the stdout says &quot;Hello, 世界&quot;. Click the &quot;run once&quot; button and another hello will occur. Cool, huh! In theory, this could be any Go program you create statically with CGO_ENABLED=0&lt;/li&gt;&lt;li&gt;Now click the &quot;gokrazy&quot; link in the top-left corner to view the list of services again and this time click on the &quot;/user/breakglass&quot; link and then click the &quot;supervise&quot; button. You can now SSH into the production device from the build device: &lt;span style=&quot;font-family: courier;&quot;&gt;ssh 192.168.31.192&lt;/span&gt;&lt;/li&gt;&lt;li&gt;If you&#39;re curious, you can use this command to find all the executables on the OS:&amp;nbsp;&lt;span style=&quot;font-family: courier;&quot;&gt;find / -type f -executable&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Now, make a change to your hello example app on GitHub and then perform another release as version &lt;b&gt;v1.0.1&lt;/b&gt;&lt;/li&gt;&lt;li&gt;On the build machine, all you need to do to update the production machine remotely is to run:&amp;nbsp;&lt;span style=&quot;font-family: courier;&quot;&gt;gok -i example get github.com/&lt;span style=&quot;color: #ffa400;&quot;&gt;YOUR_ACCOUNT&lt;/span&gt;/hello &amp;amp;&amp;amp; gok -i example update&lt;/span&gt;&lt;/li&gt;&lt;li&gt;This will pull the latest version of your hello example app to the build machine, then update your example instance and push the newly updated instance to the production machine which will install it and reboot automatically. All this happens super fast!&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;P.S. gokrazy can even help you with your &lt;a href=&quot;https://gokrazy.org/development/non-go/&quot;&gt;non-Go&lt;/a&gt; needs.&lt;/p&gt;&lt;p&gt;Conclusion: while &lt;a href=&quot;https://news.ycombinator.com/item?id=38692167&quot;&gt;other similar solutions&lt;/a&gt; exist, such as &lt;a href=&quot;https://www.siderolabs.com/blog/there-are-only-12-binaries-in-talos-linux/&quot;&gt;Talos Linux&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href=&quot;https://docs.fedoraproject.org/en-US/iot/&quot;&gt;Fedora Internet of Things&lt;/a&gt;, I enjoy the simplicity and elegance of gokrazy&amp;nbsp; ...not to mention their adorable mascot :)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description><link>http://mrbluecoat.blogspot.com/2025/07/gokrazy-minimal-os-for-go-programs-and.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxzn-kwJ5cy2CuGOWMspIE2naMRVKT9u0f-imlGU10duccWq95uJ23vOsYJQAAAIkt3GXctYrw8haMniKnO3_vMvbmu0TCBk8SHWzq0PdknnaBL9iPoqfyG97ecz_9Hm9sMVEi9t8Q2sTrVFZInfEMhLxFtFyklRZH6Y3Jm3v-ig6RowR3rm9epKBA/s72-w184-h200-c/gk.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-1232649528435694427</guid><pubDate>Sat, 24 May 2025 06:10:00 +0000</pubDate><atom:updated>2025-05-23T23:10:05.490-07:00</atom:updated><title>Best image red-eye remover</title><description>&lt;p&gt;&amp;nbsp;After trying a number of free tools, this one works pretty well:&amp;nbsp;&lt;a href=&quot;https://makeup.pho.to/red-eye-remover/&quot;&gt;https://makeup.pho.to/red-eye-remover/&lt;/a&gt;&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2025/05/best-image-red-eye-remover.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7268743010500230881.post-5852286892363731345</guid><pubDate>Mon, 12 May 2025 18:26:00 +0000</pubDate><atom:updated>2026-03-05T17:42:05.301-07:00</atom:updated><title>Edit video on Linux (for non-pros)</title><description>&lt;p&gt;Occasionally I need to edit a video. I&#39;m not a professional videographer with Adobe Premier working with terabytes of RAW, ProRes, or DNxHD video footage. I just need a format less compressed than the common streaming codecs for small edits between keyframes. Here&#39;s the solution I came up with that works for me:&lt;/p&gt;&lt;p&gt;If you need a simple edit of a file without subtitles:&lt;/p&gt;&lt;p&gt;1. Download and run &lt;a href=&quot;https://avidemux.sourceforge.net/download.html&quot;&gt;Avidemux&lt;/a&gt;&lt;/p&gt;&lt;p&gt;2. File &amp;gt; Open and select your target video&lt;/p&gt;&lt;p&gt;3. In the Video Output section, select &lt;b&gt;Ut Video (ffmpeg)&lt;/b&gt;&amp;nbsp;from the dropdown&lt;/p&gt;&lt;p&gt;&lt;i&gt;Note: This is a lossless codec but creates extremely large files. For example, a &lt;a href=&quot;http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_2160p_30fps_normal.mp4&quot;&gt;10-minute 4K source video&lt;/a&gt; was 604 MB but when converted to &lt;a href=&quot;https://en.wikipedia.org/wiki/Ut_Video_Codec_Suite&quot;&gt;Ut video codec&lt;/a&gt; it became a 53.8 GB file! If you don&#39;t have disk space for converting a 2 hour movie into a 646 GB file, you can use the lossy &lt;b&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Motion_JPEG&quot;&gt;Mjpeg Encoder&lt;/a&gt; &lt;/b&gt;option&amp;nbsp;then click the &quot;Configure&quot; button under that and choose &lt;b&gt;YUV422&lt;/b&gt; - which resulted in a 14.7 GB file for the same clip.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;4. In the Audio Output section, select &lt;b&gt;PCM&lt;/b&gt;&amp;nbsp;from the dropdown, then click the &quot;Configure&quot; button under that and choose &lt;b&gt;LPCM&lt;/b&gt;&lt;/p&gt;&lt;p&gt;5. In the Output Format section, select &lt;b&gt;MKV Muxer&lt;/b&gt;&lt;/p&gt;&lt;p&gt;6. File &amp;gt; Save to save the video (note: this will take a while and create a very large file)&lt;/p&gt;&lt;p&gt;7. Once complete, you can open that new file in Avidemux and make any desired edits. If you need to make edits to the audio you can choose Audio &amp;gt; Save Audio from the menu and edit it in &lt;a href=&quot;https://tenacityaudio.org/&quot;&gt;Tenacity&lt;/a&gt;&lt;/p&gt;&lt;p&gt;8. When your edits are done, apply these settings to save a compressed video for distributing:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;In the Video Output section, select &lt;b&gt;Mpeg4 AVC (x264)&lt;/b&gt;&amp;nbsp;from the dropdown&lt;/li&gt;&lt;li&gt;In the Audio Output section, select &lt;b&gt;AAC (lav) &lt;/b&gt;from the dropdown, then click the &quot;Configure&quot; button under that and choose &lt;b&gt;224&amp;nbsp;&lt;/b&gt;bitrate&lt;/li&gt;&lt;li&gt;In the Output Format section, select&amp;nbsp;&lt;b&gt;MP4v2 Muxer&lt;/b&gt;&lt;/li&gt;&lt;li&gt;File &amp;gt; Save to save the video&lt;/li&gt;&lt;/ul&gt;&lt;div style=&quot;text-align: center;&quot;&gt;______________________________________________________&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you need to make edits but the video has subtitles:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Use&amp;nbsp;&lt;a href=&quot;https://www.shutterencoder.com/&quot;&gt;Shutter Encoder&lt;/a&gt;&amp;nbsp;to convert to FFV1 (lossless archival format) or ProRes (lossy)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Export audio using&amp;nbsp;&lt;a href=&quot;https://avidemux.sourceforge.net/download.html&quot;&gt;Avidemux&lt;/a&gt;&amp;nbsp;and edit using&amp;nbsp;&lt;a href=&quot;https://tenacityaudio.org/&quot;&gt;Tenacity&lt;/a&gt;&amp;nbsp;(highlight swear words, then Generate &amp;gt; Silence...), then export to WAV format&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Use &lt;a href=&quot;https://www.nikse.dk/subtitleedit&quot;&gt;Subtitle Edit&lt;/a&gt; to extract the subtitles and edit (to remove swear words), then export to SRT format&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Use&amp;nbsp;&lt;a href=&quot;https://mkvtoolnix.org/&quot;&gt;MKVToolNix&lt;/a&gt;&amp;nbsp;to&amp;nbsp;combine the FFV1 video, WAV audio, and SRT subtitles&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. Use&amp;nbsp;&lt;a href=&quot;https://github.com/mifi/lossless-cut&quot;&gt;LosslessCut&lt;/a&gt;&amp;nbsp;to edit any additional scenes from the new file&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6. Use&amp;nbsp;&lt;a href=&quot;https://www.shutterencoder.com/&quot;&gt;Shutter Encoder&lt;/a&gt;&amp;nbsp;to&amp;nbsp;convert to H.264 with MKV extension and in the &quot;Advanced&quot; features select &quot;Preserve Subtitles&quot;, then set hardware acceleration along the bottom before clicking the &quot;Start Function&quot; to export.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;______________________________________________________&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you need to make complex edits:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Use &lt;a href=&quot;https://mkvtoolnix.org/&quot;&gt;MKVToolNix&lt;/a&gt; to extract just the video portion of the file&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Use the free version of &lt;a href=&quot;https://www.blackmagicdesign.com/products/davinciresolve&quot;&gt;Davinci Resolve&lt;/a&gt; to perform &lt;a href=&quot;https://www.youtube.com/watch?v=gA-KWhmaajk&quot;&gt;color correction&lt;/a&gt;, then export in ProRes HQ (or ProRes 422 if you don&#39;t have enough drive space)&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Use &lt;a href=&quot;https://www.topazlabs.com/video-pro&quot;&gt;Topaz Video AI Pro&lt;/a&gt; to denoise the video-only file (export as ProRes as well)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Use&amp;nbsp;&lt;a href=&quot;https://mkvtoolnix.org/&quot;&gt;MKVToolNix&lt;/a&gt;&amp;nbsp;to&amp;nbsp;combine the color-corrected, denoised video file with the original video file&#39;s audio and subtitles&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. If audio/subtitle adjustments are needed, see above&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6. Once all edits are done, use &lt;a href=&quot;https://www.shutterencoder.com/&quot;&gt;Shutter Encoder&lt;/a&gt; to export to H.264 (since it has the widest hardware and player support). Make sure to use the MKV extension and also expand &quot;Advanced Features&quot; and select &quot;Preserve Subtitles&quot;, then set hardware acceleration along the bottom before clicking the &quot;Start Function&quot; to export.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</description><link>http://mrbluecoat.blogspot.com/2025/05/edit-video-on-linux-for-non-pros.html</link><author>noreply@blogger.com (Mr. Blue Coat)</author><thr:total>0</thr:total></item></channel></rss>