<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Linux Archives - Good Shepherd News - Fastest Growing Religious, Free Speech &amp; Political Content</title>
	<atom:link href="https://goodshepherdmedia.net/category/truthful-news/home-garden/how-to/computer-hacks/linux/feed/" rel="self" type="application/rss+xml" />
	<link>https://goodshepherdmedia.net/category/truthful-news/home-garden/how-to/computer-hacks/linux/</link>
	<description>Christian, Political, ‎‏‏‎Social &#38; Legal Free Speech News &#124; Ⓒ2024 Good News Media LLC &#124; Shepherd for the Herd! God 1st Programming</description>
	<lastBuildDate>Mon, 13 Jul 2026 23:57:14 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://goodshepherdmedia.net/wp-content/uploads/2023/08/Good-Shepherd-News-Logo-150x150.png</url>
	<title>Linux Archives - Good Shepherd News - Fastest Growing Religious, Free Speech &amp; Political Content</title>
	<link>https://goodshepherdmedia.net/category/truthful-news/home-garden/how-to/computer-hacks/linux/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>What is a Wi-Fi Pineapple? How to Protect Yourself From Pineapple Attacks</title>
		<link>https://goodshepherdmedia.net/what-is-a-wi-fi-pineapple-how-to-protect-yourself-from-pineapple-attacks/</link>
		
		<dc:creator><![CDATA[The Truth News]]></dc:creator>
		<pubDate>Fri, 10 Jul 2026 21:00:06 +0000</pubDate>
				<category><![CDATA[Computer Hacks]]></category>
		<category><![CDATA[Cool Tech & Gadgets 📱⌚🎧⚡]]></category>
		<category><![CDATA[Hackers / Master Programmers]]></category>
		<category><![CDATA[Home & Garden]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Top Stories]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Zee Truthful News]]></category>
		<category><![CDATA[🔐Cybersecurity]]></category>
		<category><![CDATA[🔐Hacking Technology]]></category>
		<category><![CDATA[how to defend from WiFi Pineapple]]></category>
		<category><![CDATA[how to protect your wifi]]></category>
		<category><![CDATA[How to Protect Yourself From Pineapple Attacks]]></category>
		<category><![CDATA[how to secure your wireless network]]></category>
		<category><![CDATA[how to stop a hacker]]></category>
		<category><![CDATA[Wi-Fi Pineapple]]></category>
		<guid isPermaLink="false">https://goodshepherdmedia.net/?p=21143</guid>

					<description><![CDATA[What is a Wi-Fi Pineapple? How to Protect Yourself From Pineapple Attacks Wi-Fi Pineapples trick you into connecting to fake networks, in an attempt to compromise your security and data. Protect yourself by avoiding public Wi-Fi, using VPNs, and watching for suspicious activity. Businesses should invest in secure Wi-Fi hardware, monitor their networks for unknown [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1 class="article-header-title">What is a Wi-Fi Pineapple? How to Protect Yourself From Pineapple Attacks</h1>
<p><iframe title="How to Defend Against WiFi Attacks and WiFi Pineapples" width="640" height="360" src="https://www.youtube.com/embed/ZXuXIFeYdP4?list=PLW5y1tjAOzI2iSdHIGrOeb1-bNWB7TKMI" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<section class="emaki-custom-block emaki-custom-key-points" data-nosnippet="">
<div id="custom_block_0" class="emaki-custom key-points">
<div class="custom_block-content key-points">
<ul>
<li>Wi-Fi Pineapples trick you into connecting to fake networks, in an attempt to compromise your security and data.</li>
<li>Protect yourself by avoiding public Wi-Fi, using VPNs, and watching for suspicious activity.</li>
<li>Businesses should invest in secure Wi-Fi hardware, monitor their networks for unknown devices, and pay attention to what their IT department says.</li>
</ul>
</div>
</div>
</section>
<p>&#8220;Wi-Fi Pineapple&#8221; is a silly name for a real threat to your cybersecurity. These devices trick you into connecting to fake Wi-Fi networks to intercept data and compromise your privacy. Here&#8217;s how to protect against Pineapples and Wi-Fi attacks.</p>
<h2 id="what-is-a-wi-fi-pineapple">What Is a Wi-Fi Pineapple?</h2>
<p>A Wi-Fi Pineapple is a device ostensibly sold for Wi-Fi security auditing, that can also be used to perform real attacks on your devices.</p>
<p class="adsninja-injected-repeatable-ad-afterend">It&#8217;s not literally a pineapple (though I&#8217;m sure some enterprising hacker out there has at least attempted to house a Raspberry Pi in an actual pineapple fruit), but named because early devices resembled pineapples, with antennas sticking out at all angles much like pineapple leaves.</p>
<p>&#8220;Wi-Fi Pineapple&#8221; referred to a specific commercial device that automates man-in-the-middle attacks, but these attacks can also be performed with readily available off-the-shelf hardware, including laptops and single board computers.</p>
<div class="body-img landscape ">
<div class="responsive-img image-expandable img-article-item" data-img-url="https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2025/05/52675364250_f1a7116783_o.jpg" data-modal-id="single-image-modal" data-modal-container-id="single-image-modal-container" data-img-caption="&quot;Corbin Davenport \/ How-To Geek&lt;br \/&gt;\n&lt;br \/&gt;\n&amp;nbsp;&quot;">
<figure><img fetchpriority="high" decoding="async" class="alignnone wp-image-21146" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/52675364250_f1a7116783_o.avif" alt="" width="524" height="294" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/52675364250_f1a7116783_o.avif 1650w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/52675364250_f1a7116783_o-400x224.avif 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/52675364250_f1a7116783_o-1024x575.avif 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/52675364250_f1a7116783_o-768x431.avif 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/52675364250_f1a7116783_o-1536x862.avif 1536w" sizes="(max-width: 524px) 100vw, 524px" /><figcaption class="body-img-caption"></figcaption>How Do Wi-Fi Attacks Work?</figure>
</div>
</div>
<p>There are two main types of attacks that use Wi-Fi networks: &#8220;evil twin&#8221; attacks impersonate known Wi-Fi networks, and trick your device into connecting to them, intercepting data and potentially giving remote access to your device. &#8220;Rogue AP (access point)&#8221; attacks advertise open networks in the hope that naive or internet-desperate users will connect, with the same outcomes.</p>
<p>Malicious Wi-Fi hotspots are set up in coffee shops, airports, and hotels in an attempt to get you to connect without any technical trickery. Often, simply naming the network something legitimate-sounding (like the name of the hotel) is enough to fool people into thinking it&#8217;s the real deal.</p>
<div class="body-img landscape ">
<div class="responsive-img image-expandable img-article-item" data-img-url="https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2022/11/Joe-at-coffee-shop.jpg" data-modal-id="single-image-modal" data-modal-container-id="single-image-modal-container" data-img-caption="&quot;&lt;em&gt;Joe Fedewa \/ How-To Geek&lt;\/em&gt;&quot;">
<figure><img decoding="async" class="alignnone size-full wp-image-21145" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/Joe-at-coffee-shop.avif" alt="" width="650" height="365" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/Joe-at-coffee-shop.avif 650w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/Joe-at-coffee-shop-400x225.avif 400w" sizes="(max-width: 650px) 100vw, 650px" /></p>
<p class="adsninja-injected-repeatable-ad-beforebegin">For individuals, the primary threat of joining a malicious Wi-Fi network is the interception and recording of the data that is transmitted: emails, social network logins, and other sensitive information (including what websites you visit) can be recorded, and even if encrypted, there&#8217;s still the possibility that they can be exploited. Devices with improperly configured firewalls may also be remotely accessed via a compromised network, putting all the data on your device at risk.</p>
<p>For businesses, there is an additional threat: Wi-Fi Pineapples and other malicious devices can be inserted into networks (either using an unguarded Ethernet socket, or by capturing legitimate Wi-Fi credentials and cracking them), granting the attacker unfettered access to internal company infrastructure.</p>
<div class="ad-even"></div>
<h2 id="how-to-protect-yourself-from-pineapples">How To Protect Yourself From Pineapples</h2>
<p>The best way to protect yourself from a pineapple is to stay out of its way. Avoid public Wi-Fi if you can by tethering to your mobile phone to get online. If you do have to use public Wi-Fi, use a reputable VPN and set it up so that all internet traffic must go through it (known as a &#8220;kill switch&#8221; in some VPN interfaces). Travel routers are also great for this, allowing you to tether multiple devices or put multiple devices behind a VPN.</p>
<p class="adsninja-injected-repeatable-ad-beforebegin">While an actual Wi-Fi Pineapple device may be difficult to detect, there are additional measures you can take to protect yourself from fake hotspots and man-in-the-middle attacks in general. Before you connect to a network, check for duplicates or suspicious network names, and avoid scanning QR codes to connect unless they&#8217;re in a position they&#8217;re unlikely to have been tampered with. You can also disable auto-connect for public networks you&#8217;ve joined previously so that you don&#8217;t mistakenly reconnect to an impostor.</p>
<p>At home, make sure you change the default Wi-Fi network and administrator passwords and set up a guest network for visitors to use. A separate IoT network for your &#8220;smart&#8221; devices can also prevent them becoming a vector for network intruders. If you notice similar network names appearing in your neighborhood, consider changing the name of your own network so you don&#8217;t accidentally connect to someone else&#8217;s.</p>
<div id="b56b-4e7d-b914f2043dfd" class="display-card article article-card small no-badge active-content " data-include-community-rating="false" data-nosnippet="">
<div class="w-img ">
<div class="body-img landscape ">
<div class="responsive-img img-featured-4-pin-single-size-featured-secondary" data-img-url="https://static1.howtogeekimages.com/wordpress/wp-content/uploads/2024/06/a-phone-on-the-bluetooth-pairing-screen-and-the-bluetooth-icon-in-the-center.jpg" data-modal-id="single-image-modal" data-modal-container-id="single-image-modal-container" data-img-caption="&quot;&quot;">
<figure><img decoding="async" class="alignnone size-full wp-image-21144" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/a-phone-on-the-bluetooth-pairing-screen-and-the-bluetooth-icon-in-the-center.avif" alt="" width="844" height="536" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/a-phone-on-the-bluetooth-pairing-screen-and-the-bluetooth-icon-in-the-center.avif 844w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/a-phone-on-the-bluetooth-pairing-screen-and-the-bluetooth-icon-in-the-center-400x254.avif 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/a-phone-on-the-bluetooth-pairing-screen-and-the-bluetooth-icon-in-the-center-768x488.avif 768w" sizes="(max-width: 844px) 100vw, 844px" /></figure>
</div>
</div>
</div>
</div>
</figure>
</div>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Generally, you should always heed SSL certificate warnings and unexpected redirects that may indicate your connection has been compromised. Never log into a website or app if you see one of these warnings. If you&#8217;re on public Wi-Fi, disconnect, and if you&#8217;re at home, start taking steps to diagnose and fix the issue(or call your local tech support). If a website login screen looks different to what you&#8217;re used to, you should also be suspicious that your traffic may be being re-routed to a fake site intended to steal your details.</p>
<h2 id="how-businesses-can-prevent-pineapple-attacks" class="adsninja-injected-repeatable-ad-beforebegin">How Businesses Can Prevent Pineapple Attacks</h2>
<p>If you run a business that provides Wi-Fi to staff or the public, it&#8217;s your responsibility to keep it secure. Give your IT team the time and resources they need to deploy, secure, and maintain infrastructure properly, or risk it falling out of date and being vulnerable to new attacks.</p>
<p>Your network should be regularly scanned for unauthorized devices and rogue Wi-Fi networks that may have been set up to trap employees or customers. If something suspicious is found, hunt down the rogue device (it might be hiding in a dusty corner under a couch in a café, for example) and remove it. Use enterprise-grade Wi-Fi hardware like Unifi that provides client isolation, management tools, and additional security features to make sure your network is under your control.</p>
<div class="ad-even"></div>
<h2 id="tips-for-staying-safe-in-a-dangerous-digital-world">Tips for Staying Safe in a Dangerous Digital World</h2>
<p>Antivirus and personal firewalls also play a key part in staying safe when connecting to public networks. If your device is compromised, they can help detect and block malicious software and activity so that you can secure your accounts and get your device fixed.</p>
<p>There&#8217;s also a laundry list of security tips and best practices you should follow to help prevent yourself becoming a victim of cybercrime. Following security advice can be inconvenient (especially when you really need to get online and you&#8217;re out of phone reception), but it&#8217;s worth it in the long run. <a href="https://www.howtogeek.com/what-is-a-wi-fi-pineapple-how-to-protect-yourself-from-pineapple-attacks/" target="_blank" rel="noopener">source</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Building a $23 Wi-Fi Pineapple in 6 Minutes ― EASIEST method!</title>
		<link>https://goodshepherdmedia.net/building-a-23-wi-fi-pineapple-in-6-minutes-%e2%80%95-easiest-method/</link>
		
		<dc:creator><![CDATA[The Truth News]]></dc:creator>
		<pubDate>Sat, 12 Jul 2025 15:12:24 +0000</pubDate>
				<category><![CDATA[Computer Hacks]]></category>
		<category><![CDATA[Cool Tech & Gadgets 📱⌚🎧⚡]]></category>
		<category><![CDATA[Digital Pioneers]]></category>
		<category><![CDATA[Hackers / Master Programmers]]></category>
		<category><![CDATA[Hardware Pioneers]]></category>
		<category><![CDATA[Home & Garden]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Top Stories]]></category>
		<category><![CDATA[Zee Truthful News]]></category>
		<category><![CDATA[🔐Cybersecurity]]></category>
		<category><![CDATA[🔐Hacking Technology]]></category>
		<category><![CDATA[DIY WiFi Pineapple]]></category>
		<category><![CDATA[how to defend from WiFi Pineapple]]></category>
		<category><![CDATA[WiFi Pineapple Definition]]></category>
		<category><![CDATA[WiFi Pineapple Uses]]></category>
		<guid isPermaLink="false">https://goodshepherdmedia.net/?p=21137</guid>

					<description><![CDATA[Building a $23 Wi-Fi Pineapple in 6 Minutes ― EASIEST method! &#160; WIFI Pineapple : DIY WIFI Pineapple Setup Guide Tp-Link Router with WIFI Pineapple Firmware I was just poking around for new projects and stumbled upon something cool. I’ve always had my eye on the Hak5 Wi-Fi Pineapple to build up my red teaming toolkit, but [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1 id="post-title-t3_1hinq26" class="text-neutral-content-strong m-0 font-semibold text-18 xs:text-24 mb-xs px-md xs:px-0 xs:mb-md overflow-hidden" aria-label="Post Title: Building a $23 Wi-Fi Pineapple in 6 Minutes ― EASIEST method!" aria-describedby="feed-post-credit-bar-t3_1hinq26">Building a $23 Wi-Fi Pineapple in 6 Minutes ― EASIEST method!</h1>
<p><iframe title="Build a $23 Wi-Fi Pineapple in 6 Minutes — EASIEST Method! [Pt. I]" width="640" height="360" src="https://www.youtube.com/embed/udnxagkSzoA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p><iframe title="Upgrading the $23 Wi-Fi Pineapple for MAX Hackability! [Pt. II]" width="640" height="360" src="https://www.youtube.com/embed/pHtpso21P0o?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>&nbsp;</p>
<p><iframe title="Did you know you can make your own Wifi Pineapple for $30?" width="640" height="360" src="https://www.youtube.com/embed/-Zqan1CRIq0?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<h1 id="6b40" class="pw-post-title gu gv gw bf gx gy gz ha hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq hr hs ht hu hv hw bk" data-testid="storyTitle" data-selectable-paragraph="">WIFI Pineapple : DIY WIFI Pineapple Setup Guide</h1>
<figure class="mi mj mk ml mm mn mf mg paragraph-image">
<div class="mo mp fl mq bh mr" tabindex="0" role="button">
<div class="mf mg mh"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21153" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_bsSxIRNRttsr6l3zG6FhHA.jpg" alt="" width="1050" height="608" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_bsSxIRNRttsr6l3zG6FhHA.jpg 1050w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_bsSxIRNRttsr6l3zG6FhHA-400x232.jpg 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_bsSxIRNRttsr6l3zG6FhHA-1024x593.jpg 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_bsSxIRNRttsr6l3zG6FhHA-768x445.jpg 768w" sizes="(max-width: 1050px) 100vw, 1050px" /></div>
</div><figcaption class="mt ff mu mf mg mv mw bf b bg ab du" data-selectable-paragraph="">Tp-Link Router with WIFI Pineapple Firmware</figcaption></figure>
<p id="01c6" class="pw-post-body-paragraph mx my gw mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gp bk" data-selectable-paragraph="">I was just poking around for new projects and stumbled upon something cool. I’ve always had my eye on the <a class="ag nv" href="https://shop.hak5.org/products/wifi-pineapple" target="_blank" rel="noopener ugc nofollow">Hak5 Wi-Fi Pineapple</a> to build up my red teaming toolkit, but I needed to stick to a budget. The Hak5 Wifi Pineapple is a powerful and versatile wireless penetration testing. It allows users to create rogue Wi-Fi networks, enabling them to intercept and analyze network traffic for security testing purposes. It could perform Evil Portal, MITM, DNS poisoning and many wireless attacks using web interface.</p>
<p id="fba1" class="pw-post-body-paragraph mx my gw mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gp bk" data-selectable-paragraph="">After some initial research, I found that the Wifi Pineapple runs on OpenWrt. Also, I found this GitHub project by <a class="ag nv" href="https://github.com/xchwarze/wifi-pineapple-cloner-builds" target="_blank" rel="noopener ugc nofollow">Xchwarze</a> which talks about cloning the Wifi Pineapple.</p>
<h2 id="10e8" class="nw nx gw bf ny nz oa dy ob oc od ea oe ni of og oh nm oi oj ok nq ol om on oo bk" data-selectable-paragraph="">Here’s the outline of this project:</h2>
<ul class="">
<li id="678f" class="mx my gw mz b na op nc nd ne oq ng nh ni or nk nl nm os no np nq ot ns nt nu ou ov ow bk" data-selectable-paragraph="">Install <a class="ag nv" href="https://openwrt.org/releases/19.07/start" target="_blank" rel="noopener ugc nofollow">OpenWrt</a> firmware.</li>
<li id="ea37" class="mx my gw mz b na ox nc nd ne oy ng nh ni oz nk nl nm pa no np nq pb ns nt nu ou ov ow bk" data-selectable-paragraph="">Install the Pineapple firmware <a class="ag nv" href="https://github.com/xchwarze/wifi-pineapple-cloner-builds/blob/main/releases/archer-c7-v4-universal-sysupgrade.bin" target="_blank" rel="noopener ugc nofollow">upgrade file</a>.</li>
<li id="7709" class="mx my gw mz b na ox nc nd ne oy ng nh ni oz nk nl nm pa no np nq pb ns nt nu ou ov ow bk" data-selectable-paragraph="">Set up Wifi Pineapple.</li>
</ul>
<h2 id="9b8c" class="nw nx gw bf ny nz oa dy ob oc od ea oe ni of og oh nm oi oj ok nq ol om on oo bk" data-selectable-paragraph="">You’ll need the following essentials for this project:</h2>
<ol class="">
<li id="586c" class="mx my gw mz b na op nc nd ne oq ng nh ni or nk nl nm os no np nq ot ns nt nu pc ov ow bk" data-selectable-paragraph="">Any compatible router with OpenWRT (I’ll be using Tp-Link Archer C7).</li>
<li id="b291" class="mx my gw mz b na ox nc nd ne oy ng nh ni oz nk nl nm pa no np nq pb ns nt nu pc ov ow bk" data-selectable-paragraph="">A USB drive for installing modules.</li>
<li id="d374" class="mx my gw mz b na ox nc nd ne oy ng nh ni oz nk nl nm pa no np nq pb ns nt nu pc ov ow bk" data-selectable-paragraph="">OpenWrt 19.07.7.</li>
<li id="3c44" class="mx my gw mz b na ox nc nd ne oy ng nh ni oz nk nl nm pa no np nq pb ns nt nu pc ov ow bk" data-selectable-paragraph="">Wi-Fi Pineapple firmware.</li>
</ol>
<p id="d367" class="pw-post-body-paragraph mx my gw mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gp bk" data-selectable-paragraph="">With these in hand, we’re ready to proceed with the setup process! So, let’s jump right into it!</p>
<p id="a4c2" class="pw-post-body-paragraph mx my gw mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gp bk" data-selectable-paragraph=""><strong class="mz gx">Install OpenWrt firmware:</strong></p>
<p id="5dba" class="pw-post-body-paragraph mx my gw mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gp bk" data-selectable-paragraph="">Download the OpenWrt firmware 19.07.7 using this <a class="ag nv" href="https://openwrt.org/releases/19.07/start" target="_blank" rel="noopener ugc nofollow">link</a>. Then, navigate to your default router login page and upgrade the firmware by simply uploading the OpenWrt router firmware file.</p>
<figure class="pe pf pg ph pi mn mf mg paragraph-image">
<div class="mo mp fl mq bh mr" tabindex="0" role="button">
<div class="mf mg pd"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21154" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_7bq3gk4eoCIOBChzB-bM8Q.webp" alt="" width="1100" height="529" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_7bq3gk4eoCIOBChzB-bM8Q.webp 1100w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_7bq3gk4eoCIOBChzB-bM8Q-400x192.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_7bq3gk4eoCIOBChzB-bM8Q-1024x492.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_7bq3gk4eoCIOBChzB-bM8Q-768x369.webp 768w" sizes="(max-width: 1100px) 100vw, 1100px" /></div>
</div>
</figure>
<p id="0ce3" class="pw-post-body-paragraph mx my gw mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gp bk" data-selectable-paragraph="">It will take a few minutes for the router to reboot.<strong class="mz gx"> Do not restart or power off your router during this process, as it may brick your devic</strong>e. Once it’s flashed with OpenWrt, it’s time to upgrade to the Pineapple firmware.</p>
<p id="a355" class="pw-post-body-paragraph mx my gw mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gp bk" data-selectable-paragraph=""><strong class="mz gx">Install the Pineapple firmware upgrade file:</strong></p>
<p id="3757" class="pw-post-body-paragraph mx my gw mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gp bk" data-selectable-paragraph="">First, we need to download the Pineapple firmware upgrade file. Choose the appropriate router and download the firmware file from the <a class="ag nv" href="https://github.com/xchwarze/wifi-pineapple-cloner-builds" target="_blank" rel="noopener ugc nofollow">Github repo</a>. For my setup, I will be using the <a class="ag nv" href="https://github.com/xchwarze/wifi-pineapple-cloner-builds/blob/main/releases/archer-c7-v4-universal-sysupgrade.bin" target="_blank" rel="noopener ugc nofollow">Archer C7 v4 universal file</a>.</p>
<figure class="pe pf pg ph pi mn mf mg paragraph-image">
<div class="mo mp fl mq bh mr" tabindex="0" role="button">
<div class="mf mg pj"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21152" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_w_mqzb8KwgYQ5OR4PlxQzg.webp" alt="" width="1100" height="336" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_w_mqzb8KwgYQ5OR4PlxQzg.webp 1100w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_w_mqzb8KwgYQ5OR4PlxQzg-400x122.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_w_mqzb8KwgYQ5OR4PlxQzg-1024x313.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_w_mqzb8KwgYQ5OR4PlxQzg-768x235.webp 768w" sizes="(max-width: 1100px) 100vw, 1100px" /></div>
</div>
</figure>
<p id="5e06" class="pw-post-body-paragraph mx my gw mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gp bk" data-selectable-paragraph="">Connect your device using an Ethernet port and open 192.168.1.1 in your browser. Navigate to the <em class="pk">System</em> tab and click on the <em class="pk">Flash Image</em> option. Choose the Flash Image and upload the Pineapple firmware sysupgrade file you recently downloaded. Uncheck the “<em class="pk">Keep settings and retain the current configuration</em>” box, then click <em class="pk">continue</em>. Again, this process should take a couple of minutes. Just a reminder: <strong class="mz gx">do not restart or power off your router</strong> during this time to avoid any interruptions in the firmware upgrade.</p>
<p id="4f1d" class="pw-post-body-paragraph mx my gw mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gp bk" data-selectable-paragraph=""><strong class="mz gx">Setup Wifi Pineapple:</strong></p>
<p id="be88" class="pw-post-body-paragraph mx my gw mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gp bk" data-selectable-paragraph="">Once the router restarts, connect it to the internet and browse to 172.16.42.1:1471 to setup your WIFI Pineapple. Congratulations, enjoy your newly configured Wifi Pineapple!”</p>
<figure class="pe pf pg ph pi mn mf mg paragraph-image">
<div class="mo mp fl mq bh mr" tabindex="0" role="button">
<div class="mf mg pl"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21151" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_1ONiqNm2KeUfYTZAl7ftpw.webp" alt="" width="1100" height="469" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_1ONiqNm2KeUfYTZAl7ftpw.webp 1100w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_1ONiqNm2KeUfYTZAl7ftpw-400x171.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_1ONiqNm2KeUfYTZAl7ftpw-1024x437.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_1ONiqNm2KeUfYTZAl7ftpw-768x327.webp 768w" sizes="(max-width: 1100px) 100vw, 1100px" /></div>
</div><figcaption class="mt ff mu mf mg mv mw bf b bg ab du" data-selectable-paragraph="">Wifi Pineapple Dashboard</figcaption></figure>
<p id="4bd9" class="pw-post-body-paragraph mx my gw mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gp bk" data-selectable-paragraph="">Now that the Wifi Pineapple is set up, let’s proceed with installing modules to make it fully functional.</p>
<p id="729e" class="pw-post-body-paragraph mx my gw mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gp bk" data-selectable-paragraph="">Plug the USB drive into the router and format it using the provided tool under <em class="pk">Advanced</em> &gt; <em class="pk">USB &amp; Storage</em> &gt;<em class="pk"> Format SD Card</em>. This step ensures your USB drive is ready to install the necessary modules for your Wifi Pineapple.</p>
<p id="b4e5" class="pw-post-body-paragraph mx my gw mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gp bk" data-selectable-paragraph="">Simply click the <em class="pk">Get Modules</em> button and then click <em class="pk">Install</em> for the modules you would like to use. Be sure to install dependencies for each module once they are installed.</p>
<figure class="pe pf pg ph pi mn mf mg paragraph-image">
<div class="mo mp fl mq bh mr" tabindex="0" role="button">
<div class="mf mg pm"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21150" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_ozr7fRgP8tRPF8_kgznmeQ.webp" alt="" width="1100" height="542" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_ozr7fRgP8tRPF8_kgznmeQ.webp 1100w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_ozr7fRgP8tRPF8_kgznmeQ-400x197.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_ozr7fRgP8tRPF8_kgznmeQ-1024x505.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/1_ozr7fRgP8tRPF8_kgznmeQ-768x378.webp 768w" sizes="(max-width: 1100px) 100vw, 1100px" /></div>
</div><figcaption class="mt ff mu mf mg mv mw bf b bg ab du" data-selectable-paragraph="">Installing Modules</figcaption></figure>
<h2 id="5874" class="nw nx gw bf ny nz oa dy ob oc od ea oe ni of og oh nm oi oj ok nq ol om on oo bk" data-selectable-paragraph=""><strong class="am">Conclusion</strong></h2>
<p id="bb67" class="pw-post-body-paragraph mx my gw mz b na op nc nd ne oq ng nh ni or nk nl nm os no np nq ot ns nt nu gp bk" data-selectable-paragraph="">This is just a proof of concept to show that we can build a Wifi Pineapple on a budget, achieving similar functionality as the official one. Of course, I’d still suggest buying the <a class="ag nv" href="https://shop.hak5.org/products/wifi-pineapple" target="_blank" rel="noopener ugc nofollow">Hak5 WIFI Pineapple</a> to support the creators. I had a blast experimenting with my homemade version.</p>
<p id="ea61" class="pw-post-body-paragraph mx my gw mz b na nb nc nd ne nf ng nh ni nj nk nl nm nn no np nq nr ns nt nu gp bk" data-selectable-paragraph="">I’m thinking of getting a compatible router like Gl.iNet, which is pocket-sized and can be powered by a power bank. This could come in handy, especially when traveling with a gigantic router is a hassle. Big thanks to <a class="ag nv" href="https://github.com/xchwarze/wifi-pineapple-cloner" target="_blank" rel="noopener ugc nofollow">Xchwarze</a> for sharing this project with the community. <a href="https://medium.com/@aleemS/wifi-pineapple-diy-wifi-pineapple-setup-guide-93fb12a97845" target="_blank" rel="noopener">source</a></p>
<hr />
<div class="jumbotron">
<h1 class="font-weight-light">DIY WiFi Pineapple</h1>
<h3 class="display-3">Introduction</h3>
<p class="lead">This guide will give you everything you need to build your own customizable wifi pineapple on a budget using the <a href="https://www.gl-inet.com/products/gl-ar150/">GL.iNet GL-AR150</a>. The guide includes step by step pictures, alternative analysis, power metrics, and more!</p>
<p>What is WiFi Pineapple?</p>
<ul>
<li>WiFi Pineapple is formally a product produced and sold by the company <a href="https://shop.hak5.org/products/wifi-pineapple" target="_blank" rel="noopener">Hak5</a></li>
<li>The device is used as a pentest tool and can be used as a rogue access point in both passive and active attacks.</li>
<li>Check out the official documentation for more information: <a href="https://wiki.wifipineapple.com/#!index.md" target="_blank" rel="noopener">https://wiki.wifipineapple.com</a></li>
</ul>
<p class="lead">This guide contains the following sections:</p>
<ol>
<li class="tallmargin"><b class="text-success">Comparing Pineapples</b> &#8211; Shows hardware differences of both products</li>
<li class="tallmargin"><b class="text-success">Materials Needed</b> &#8211; List of materials you need to build an AR150 WiFi Pineapple</li>
<li class="tallmargin"><b class="text-success">Flashing Pineapple Firmware</b> &#8211; Step by step guide to install the Pineapple firmware</li>
<li class="tallmargin"><b class="text-success">Hardware Modifications</b> &#8211; A guide to integrate the USB hub into the case of the AR150</li>
</ol>
<p class="lead">For additional resources on my website click the links below:</p>
<p><span style="color: #ff0000;"><strong>Comparing Pineapples</strong></span></p>
</div>
<div id="Comparing" class="jumbotron"><center><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21155" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/nano_vs_ar150_optimized.webp" alt="" width="900" height="400" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/nano_vs_ar150_optimized.webp 900w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/nano_vs_ar150_optimized-400x178.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/nano_vs_ar150_optimized-768x341.webp 768w" sizes="(max-width: 900px) 100vw, 900px" /></center></p>
<h3>Hardware Differences: <span class="text-success"><b>None</b></span></h3>
<table class="table table-hover">
<thead>
<tr>
<th scope="col"></th>
<th scope="col">Nano</th>
<th scope="col">AR150</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">CPU</th>
<td>Atheros9331, 400MHz SoC</td>
<td>Atheros9331, 400MHz SoC</td>
</tr>
<tr>
<th scope="row">Memory</th>
<td>DDR2 64MB</td>
<td>DDR2 64MB</td>
</tr>
<tr>
<th scope="row">Storage</th>
<td>Flash 16MB</td>
<td>Flash 16MB</td>
</tr>
<tr>
<th scope="row">Wireless 1</th>
<td>Atheros AR9331 (IEEE 802.11 b/g/n)</td>
<td>Atheros AR9331 (IEEE 802.11 b/g/n)</td>
</tr>
<tr>
<th scope="row">Wireless 2</th>
<td>Atheros AR9271 (IEEE 802.11 b/g/n)</td>
<td>RT5370 USB WiFi Adapter (IEEE 802.11 b/g/n)</td>
</tr>
<tr>
<th scope="row">Price</th>
<td><span class="text-warning"><b>$100</b></span></td>
<td><span class="text-success"><b>$35</b></span></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
</div>
<div id="Materials" class="jumbotron">
<h1 class="display-3">Materials Needed</h1>
<div class="row align-items-center my-5">
<div class="col-lg-4"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21156" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/materials_optimized.webp" alt="" width="300" height="300" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/materials_optimized.webp 300w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/materials_optimized-150x150.webp 150w" sizes="(max-width: 300px) 100vw, 300px" /></div>
<div class="col-lg-8">
<h1 class="font-weight-light">Basic <i><small class="text-muted">(Total $35)</small></i>:</h1>
<p>&nbsp;</p>
<ul class="list">
<li class="list-item">AR150 &#8211; $26 (<a href="https://www.amazon.com/dp/B01FJ4S9JK" target="_blank" rel="noopener">https://www.amazon.com/dp/B01FJ4S9JK</a>)</li>
<li class="list-item">RT5370 Wifi adapter &#8211; $6 (<a href="https://www.ebay.com/itm/282647848601" target="_blank" rel="noopener">https://www.ebay.com/itm/282647848601</a>)</li>
<li class="list-item">Flash Drive (1gb and up)</li>
<li class="list-item">USB 2.0 Hub (NOT 3.0)</li>
<li class="list-item">Power adapter or external battery (CURRENT)</li>
</ul>
<p>&nbsp;</p>
<h3 class="font-weight-light">Advanced Materials:</h3>
<p>&nbsp;</p>
<ul class="list">
<li class="list-item">USB Hub &#8211; $4 (<a href="https://www.ebay.com/itm/173995917456" target="_blank" rel="noopener">https://www.ebay.com/itm/173995917456</a>)</li>
<li class="list-item">Soldering Iron with fine &#8220;I&#8221; tip (<a href="https://www.amazon.com/dp/B07GTGGLXN" target="_blank" rel="noopener">https://www.amazon.com/dp/B07GTGGLXN</a>)</li>
<li class="list-item">Helping Hand (<a href="https://www.amazon.com/dp/B000P42O3C" target="_blank" rel="noopener">https://www.amazon.com/dp/B000P42O3C</a>)</li>
<li class="list-item">3D Printed Case Extension
<ul>
<li>Print: <a href="https://github.com/LinuxOperator/AR150-Case-Extension" target="_blank" rel="noopener">https://github.com/LinuxOperator/AR150-Case-Extension</a></li>
<li>Buy:</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
</div>
</div>
<p>&nbsp;</p>
</div>
<div id="Flashing" class="jumbotron">
<h1 class="display-3">Flash Pineapple Firmware</h1>
<p><center><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21157" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150-and-box-scaled.webp" alt="" width="2560" height="1707" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150-and-box-scaled.webp 2560w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150-and-box-400x267.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150-and-box-1024x683.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150-and-box-768x512.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150-and-box-1536x1024.webp 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150-and-box-2048x1365.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></center></p>
<h4>Step 1:</h4>
<p>Download the WiFi Pineapple firmware that was modified for the AR150: <span class="text-success">gl-ar150-nano-&lt;version&gt;-optimized.bin</span></p>
<h4>Step 2:</h4>
<p>Power on AR150 and connect a computer to the device&#8217;s LAN by one of the following:</p>
<ul>
<li>Connect an Ethernet cable to your computer from the &#8220;LAN&#8221; port</li>
<li>Connect to its WiFi network &#8220;GL-AR150-xxx&#8221; using the password &#8220;goodlife&#8221;</li>
</ul>
<p><center><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21158" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_11.webp" alt="" width="2558" height="1178" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_11.webp 2558w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_11-400x184.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_11-1024x472.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_11-768x354.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_11-1536x707.webp 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_11-2048x943.webp 2048w" sizes="(max-width: 2558px) 100vw, 2558px" /></center></p>
<h4>Step 3:</h4>
<p>Navigate to <a href="http://192.168.1.1/" target="_blank" rel="noopener">http://192.168.1.1</a> in a web browser and perform initial setup:</p>
<ul>
<li>Set Password (Note: this password will only be used once)</li>
</ul>
<p><center><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21159" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_09.webp" alt="" width="2560" height="1174" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_09.webp 2560w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_09-400x183.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_09-1024x470.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_09-768x352.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_09-1536x704.webp 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_09-2048x939.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></center></p>
<h4>Step 4:</h4>
<ul>
<li>From the admin panel click on &#8220;More Settings&#8221; then click &#8220;Advanced&#8221;</li>
</ul>
<p><center><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21161" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_08.webp" alt="" width="2560" height="1174" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_08.webp 2560w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_08-400x183.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_08-1024x470.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_08-768x352.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_08-1536x704.webp 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_08-2048x939.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></center></p>
<h4>Step 5:</h4>
<ul>
<li>Login with username &#8220;root&#8221; and your password created in step #2</li>
</ul>
<p><center><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21160" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_07.webp" alt="" width="2560" height="1170" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_07.webp 2560w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_07-400x183.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_07-1024x468.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_07-768x351.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_07-1536x702.webp 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_07-2048x936.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></center></p>
<h4>Step 6:</h4>
<ul>
<li>Click on &#8220;System&#8221; then on &#8220;Backup / Flash Firmware&#8221;</li>
</ul>
<p><center><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21162" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_05.webp" alt="" width="2560" height="1178" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_05.webp 2560w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_05-400x184.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_05-1024x471.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_05-768x353.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_05-1536x707.webp 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_05-2048x942.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></center></p>
<h4>Step 7:</h4>
<ul>
<li>Flash the optimized .bin file:
<ul>
<li>Under &#8220;Flash new firmware image&#8221; uncheck &#8220;Keep settings&#8221;</li>
<li>Choose File and select the .bin you downloaded in step 1</li>
<li>Click &#8220;Flash image&#8221;</li>
</ul>
</li>
</ul>
<p><center><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21163" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_04.webp" alt="" width="2560" height="1172" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_04.webp 2560w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_04-400x183.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_04-1024x469.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_04-768x352.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_04-1536x703.webp 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_04-2048x938.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></center></p>
<h4>Step 8:</h4>
<ul>
<li>Click &#8220;Proceed&#8221;</li>
</ul>
<p><center><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21164" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_03.webp" alt="" width="2560" height="1180" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_03.webp 2560w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_03-400x184.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_03-1024x472.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_03-768x354.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_03-1536x708.webp 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_03-2048x944.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></center></p>
<h4>Step 9:</h4>
<ul>
<li>Wait about 5min for the flash to complete.</li>
<li>Join the new network:
<ul>
<li>The device will now have a different Wifi SSID and IP address range.</li>
<li>Follow the guide bellow to connect to the pineapple over Wifi or LAN&#8230;</li>
</ul>
</li>
</ul>
<p><center><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21165" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_02.webp" alt="" width="2560" height="1172" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_02.webp 2560w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_02-400x183.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_02-1024x469.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_02-768x352.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_02-1536x703.webp 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_02-2048x938.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></center></p>
<h4>Step 10:</h4>
<h4 class="text-warning">If on <u>WiFi</u></h4>
<ul>
<li>Search for a network with &#8220;pineapple&#8221; in the name, connect to it</li>
<li>Change your computer&#8217;s IP address to &#8220;172.16.42.42&#8221;</li>
<li>Navigate to <a href="https://172.16.42.1:1471/" target="_blank" rel="noopener">https://172.16.42.1:1471</a> in your web browser</li>
<li>When you see the prompt for &#8220;Secure Setup&#8221;, <u>proceed by holding the reset button for ~5 seconds</u></li>
</ul>
<h4 class="text-warning">If on <u>Ethernet LAN</u></h4>
<ul>
<li>Change your computer&#8217;s IP address to &#8220;172.16.42.42&#8221;</li>
<li>Navigate to <a href="https://172.16.42.1:1471/" target="_blank" rel="noopener">https://172.16.42.1:1471</a> in your web browser</li>
<li>When you see the prompt for &#8220;Secure Setup&#8221;, proceed by quickly pressing the reset button (don&#8217;t hold it)</li>
</ul>
<p><center><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21166" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_01.webp" alt="" width="2560" height="1174" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_01.webp 2560w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_01-400x183.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_01-1024x470.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_01-768x352.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_01-1536x704.webp 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_steps_01-2048x939.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></center></p>
<h4>Step 11:</h4>
<ul>
<li>Pineapple Configuration:
<ul>
<li>Root Password</li>
<li>Time Zone</li>
<li>other</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
</div>
<div id="Modifications" class="jumbotron">
<h1 class="display-3">Hardware Modifications</h1>
<p><center><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21167" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/cover_off_optimized-scaled.webp" alt="" width="2560" height="1707" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/cover_off_optimized-scaled.webp 2560w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/cover_off_optimized-400x267.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/cover_off_optimized-1024x683.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/cover_off_optimized-768x512.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/cover_off_optimized-1536x1024.webp 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/cover_off_optimized-2048x1365.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></center>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21168" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150.gif" alt="" width="448" height="252" /></p>
<h4>Step 1:</h4>
<ul>
<li>Remove the back cover</li>
</ul>
<hr />
<p><center><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21169" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_apart_optimized-scaled.webp" alt="" width="2560" height="1707" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_apart_optimized-scaled.webp 2560w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_apart_optimized-400x267.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_apart_optimized-1024x683.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_apart_optimized-768x512.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_apart_optimized-1536x1024.webp 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_apart_optimized-2048x1365.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></center></p>
<h4>Step 2:</h4>
<ul>
<li>Dissasemble the USB Hub (A screwdriver and some prying should do the trick, don&#8217;t damage the female usb ports)</li>
</ul>
<hr />
<p><center><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21170" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/cover_off_more_optimized-scaled.webp" alt="" width="2560" height="1707" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/cover_off_more_optimized-scaled.webp 2560w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/cover_off_more_optimized-400x267.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/cover_off_more_optimized-1024x683.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/cover_off_more_optimized-768x512.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/cover_off_more_optimized-1536x1024.webp 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/cover_off_more_optimized-2048x1365.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></center></p>
<h4>Step 3:</h4>
<ul>
<li>Note the order of the wires, the wires should go in this order onto the AR150 board</li>
</ul>
<hr />
<p><center><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21171" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_soldered_optimized-scaled.webp" alt="" width="2560" height="1707" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_soldered_optimized-scaled.webp 2560w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_soldered_optimized-400x267.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_soldered_optimized-1024x683.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_soldered_optimized-768x512.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_soldered_optimized-1536x1024.webp 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_soldered_optimized-2048x1365.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></center></p>
<h4>Step 4:</h4>
<ul>
<li>Solder the wires with a fine soldering tip (&#8220;I&#8221; is recommended)</li>
</ul>
<hr />
<p><center><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21172" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/case_extension_optimized-scaled.webp" alt="" width="2560" height="1707" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/case_extension_optimized-scaled.webp 2560w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/case_extension_optimized-400x267.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/case_extension_optimized-1024x683.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/case_extension_optimized-768x512.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/case_extension_optimized-1536x1024.webp 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/case_extension_optimized-2048x1365.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></center></p>
<h4>Step 5:</h4>
<ul>
<li>3D print the case extender using the following settings (or Buy: )</li>
<li>Plastic: PLA or PETG (ABS may shrink and cause model to not fit)</li>
<li>Layer Height:</li>
<li>Density: %</li>
</ul>
<hr />
<p><center><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21173" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_glued_optimized-scaled.webp" alt="" width="2560" height="1707" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_glued_optimized-scaled.webp 2560w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_glued_optimized-400x267.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_glued_optimized-1024x683.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_glued_optimized-768x512.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_glued_optimized-1536x1024.webp 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/hub_glued_optimized-2048x1365.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></center></p>
<h4>Step 6:</h4>
<ul>
<li>Insert the USB hub and hot glue it in place for added support</li>
</ul>
<hr />
<p><center><img loading="lazy" decoding="async" class="alignnone size-full wp-image-21174" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_built_optimized-scaled.webp" alt="" width="2560" height="1707" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_built_optimized-scaled.webp 2560w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_built_optimized-400x267.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_built_optimized-1024x683.webp 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_built_optimized-768x512.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_built_optimized-1536x1024.webp 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/07/ar150_built_optimized-2048x1365.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></center></p>
<h4>Step 7:</h4>
<ul>
<li>Snap the pieces together making sure it is correctly aligned <a href="https://linuxoperator.com/guides/ar150/" target="_blank" rel="noopener">source</a></li>
</ul>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<hr />
<h2><span style="color: #ff0000;">HOW TO USE YOUR WIFI PINEAPPLE</span></h2>
<p><iframe title="How Hackers Use DNS Spoofing to Phish Passwords (WiFi Pineapple Demo)" width="640" height="360" src="https://www.youtube.com/embed/33H0ILk-yd8?list=PLW5y1tjAOzI2iSdHIGrOeb1-bNWB7TKMI" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<div class="ad-odd">
<p><iframe title="Create Rogue Networks on the WiFi Pineapple (PineAP KARMA Attacks)" width="640" height="360" src="https://www.youtube.com/embed/fOmDNn2aXXA?list=PLW5y1tjAOzI2iSdHIGrOeb1-bNWB7TKMI" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
</div>
<h3></h3>
<p>if you need a full sevice PCB manufacturer go here <a href="https://www.pcbway.com/" target="_blank" rel="noopener">PCBWay</a></p>
<p><span class="author flex-self-stretch"><a href="https://github.com/xchwarze/wifi-pineapple-cloner" target="_blank" rel="noopener">GitHub</a></span><span class="mx-1 flex-self-stretch color-fg-muted">/ </span><strong class="mr-2 flex-self-stretch"><a href="https://github.com/xchwarze/wifi-pineapple-cloner" target="_blank" rel="noopener" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame">wifi-pineapple-cloner</a></strong></p>
<p>by <span class="author flex-self-stretch"><a class="url fn" href="https://github.com/xchwarze" target="_blank" rel="author noopener" data-hovercard-type="user" data-hovercard-url="/users/xchwarze/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" aria-keyshortcuts="Alt+ArrowUp">xchwarze</a></span></p>
<h2><strong><span style="color: #ff0000;">learn how to defend yourself below </span></strong></h2>
<blockquote class="wp-embedded-content" data-secret="ZK9TP04eMW"><p><a href="https://goodshepherdmedia.net/what-is-a-wi-fi-pineapple-how-to-protect-yourself-from-pineapple-attacks/">What is a Wi-Fi Pineapple? How to Protect Yourself From Pineapple Attacks</a></p></blockquote>
<p><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;What is a Wi-Fi Pineapple? How to Protect Yourself From Pineapple Attacks&#8221; &#8212; Good Shepherd News - Fastest Growing Religious, Free Speech &amp; Political Content" src="https://goodshepherdmedia.net/what-is-a-wi-fi-pineapple-how-to-protect-yourself-from-pineapple-attacks/embed/#?secret=bbgtP1PQCg#?secret=ZK9TP04eMW" data-secret="ZK9TP04eMW" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<hr />
<h1 class="cmp-hero__title">WiFi Pineapple Definition &amp; Pineapple Router Uses</h1>
<div class="cmp-hero__text rte-content">
<p>Learn how Adaptive Multi-Factor Authentication combats data breaches, weak passwords, and phishing attacks.</p>
</div>
<p>A WiFi Pineapple is a small piece of equipment with a silly name and a lot of power. Some people use this tool for a legitimate security purpose. Others use it for hacking.</p>
<p>Whether you work in security or are concerned about the safety of your own data, it pays to know what a Pineapple router is. Chances are, you&#8217;ll encounter it at least once during your lifetime.</p>
<h2 data-anchor="anchor-subtitle-0">What Is a WiFi Pineapple?</h2>
<p>The size and shape of this device give the WiFi Pineapple its name. It&#8217;s a small, black device with several spikes. Developers thought it looked a bit like tropical fruit, so they named it accordingly.</p>
<p>The WiFi Pineapple was developed by Hak5, a private company. For <a href="https://shop.hak5.org/products/wifi-pineapple" target="_blank" rel="noopener noreferrer"><u>about $100</u><span class="cmp-link__screen-reader-only">opens in a new tab</span></a>, you can purchase one for yourself or your company. And you&#8217;re not required to disclose what you&#8217;d like to use it for.</p>
<p>Hak5 is known for creating testing tools. When the WiFi Pineapple was <a href="https://www.vice.com/en/article/pa39xv/pineapple-wifi-how-to-mitm-hack" target="_blank" rel="noopener noreferrer"><u>released in 2008</u><span class="cmp-link__screen-reader-only">opens in a new tab</span></a>, most people assumed testers would find it useful and everyone else would ignore it. The reality is a bit different.</p>
<h2 data-anchor="anchor-subtitle-1">How a WiFi Pineapple Works</h2>
<p>&lt; Open a WiFi channel on your computer, and the device will make a connection to an available router. A WiFi Pineapple is positioned between the device and the router, and with the proper programming, it can inspect all the data as it moves from one location to another.</p>
<p>Setting up a WiFi Pineapple isn&#8217;t always easy. Bloggers who detail their work create posts that take up <a href="https://www.troyhunt.com/the-beginners-guide-to-breaking-website/" target="_blank" rel="noopener noreferrer"><u>dozens of screens</u><span class="cmp-link__screen-reader-only">opens in a new tab</span></a>. But when the work is done, you&#8217;ll be able to look over all the traffic moving to and from a device and a WiFi router.</p>
<p>The device makes use of the underlying technology in any WiFi system. When you connect to a WiFi, your device remembers the service set identifier (SSI) of that router. When you&#8217;re in the same location, your device seeks out a router with the right SSI.</p>
<p>A WiFi Pineapple imitates the proper SSI, and that means anyone preprogrammed to connect will link with the Pineapple router instead.</p>
<h2 data-anchor="anchor-subtitle-2">Legitimate Uses of a Pineapple Router</h2>
<p>Computer security experts must understand how their systems work, where they are breaking, and why they might be vulnerable to an attack. A Pineapple WiFi router makes that work much easier.</p>
<p>During a penetration test (or pentest), experts attempt to hack a system, and they document their work for fixes and corrections. Typically, a pentest requires <a href="https://www.makeuseof.com/tag/wifi-pineapple-protect/" target="_blank" rel="noopener noreferrer"><u>specialized software and operating systems</u><span class="cmp-link__screen-reader-only">opens in a new tab</span></a>. But a WiFi Pineapple makes it really easy.</p>
<p>A security analyst might set up a Pineapple WiFi and then:</p>
<ul>
<li><b>Look for hookups. </b>Do people from your company attach to it automatically rather than using your authorized WiFi?</li>
<li><b>Watch for disclosures. </b>During a man-in-the-middle attack, a hacker watches all the data that passes between a device and a server. A WiFi Pineapple mimics this approach. How much would an attacker see?</li>
<li><b>Seek out access. </b>Can a hacker who sets up a man-in-the-middle attack gain further access to your system?</li>
<li><b>Watch for alarms. </b>Do your automated systems catch the intruder? How long does it take?</li>
</ul>
<p><a href="https://www.wifipineapple.com/pages/software" target="_blank" rel="noopener noreferrer"><u>WiFi Pineapple software</u><span class="cmp-link__screen-reader-only">opens in a new tab</span></a> makes monitoring easy. You&#8217;ll get email alerts throughout the simulated attack, and you can even tag interesting devices and follow them after they&#8217;ve been tapped by the program.</p>
<p>Someone using a WiFi Pineapple emerges with a significant amount of data about how the system works and what should be fixed.</p>
<h2 data-anchor="anchor-subtitle-3">Hackers Use Pineapple WiFi Too</h2>
<p>Just as security experts can launch man-in-the-middle attacks, so can hackers. The technology works in the same way.</p>
<p>A hacker might take over the SSI of a well-known WiFi router, such as one located inside of a college campus. An attack might look like this:</p>
<ul>
<li><b>Select victims. </b>Anyone who has attached to the server before is a target.</li>
<li><b>Set up the attack. </b>Using the WiFi Pineapple, the hacker spoofs the SSI of the intended server.</li>
<li><b>Connect. </b>A student comes within range of the spoofed router and connects.</li>
<li><b>Attack. </b>The hacker can now see everything that moves from the device to the server and back.</li>
</ul>
<p>A quick search brings up plenty of <a href="https://blog.sean-wright.com/man-in-the-middle-with-wifi-pineapple/" target="_blank" rel="noopener noreferrer"><u>step-by-step instructions</u><span class="cmp-link__screen-reader-only">opens in a new tab</span></a> hackers can follow to craft code. All they need are willing victims.</p>
<p>Unfortunately, many people are willing to connect with WiFi resources that seem free and readily available. They may push past security warnings and decline commonsense steps so they can hop online and complete their tasks.</p>
<p>A hacker even launched an attack like this <a href="https://www.csoonline.com/article/2462478/hacker-hunts-and-pwns-wifi-pineapples-with-0-day-at-def-con.html" target="_blank" rel="noopener noreferrer"><u>at a conference for hackers</u><span class="cmp-link__screen-reader-only">opens in a new tab</span></a>, proving that it&#8217;s almost irresistible for some people.</p>
<p>But some devices now come with sophisticated warning systems, and some don&#8217;t allow connections with devices that don&#8217;t seem secure or legitimate. Some hackers believe the <a href="https://www.reddit.com/r/AskNetsec/comments/70h5ec/is_wifi_pineapple_still_worth_the_price/" target="_blank" rel="noopener noreferrer"><u>WiFi Pineapple heyday is over</u><span class="cmp-link__screen-reader-only">opens in a new tab</span></a>, as taking control is more difficult now than it once was.</p>
<p>But if a hacker can execute an attack like this, they can gain access to critical information, such as these:</p>
<ul>
<li>Social Security numbers</li>
<li>Photographs</li>
<li>Bank account numbers</li>
<li>Passwords</li>
</ul>
<h2 data-anchor="anchor-subtitle-4">Protecting Against Wireless Pineapple Attacks</h2>
<p>Hackers are clever, and they use all sorts of tips and tricks to gain access into assets they have no business touching.</p>
<p>Commonsense protection steps involve:</p>
<ul>
<li><b>Avoiding public WiFi. </b>Don&#8217;t connect to any device you don&#8217;t own. Rely on your cell service instead.</li>
<li><b>Turning off WiFi when you leave your house. </b>Don&#8217;t allow your device to scan for SSIDs as you move from location to location. Snap off the functionality when you&#8217;re on the go.</li>
<li><b>Leaning on a VPN. </b><a href="https://www.androidheadlines.com/2019/08/what-is-a-wifi-pineapple-and-can-it-compromise-your-security.html" target="_blank" rel="noopener noreferrer"><u>Virtual private networks</u><span class="cmp-link__screen-reader-only">opens in a new tab</span></a> (or VPNs) encrypt your data as it moves through the internet. Even if you&#8217;re connected via a WiFi Pineapple, your data will be protected.</li>
</ul>
<p>We can help too. Contact us to learn how Okta can help keep your data and users safe from network attacks and vulnerabilities.  <a href="https://www.okta.com/identity-101/wifi-pineapple/" target="_blank" rel="noopener">source</a></p>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3></h3>
<h3>in case the youtube videos are deleted here they are</h3>
<p>&nbsp;</p>
<div style="width: 640px;" class="wp-video"><video class="wp-video-shortcode" id="video-21137-1" width="640" height="360" preload="metadata" controls="controls"><source type="video/mp4" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/Build-a-23-Wi-Fi-Pineapple-in-6-Minutes-—-EASIEST-Method-pt-1.mp4?_=1" /><a href="https://goodshepherdmedia.net/wp-content/uploads/2025/07/Build-a-23-Wi-Fi-Pineapple-in-6-Minutes-—-EASIEST-Method-pt-1.mp4">https://goodshepherdmedia.net/wp-content/uploads/2025/07/Build-a-23-Wi-Fi-Pineapple-in-6-Minutes-—-EASIEST-Method-pt-1.mp4</a></video></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div style="width: 640px;" class="wp-video"><video class="wp-video-shortcode" id="video-21137-2" width="640" height="360" preload="metadata" controls="controls"><source type="video/mp4" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/Upgrading-the-23-Wi-Fi-Pineapple-for-MAX-Hackability-part-2.mp4?_=2" /><a href="https://goodshepherdmedia.net/wp-content/uploads/2025/07/Upgrading-the-23-Wi-Fi-Pineapple-for-MAX-Hackability-part-2.mp4">https://goodshepherdmedia.net/wp-content/uploads/2025/07/Upgrading-the-23-Wi-Fi-Pineapple-for-MAX-Hackability-part-2.mp4</a></video></div>
<div style="width: 640px;" class="wp-video"><video class="wp-video-shortcode" id="video-21137-3" width="640" height="360" preload="metadata" controls="controls"><source type="video/mp4" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/How-Hackers-Use-DNS-Spoofing-to-Phish-Passwords-WiFi-Pineapple-Demo.mp4?_=3" /><a href="https://goodshepherdmedia.net/wp-content/uploads/2025/07/How-Hackers-Use-DNS-Spoofing-to-Phish-Passwords-WiFi-Pineapple-Demo.mp4">https://goodshepherdmedia.net/wp-content/uploads/2025/07/How-Hackers-Use-DNS-Spoofing-to-Phish-Passwords-WiFi-Pineapple-Demo.mp4</a></video></div>
<div style="width: 640px;" class="wp-video"><video class="wp-video-shortcode" id="video-21137-4" width="640" height="360" preload="metadata" controls="controls"><source type="video/mp4" src="https://goodshepherdmedia.net/wp-content/uploads/2025/07/Did-you-know-you-can-make-your-own-Wifi-Pineapple-for-30_.mp4?_=4" /><a href="https://goodshepherdmedia.net/wp-content/uploads/2025/07/Did-you-know-you-can-make-your-own-Wifi-Pineapple-for-30_.mp4">https://goodshepherdmedia.net/wp-content/uploads/2025/07/Did-you-know-you-can-make-your-own-Wifi-Pineapple-for-30_.mp4</a></video></div>
]]></content:encoded>
					
		
		<enclosure url="https://goodshepherdmedia.net/wp-content/uploads/2025/07/Build-a-23-Wi-Fi-Pineapple-in-6-Minutes-—-EASIEST-Method-pt-1.mp4" length="0" type="video/mp4" />
<enclosure url="https://goodshepherdmedia.net/wp-content/uploads/2025/07/Upgrading-the-23-Wi-Fi-Pineapple-for-MAX-Hackability-part-2.mp4" length="0" type="video/mp4" />
<enclosure url="https://goodshepherdmedia.net/wp-content/uploads/2025/07/How-Hackers-Use-DNS-Spoofing-to-Phish-Passwords-WiFi-Pineapple-Demo.mp4" length="0" type="video/mp4" />
<enclosure url="https://goodshepherdmedia.net/wp-content/uploads/2025/07/Did-you-know-you-can-make-your-own-Wifi-Pineapple-for-30_.mp4" length="0" type="video/mp4" />

			</item>
		<item>
		<title>How to Install Node-Red to Home Assistant &#8211; Using Node-Red for Complex Home Automations</title>
		<link>https://goodshepherdmedia.net/complex-home-automation-with-node-red-and-home-assistant/</link>
		
		<dc:creator><![CDATA[The Truth News]]></dc:creator>
		<pubDate>Thu, 12 Jun 2025 08:57:22 +0000</pubDate>
				<category><![CDATA[Computer Hacks]]></category>
		<category><![CDATA[Cool Tech & Gadgets 📱⌚🎧⚡]]></category>
		<category><![CDATA[Electronic Projects]]></category>
		<category><![CDATA[Hackers / Master Programmers]]></category>
		<category><![CDATA[Home & Garden]]></category>
		<category><![CDATA[Home Automation]]></category>
		<category><![CDATA[Home Computing]]></category>
		<category><![CDATA[Home Defense / Safety]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Top Stories]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Zee Truthful News]]></category>
		<category><![CDATA[Complex Home Automation]]></category>
		<category><![CDATA[Complex Home Automations]]></category>
		<category><![CDATA[Home Assistant]]></category>
		<category><![CDATA[Home Assistant with Node-Red]]></category>
		<category><![CDATA[How to Install Node-Red]]></category>
		<category><![CDATA[Node-Red]]></category>
		<guid isPermaLink="false">https://goodshepherdmedia.net/?p=20775</guid>

					<description><![CDATA[How to Install Node-Red to Home Assistant &#8211; Using Node-Red for Complex Home Automations Node-RED is a flow-based, low-code development tool for visual programming, originally developed by IBM for wiring together hardware devices, APIs and online services as part of the Internet of things. Node-RED provides a web browser-based flow editor, which can be used [&#8230;]]]></description>
										<content:encoded><![CDATA[<header class="entry-header">
<h1><span style="color: #ff0000;">How to Install Node-Red to Home Assistant &#8211; Using Node-Red for Complex Home Automations</span></h1>
<p>Node-RED is a flow-based, low-code development tool for visual programming, originally developed by IBM for wiring together hardware devices, APIs and online services as part of the Internet of things. Node-RED provides a web browser-based flow editor, which can be used to create JavaScript functions.</p>
</header>
<p class="has-text-align-center">This guide will show you how to install Node-Red to Home Assistant and take you through a basic flow.</p>
<p>Node-Red is a low-code development tool for building simple to complex automation flows. The software runs within a web browser and works great within Home Assistant. The software is relatively easy to learn and allows easy viewing of complex logic flows.</p>
<p>Using Node-Red gives you an excellent visual overview of automation flows, making it much easier to understand, edit, and create. You can build flows that control automatic gates, lights, water pumps, and more.</p>
<p>If you haven’t already, we reco</p>
<p>This tutorial will explain how to install Node-Red to Home Assistant. We also go through the basics of setting up an automation flow. Both of these topics give you a decent insight into how you can get the most out of the software.</p>
<div id="AdThrive_Content_1_desktop" class="adthrive-ad adthrive-sticky-container adthrive-content adthrive-content-1 adthrive-ad-cls adthrive-video-stickyoutstream-new-player" data-google-query-id="CN75yfa_640DFS_rrQAd2XI7jg">
<h2 id="installing-node-red" class="wp-block-heading lbb-section-break mt-5 text-center">Installing Node-Red</h2>
<p><a href="https://nodered.org/" target="_blank" rel="noopener">Node-RED: Low-code programming for event-driven applications</a></p>
<p>The installation of Node Red is very straightforward, but there are a few requirements for a smooth installation process.</p>
<p>To install Node-Red within Home Assistant, you must run a version that supports add-ons such as supervised or the operating system. Alternatively, you can set up Node-Red as a separate docker and connect it to Home Assistant.</p>
<p><strong class="step_numbering">1.</strong> Within the Home Assistant web interface, click on the <strong>settings</strong> tab and then click on <strong>add-ons</strong>.</p>
<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20807" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Home-Assistant-Settings-Page-with-Add-Ons-1.webp" alt="" width="730" height="750" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Home-Assistant-Settings-Page-with-Add-Ons-1.webp 730w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Home-Assistant-Settings-Page-with-Add-Ons-1-389x400.webp 389w" sizes="(max-width: 730px) 100vw, 730px" /></figure>
<p><strong class="step_numbering">2.</strong> Click on <strong>add-store</strong> in the bottom right corner of the screen.</p>
<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20806" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Click-on-Add-on-Store-Button-2.webp" alt="" width="730" height="596" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Click-on-Add-on-Store-Button-2.webp 730w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Click-on-Add-on-Store-Button-2-400x327.webp 400w" sizes="(max-width: 730px) 100vw, 730px" /></figure>
<p><strong class="step_numbering">3.</strong> Using the search box, search for <strong>Node Red</strong>. Alternatively, you can scroll through the page until you find the Node-Red add-on.</p>
<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20805" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Add-On-Store-Search-Node-Red.webp" alt="" width="730" height="256" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Add-On-Store-Search-Node-Red.webp 730w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Add-On-Store-Search-Node-Red-400x140.webp 400w" sizes="(max-width: 730px) 100vw, 730px" /></figure>
<p><strong class="step_numbering">4.</strong> The page you should now see will contain all the details about the add-on. You can check through all the details if you want to know what you are about to install. Once you are ready to install, click <strong>Install</strong>.</p>
<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20804" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Home-Assistant-Node-Red-Install-Screen.webp" alt="" width="730" height="534" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Home-Assistant-Node-Red-Install-Screen.webp 730w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Home-Assistant-Node-Red-Install-Screen-400x293.webp 400w" sizes="(max-width: 730px) 100vw, 730px" /></figure>
<p><strong class="step_numbering">5.</strong> Now, navigate to the configuration tab. In this tab, locate the <code>credential_secret</code> field and enter a strong password. Make sure you save this password, as you may need it in the future. I use 1Password for storing passwords, but other software such as <a href="https://pimylifeup.com/raspberry-pi-bitwarden/">Bitwarden</a> or <a href="https://0g.pimylifeup.com/czn8ML/nordpass" target="_blank" rel="noreferrer noopener sponsored nofollow">Nordpass</a> (Affiliate Link) would also be solid choices.</p>
<p>You will also need to disable SSL if it is not enabled on your Home Assistant installation. To disable SSL, click the SSL button so it is greyed out. If you leave it on and Home Assistant does not support SSL, Node-Red will fail to start.</p>
<p>Once you are done, click on <strong>save</strong>.</p>
<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20803" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Credential-Secret-and-Disable-SSL.webp" alt="" width="730" height="695" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Credential-Secret-and-Disable-SSL.webp 730w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Credential-Secret-and-Disable-SSL-400x381.webp 400w" sizes="(max-width: 730px) 100vw, 730px" /></figure>
<p><strong class="step_numbering">6.</strong> After you have saved the <strong>credential secret</strong> and <strong>disabled SSL</strong>, return to the <strong>info</strong> tab. On this page, click on “<strong>Start</strong>“. Node-Red should start without issue. If it is not starting, navigate to the <strong>log</strong> tab and look through the logs for errors.</p>
<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20802" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Home-Assistant-Node-Red-Installed.webp" alt="" width="730" height="362" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Home-Assistant-Node-Red-Installed.webp 730w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Home-Assistant-Node-Red-Installed-400x198.webp 400w" sizes="(max-width: 730px) 100vw, 730px" /></figure>
<p><strong class="step_numbering">7.</strong> If you click on Node-Red in the sidebar or “<strong>Open Web UI</strong>” on the add-on page, it will take you to the Node-Red application. You can now start writing your flows to automate your Home Assistant setup.</p>
<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20801" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Started.webp" alt="" width="730" height="410" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Started.webp 730w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Started-400x225.webp 400w" sizes="(max-width: 730px) 100vw, 730px" /></figure>
<div id="AdThrive_Content_10_desktop" class="adthrive-ad adthrive-sticky-container adthrive-content adthrive-content-10 adthrive-ad-cls" data-google-query-id="CLPJkZXA640DFX-YjggdCeEn2g">
<div id="google_ads_iframe_/18190176,22523461534/AdThrive_Content/5c49e4afdf7d2523f3865216_0__container__"></div>
</div>
<h2 id="creating-your-first-node-red-flow" class="wp-block-heading lbb-section-break mt-5 text-center">Creating your First Node-Red Flow</h2>
<p>Node-Red can be a little daunting at first, but once you understand the basics, it is a powerful tool that allows you to handle complex and simple automations.</p>
<p>In this short tutorial, we will go through the basics of creating a flow that uses a Home Assistant node.</p>
<p>The following steps will take you through how to send a notification whenever the temperature of our weather station exceeds 15°C.</p>
<p><strong class="step_numbering">1.</strong> The first node we will use is the “<strong>Events: State</strong>” node. Drag this node onto the grid</p>
<div id="AdThrive_Content_11_desktop" class="adthrive-ad adthrive-sticky-container adthrive-content adthrive-content-11 adthrive-ad-cls" data-google-query-id="COPJ1ZXA640DFYyAjggdCzAivw">
<div id="google_ads_iframe_/18190176,22523461534/AdThrive_Content/5c49e4afdf7d2523f3865216_1__container__"></div>
</div>
<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20800" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Create-Events-State-Node.webp" alt="" width="730" height="515" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Create-Events-State-Node.webp 730w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Create-Events-State-Node-400x282.webp 400w" sizes="(max-width: 730px) 100vw, 730px" /></figure>
<div id="AdThrive_Content_12_desktop" class="adthrive-ad adthrive-sticky-container adthrive-content adthrive-content-12 adthrive-ad-cls" data-google-query-id="CIbp8pXA640DFfmYjggdjYESSg">
<div id="google_ads_iframe_/18190176,22523461534/AdThrive_Content/5c49e4afdf7d2523f3865216_2__container__"></div>
</div>
<p>Next, double-click on the node to open the options available. Fill in each of the relevant properties. Below is what I filled in.</p>
<ul class="wp-block-list">
<li><strong>Name</strong>: Check Temperature</li>
<li><strong>Server</strong>: Home Assistant</li>
<li><strong>Entity</strong>: Outdoor Temperature</li>
<li><strong>If State</strong>: &gt;= 15 (Greater or equal to 15)</li>
<li><strong>For</strong>: 1 Minute</li>
<li><strong>State type</strong>: Number</li>
</ul>
<p>I also do not have any checkboxes ticked for “<strong>Ignore State Change Event When</strong>“.</p>
<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20799" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/State-Node-Properties.webp" alt="" width="730" height="1205" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/State-Node-Properties.webp 730w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/State-Node-Properties-242x400.webp 242w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/State-Node-Properties-620x1024.webp 620w" sizes="(max-width: 730px) 100vw, 730px" /></figure>
<div id="AdThrive_Content_13_desktop" class="adthrive-ad adthrive-sticky-container adthrive-content adthrive-content-13 adthrive-ad-cls" data-google-query-id="CJvytZbA640DFfLprQAdVdUSiA">
<div id="google_ads_iframe_/18190176,22523461534/AdThrive_Content/5c49e4afdf7d2523f3865216_3__container__"></div>
</div>
<p><strong class="step_numbering">2.</strong> Next, drag and drop a debug node. These nodes will output data that can help diagnose and fix issues with your flows.</p>
<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20798" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Nodes.webp" alt="" width="633" height="301" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Nodes.webp 633w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Nodes-400x190.webp 400w" sizes="(max-width: 633px) 100vw, 633px" /></figure>
<p>On each node, there are dots. These dots represent different functions. For example, our <strong>Check Temperature</strong> node has two dots. One is for when our logic is false, and the other for when it is true.</p>
<p>We click and drag our true node and connect it to the debug node.</p>
<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20797" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Debug-Nodes.webp" alt="" width="501" height="234" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Debug-Nodes.webp 501w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Debug-Nodes-400x187.webp 400w" sizes="(max-width: 501px) 100vw, 501px" /></figure>
<div id="AdThrive_Content_14_desktop" class="adthrive-ad adthrive-sticky-container adthrive-content adthrive-content-14 adthrive-ad-cls" data-google-query-id="CMHO9JbA640DFcC0jggdZkAAjg">
<div id="google_ads_iframe_/18190176,22523461534/AdThrive_Content/5c49e4afdf7d2523f3865216_4__container__"></div>
</div>
<p>The flow will run when you click deploy in the top right-hand corner.</p>
<p>In this example, if the temperature exceeds 15°C, the debug node will output after 1 minute. If it is not higher than 15°C, nothing will output.</p>
<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20796" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Sidebar-Debug-Info.webp" alt="" width="312" height="298" /></figure>
<p><strong class="step_numbering">3.</strong> Next, we will want to notify our users that the temperature is too high. To do this, drag a “<strong>Call Service</strong>” node onto the grid. Connect the true output to the input on the “<strong>Call Service</strong>” Node.</p>
<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20795" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Call-Service-Node.webp" alt="" width="544" height="219" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Call-Service-Node.webp 544w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Call-Service-Node-400x161.webp 400w" sizes="(max-width: 544px) 100vw, 544px" /></figure>
<div id="AdThrive_Content_15_desktop" class="adthrive-ad adthrive-sticky-container adthrive-content adthrive-content-15 adthrive-ad-cls" data-google-query-id="CO2HyJfA640DFcmZjggdo_wXWw">
<div id="google_ads_iframe_/18190176,22523461534/AdThrive_Content/5c49e4afdf7d2523f3865216_5__container__"></div>
</div>
<p>Now, double-click on the call service node to edit it. Fill in each of the relevant properties. Below is what I filled in.</p>
<ul class="wp-block-list">
<li><strong>Name</strong>: Enter the name that you want the node to be referred to.</li>
<li><strong>Server</strong>: You shouldn’t need to update this as it should be <strong>Home Assistant</strong>.</li>
<li><strong>Domain</strong>: You will need to set this to <strong>notify</strong>.</li>
<li><strong>Service</strong>: Choose a device that you wish to notify. Choosing the <strong>notify</strong> option will notify all possible users.</li>
<li><strong>Data</strong>: This is where you need to specify the notification details. At the bottom of the properties is an example. Clicking “<strong>Load Example Data</strong>” will pre-populate the data field, which you can easily edit.</li>
</ul>
<p>Below is an example of my entry into the data field.</p>
<pre class="wp-block-code language-json"><code class="header language-json"><span class="hljs-punctuation">{</span>
   <span class="hljs-attr">"message"</span><span class="hljs-punctuation">:</span><span class="hljs-string">"Temperature is too High!"</span><span class="hljs-punctuation">,</span>
   <span class="hljs-attr">"title"</span><span class="hljs-punctuation">:</span><span class="hljs-string">"The temperature is higher than 15°C."</span>	
<span class="hljs-punctuation">}</span></code><a class="copy-code-block fa-copy" href="https://pimylifeup.com/install-node-red-home-assistant/#copy" aria-label="Copy code to clipboard">Copy</a></pre>
<div id="AdThrive_Content_16_desktop" class="adthrive-ad adthrive-sticky-container adthrive-content adthrive-content-16 adthrive-ad-cls" data-google-query-id="CMrL-JfA640DFeqEjggdPM8ijw">
<div id="google_ads_iframe_/18190176,22523461534/AdThrive_Content/5c49e4afdf7d2523f3865216_6__container__"></div>
</div>
<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20794" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Call-Service-Node-Properties.webp" alt="" width="531" height="807" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Call-Service-Node-Properties.webp 531w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Call-Service-Node-Properties-263x400.webp 263w" sizes="(max-width: 531px) 100vw, 531px" /></figure>
<div id="AdThrive_Content_17_desktop" class="adthrive-ad adthrive-sticky-container adthrive-content adthrive-content-17 adthrive-ad-cls" data-google-query-id="CLizl5jA640DFZLArQAdHhQDfQ">
<div id="google_ads_iframe_/18190176,22523461534/AdThrive_Content/5c49e4afdf7d2523f3865216_7__container__"></div>
</div>
<p><strong class="step_numbering">4.</strong> To avoid too many notifications, you may want to place a <strong>delay</strong> node. This node will allow a single notification to be sent for a specified time. To do this, drag and drop a <strong>delay node</strong> in between our check temperature and notify gus nodes.</p>
<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20793" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Rate-Limit.webp" alt="" width="855" height="262" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Rate-Limit.webp 855w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Rate-Limit-400x123.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Rate-Limit-768x235.webp 768w" sizes="(max-width: 855px) 100vw, 855px" /></figure>
<p>Double-click on the delay node and update the settings to the following.</p>
<ul class="wp-block-list">
<li><strong>Action</strong>: Rate Limit and All Messages.</li>
<li><strong>Rate</strong>: 1 msg(s) per 15 minutes.</li>
<li>Change <strong>Queue Intermediate Messages</strong> to <strong>Drop Intermediate Messages</strong></li>
<li><strong>Name</strong>: Rate Limit</li>
</ul>
<div id="AdThrive_Content_18_desktop" class="adthrive-ad adthrive-sticky-container adthrive-content adthrive-content-18 adthrive-ad-cls" data-google-query-id="CJavsZjA640DFarArQAdu-I0eA">
<div id="google_ads_iframe_/18190176,22523461534/AdThrive_Content/5c49e4afdf7d2523f3865216_8__container__"></div>
</div>
<p>These properties will allow a single message every fifteen minutes. Any messages that try to be sent in the meantime will be dropped.</p>
<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20792" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Delay-Node-Properties-v2.webp" alt="" width="493" height="434" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Delay-Node-Properties-v2.webp 493w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Delay-Node-Properties-v2-400x352.webp 400w" sizes="(max-width: 493px) 100vw, 493px" /></figure>
<div id="AdThrive_Content_19_desktop" class="adthrive-ad adthrive-sticky-container adthrive-content adthrive-content-19 adthrive-ad-cls" data-google-query-id="COa24ZjA640DFUy-jggd3GY6fw">
<div id="google_ads_iframe_/18190176,22523461534/AdThrive_Content/5c49e4afdf7d2523f3865216_9__container__"><iframe id="google_ads_iframe_/18190176,22523461534/AdThrive_Content/5c49e4afdf7d2523f3865216_9" tabindex="0" title="3rd party ad content" src="https://2ce263ff02c48bd25ced62d985b69e18.safeframe.googlesyndication.com/safeframe/1-0-45/html/container.html" name="" width="1" height="1" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" sandbox="allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation" data-is-safeframe="true" aria-label="Advertisement" data-google-container-id="v" data-load-complete="true" data-mce-fragment="1"></iframe></div>
</div>
<p><strong class="step_numbering">5.</strong> You should now have a basic flow that will notify users whenever the temperature goes above 15°C for over a minute. Feel free to change and alter this flow for other purposes.</p>
<p>You can remove the debug node if you are finished debugging. Alternatively, you can click the green square next to the node to deactivate it.</p>
<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20791" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Disable-Debug.webp" alt="" width="730" height="224" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Disable-Debug.webp 730w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-Red-Disable-Debug-400x123.webp 400w" sizes="(max-width: 730px) 100vw, 730px" /></figure>
<h2 id="conclusion" class="wp-block-heading lbb-section-break mt-5 text-center">Conclusion</h2>
<p>I hope you now have Node-Red installed and configured on your Home Assistant installation. Our basic flow introduced some basics of using the software to run automations. Once you understand the basics, you can create some cool automations using the data from some of the sensors and devices in your home.</p>
<p>We are constantly working on more Home Assistant tutorials, so if there is anything that you would like to see, please let us know. I recommend checking out some of the other tutorials for great ideas on what you can do with this amazing software.</p>
<p>If you encounter any problems or have any suggestions, please do not hesitate to leave a comment down below. <a href="https://pimylifeup.com/install-node-red-home-assistant/" target="_blank" rel="noopener">source</a></p>
</div>
<div data-google-query-id="CN75yfa_640DFS_rrQAd2XI7jg"></div>
<div data-google-query-id="CN75yfa_640DFS_rrQAd2XI7jg">
<hr />
</div>
<div class="field field-name-field-title-article field-type-text field-label-hidden">
<div class="field-items">
<h1 class="field-item even">Node-RED, the visual programming tool for Internet of Things</h1>
<div class="blog-header">
<div class="field field-name-field-title-article field-type-text field-label-hidden">
<div class="field-items"></div>
</div>
</div>
<div class="blog-image">
<div class="field field-name-field-media field-type-media field-label-hidden">
<div class="field-items">
<div class="field-item even">
<div id="file-920" class="file file-image file-image-png">
<h2 class="element-invisible"></h2>
<div class="content"><img loading="lazy" decoding="async" class="alignnone  wp-image-20809" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-example-article-hello-world_1-1-1024x568.png" alt="" width="1006" height="558" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-example-article-hello-world_1-1-1024x568.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-example-article-hello-world_1-1-400x222.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-example-article-hello-world_1-1-768x426.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-example-article-hello-world_1-1-1536x852.png 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-example-article-hello-world_1-1-2048x1136.png 2048w" sizes="(max-width: 1006px) 100vw, 1006px" /></div>
</div>
</div>
</div>
</div>
</div>
<div class="blog-content">
<div class="field field-name-body field-type-text-with-summary field-label-hidden">
<div class="field-items">
<div class="field-item even">
<p>&nbsp;</p>
<p>From the beginning of programming, one of the industry’s main challenges has been to <strong>facilitate the applications development to simplify the integration</strong> between the hardware devices, the software and us, the humans. Thanks to Node-RED we are much closer of this goal. <strong>Programming, without programming</strong>.</p>
<p><strong>What is Node-RED and what is it for?</strong></p>
<p>Node-RED is an open-source development tool based on visual programming that was created by IBM to connect hardware devices, APIs and online services.</p>
<p>Node-RED is a solid tool, easy to learn, and it does not require any programming knowledge. It has been consolidated as one of the main applications for <strong>real-time data management and transformation</strong> for IoT and Industry 4.0 solutions.</p>
<p>Node-RED allows to graphically connect predefined blocks, called nodes, to develop a concrete task. The nodes connection, usually a combination of input nodes, processing nodes and output nodes, when wired together, make up a flow.</p>
<p>Among all the available nodes we can find standard protocols as <strong>MQTT, REST, Modbus, OPC-UA, Bacnet, Websocket</strong>; and third party API integrations as <strong>Microsoft Azure, Amazon Web Services, Twitter, Facebook</strong> and many more.</p>
<p>&nbsp;</p>
<div align="center"><img loading="lazy" decoding="async" class="size-full wp-image-20811 alignnone" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/node_red_mqtt_modbus_example.png" alt="" width="681" height="478" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/node_red_mqtt_modbus_example.png 681w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/node_red_mqtt_modbus_example-400x281.png 400w" sizes="(max-width: 681px) 100vw, 681px" /></div>
<p>&nbsp;</p>
<p><strong>Where can I install Node-RED?</strong></p>
<p>Node-RED is built on Node.js, taking full advantage of its power and <strong>assuring scalability, liability and low hardware requirements</strong>. These features allow to run Node-RED in personal <strong>computers, cloud servers and low-cost embedded</strong> hardware.</p>
<p>If you want to take your first steps in Node-RED you just need to click <a href="https://nodered.org/docs/getting-started/">here</a> to access to all the documentation. Follow step by step how to install the tool on your computer, your cloud services regular provider or your embedded device <a href="https://www.pickdata.net/emanager-industrial-iot-modular-controller-edge-computing">eManager</a>.</p>
<p>&nbsp;</p>
<p><strong>Nodes library</strong></p>
<p>The nature of the tool, being open source, and the facility to develop new nodes, come together into a <a href="https://flows.nodered.org/">nodes library</a> which grows each day with new community contributions.</p>
<p>Nowadays we can find <strong>more than 2500 available nodes</strong> in the Node-RED official library, including Smart Home integrations, converters between IoT protocols, geolocation functions, OAuth2 authentication and many more.</p>
<p>&nbsp;</p>
<p><strong>Hello world in Node-RED</strong></p>
<p>To conclude this article there is no better way than taking your first steps on Node-RED generating the classic Hello world. Below, we show step by step the process to achieve it:</p>
<p><strong>Message creation with Inject node</strong></p>
<ol>
<li>If you are running Node-RED on your computer, you can access <a href="http://127.0.0.1:1880/">http://127.0.0.1:1880</a> or whatever address or hostname you’re using</li>
<li>If it is our first time in Node-RED, we will see a flow named <em>Flow 1</em></li>
<li>On the node palette on the left side of the Node-RED, we will select the <em>Inject</em> node and will drag it onto our flow</li>
<li>In order to edit the node we will double click on it. After that, we will select <em>string </em>on the Payload field and we will write <strong>Hello world!</strong></li>
<li>Once we finish the previous steps, we click Done</li>
</ol>
<div align="center"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20812" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-RED-Hello-World-PickData-1.png" alt="" width="681" height="523" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-RED-Hello-World-PickData-1.png 681w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-RED-Hello-World-PickData-1-400x307.png 400w" sizes="(max-width: 681px) 100vw, 681px" /></div>
<p><strong>Printing our message</strong></p>
<ol>
<li>In order to add a destination for our message we will select the <em>Debug</em> node. We will click and drag it onto our flow. It’s very important to place it on the right-hand side of the <em>Inject</em> node</li>
<li>To connect both nodes we just need to click the <em>Inject</em> node&#8217;s output and drag it to the <em>Debug</em> node&#8217;s input. A wire that links both nodes will be created</li>
<li><em>Debug</em> node will automatically print the message to the console window as we will see in the next step</li>
</ol>
<div align="center"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20813" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-RED-Hello-World-PickData-2.png" alt="" width="681" height="522" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-RED-Hello-World-PickData-2.png 681w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-RED-Hello-World-PickData-2-400x307.png 400w" sizes="(max-width: 681px) 100vw, 681px" /></div>
<p><strong>Deployment</strong></p>
<ol>
<li>In order to start our application you must click on <em>Deploy</em> button</li>
<li>Now click the <em>Debug</em> tab in the right-hand side of the editor window</li>
<li>Finally, to launch our message you will click on the blue button coming out from the left-hand side of the <em>Inject</em> node</li>
<li>“Hello world” will appear on the <em>Debug</em> screen. Welcome to <strong>Node-RED</strong>!</li>
</ol>
<div align="center"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20814" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-RED-Hello-World-PickData-3.png" alt="" width="1001" height="524" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-RED-Hello-World-PickData-3.png 1001w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-RED-Hello-World-PickData-3-400x209.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/Node-RED-Hello-World-PickData-3-768x402.png 768w" sizes="(max-width: 1001px) 100vw, 1001px" /></div>
<p>&nbsp;</p>
<p>As PickData, we firmly believe in solutions like Node-RED, because those allow you to focus on what really matters, <strong>bring our added value to the solutions</strong> and skip losing time between ins and outs of the usual programming. <a href="https://www.pickdata.net/news/node-red-visual-programming-tool-iot" target="_blank" rel="noopener">source</a></p>
<p>&nbsp;</p>
</div>
</div>
</div>
</div>
<div></div>
</div>
</div>
<hr />
<h1 class="article-header-title">Node-RED has replaced my complex Home Assistant automations, and it does them so much better</h1>
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-20815" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/deploy-options-in-node-red-in-home-assistant.avif" alt="" width="1442" height="810" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/deploy-options-in-node-red-in-home-assistant.avif 2200w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/deploy-options-in-node-red-in-home-assistant-400x225.avif 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/deploy-options-in-node-red-in-home-assistant-1024x575.avif 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/deploy-options-in-node-red-in-home-assistant-768x431.avif 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/deploy-options-in-node-red-in-home-assistant-1536x863.avif 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/deploy-options-in-node-red-in-home-assistant-2048x1151.avif 2048w" sizes="(max-width: 1442px) 100vw, 1442px" /></p>
<p class="adsninja-injected-repeatable-ad-afterend">The self-hosting ecosystem is rife with cool and quirky apps designed to automate every facet of your life. There’s the holy <a href="https://www.xda-developers.com/use-terraform-with-proxmox/" target="_blank" rel="noopener">Terraform</a> and <a href="https://www.xda-developers.com/ansible-automation/" target="_blank" rel="noopener">Ansible</a> combo for home lab enthusiasts who love watching VMs come to life without pressing a single button, while n8n can handle all software-based automations. On the smart home side, you’ll often find <a href="https://www.xda-developers.com/beginners-guide-to-setting-up-home-assistant/" target="_blank" rel="noopener">Home Assistant</a> as the most recommended utility for creating schematics to control your IoT gadgets. And well, HASS can serve you well with its trigger-action workflows.</p>
<p>For YAML experts, you can even design long scripts to automate your smart home. But once you get into complicated workflows involving multiple sensors, actuators, and if-else statements, HASS starts to become rather unintuitive. While I still rely on Home Assistant for quick automations, Node-RED is my preferred platform for creating extended automation workflows spanning several smart devices in my living space.</p>
<div id="220d-4a48-b2cfb421ee77" class="display-card  article article-card small  no-badge  active-content                      " data-include-community-rating="false" data-nosnippet="">
<div class="w-img ">
<div class="body-img landscape ">
<div class="responsive-img  img-featured-4-pin-single-size-featured-secondary" data-img-url="https://static1.xdaimages.com/wordpress/wp-content/uploads/wm/2025/05/home-assistant-frigate.jpg" data-modal-id="single-image-modal" data-modal-container-id="single-image-modal-container" data-img-caption="&quot;&quot;">
<figure><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20816" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-frigate.avif" alt="" width="844" height="536" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-frigate.avif 844w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-frigate-400x254.avif 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-frigate-768x488.avif 768w" sizes="(max-width: 844px) 100vw, 844px" /></figure>
</div>
</div>
</div>
<div class="w-display-card-content regular article-block">
<p class="display-card-excerpt">There&#8217;s nothing you can&#8217;t pull off with Home Assistant blueprints</p>
<div class="w-display-card-extra"></div>
<div class="w-display-card-details">
<div class="w-display-card-meta"></div>
</div>
</div>
</div>
<h2 id="it-pairs-well-with-my-home-assistant-devices">It pairs well with my Home Assistant devices</h2>
<h3 id="but-hass-isn-rsquo-t-the-only-data-server-for-my-node-red-instance">But HASS isn’t the only data server for my Node-RED instance</h3>
<p>I consider Home Assistant the centerpiece of my rat’s nest of an apartment and have mapped most smart devices, IoT gadgets, and even home lab equipment (via HACS integrations) to my HASS hub. As such, it acts as a data-gathering terminal in addition to its role as a control center.</p>
<p>Since my Node-RED instance is connected to my HASS server, it can directly grab statistics from my devices and push any message payloads I define in my custom workflows. I use a standalone Node-RED container instead of running it on top of Home Assistant, so I don’t have to rely on just HASS for my smart home automation.</p>
<p class="adsninja-injected-repeatable-ad-afterend">On that subject, I’ve already connected my Node-RED server to a Raspberry Pi-based MQTT broker, so I can automate MQTT communication with just these services. Heck, it even integrates with external APIs and webhooks, making it perfect for the times when I want to use the VMs and containers from my Proxmox server for my home automation projects.</p>
<h2 id="amazing-for-automation-chains">Amazing for automation chains</h2>
<h3 id="the-node-based-workflow-makes-everything-easier">The node-based workflow makes everything easier</h3>
<div class="body-img landscape ">
<div class="responsive-img  image-expandable  img-article-item" data-img-url="https://static1.xdaimages.com/wordpress/wp-content/uploads/wm/2025/03/node-red-home-assistant-1.jpg" data-modal-id="single-image-modal" data-modal-container-id="single-image-modal-container" data-img-caption="&quot;&quot;">
<figure><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20817" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-home-assistant-1.avif" alt="" width="1650" height="928" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-home-assistant-1.avif 1650w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-home-assistant-1-400x225.avif 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-home-assistant-1-1024x576.avif 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-home-assistant-1-768x432.avif 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-home-assistant-1-1536x864.avif 1536w" sizes="(max-width: 1650px) 100vw, 1650px" /></figure>
</div>
</div>
<p>Upon first glance, a Node-RED canvas filled to the brim with node chains, functions, and variables can seem intimidating. However, the ability to represent every device as a node makes it easy to organize everything, and I can import multiple IoT products inside a single workflow.</p>
<p>On Home Assistant, I’d have to cycle between the Entities, Helpers, Scripts, and Events tabs every time I want to create a multi-device automation chain. Besides the added advantage of accessing my smart devices from a single page, Node-RED lets me reuse the function nodes as many times as I want, which is a godsend for projects requiring complex if-else logic with branching instructions.</p>
<h3 id="no-more-yaml-shenanigans">No more YAML shenanigans</h3>
<div class="valnet-gallery">
<div id="article-gallery-1-645238902" class="article__gallery type-gallery " data-gallery-thumbnail-id="gallery-thumbnails-1-645238902" data-gallery-id="main-carousel-1-645238902" data-article-gallery="article-gallery-modal-1-645238902" data-gallery-lightbox="gallery-modal-1-645238902" data-gallery-thumbnail-img-class="gallery-thumbnails-1-645238902-img">
<div class="w-gallery-carousel">
<section id="main-carousel-1-645238902" class="splide splide-gallery splide--fade splide--ltr splide--draggable is-active is-overflow is-initialized" data-gallery-expanded-id="main-expanable-carousel-1-645238902" data-gallery-expanded-thumbnail-id="expanded-gallery-thumbnails-1-645238902" aria-roledescription="carousel">
<div class="splide__arrows splide__arrows--ltr"><img loading="lazy" decoding="async" class="alignnone  wp-image-20818" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/collections-in-node-red-library.avif" alt="" width="1124" height="640" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/collections-in-node-red-library.avif 2458w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/collections-in-node-red-library-400x228.avif 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/collections-in-node-red-library-1024x583.avif 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/collections-in-node-red-library-768x437.avif 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/collections-in-node-red-library-1536x875.avif 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/collections-in-node-red-library-2048x1166.avif 2048w" sizes="(max-width: 1124px) 100vw, 1124px" /></div>
<div id="main-carousel-1-645238902-track" class="splide__track splide__track--fade splide__track--ltr splide__track--draggable" aria-live="polite" aria-atomic="true">
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-20819" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/easily-adding-a-connecting-node-on-flow-sheet-in-node-red-with-home-assistant.avif" alt="" width="1226" height="690" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/easily-adding-a-connecting-node-on-flow-sheet-in-node-red-with-home-assistant.avif 1500w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/easily-adding-a-connecting-node-on-flow-sheet-in-node-red-with-home-assistant-400x225.avif 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/easily-adding-a-connecting-node-on-flow-sheet-in-node-red-with-home-assistant-1024x576.avif 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/easily-adding-a-connecting-node-on-flow-sheet-in-node-red-with-home-assistant-768x432.avif 768w" sizes="(max-width: 1226px) 100vw, 1226px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20820" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-automation-nodes-in-node-red-library.avif" alt="" width="1500" height="844" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-automation-nodes-in-node-red-library.avif 1500w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-automation-nodes-in-node-red-library-400x225.avif 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-automation-nodes-in-node-red-library-1024x576.avif 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-automation-nodes-in-node-red-library-768x432.avif 768w" sizes="(max-width: 1500px) 100vw, 1500px" /></p>
<picture><source srcset="https://static1.xdaimages.com/wordpress/wp-content/uploads/wm/2025/05/right-click-options-for-node-in-node-red-with-home-assistant.jpg?q=49&amp;fit=crop&amp;w=750&amp;h=422&amp;dpr=2" media="(min-width: 1024px)" data-srcset="https://static1.xdaimages.com/wordpress/wp-content/uploads/wm/2025/05/right-click-options-for-node-in-node-red-with-home-assistant.jpg?q=49&amp;fit=crop&amp;w=750&amp;h=422&amp;dpr=2" /><source srcset="https://static1.xdaimages.com/wordpress/wp-content/uploads/wm/2025/05/right-click-options-for-node-in-node-red-with-home-assistant.jpg?q=49&amp;fit=crop&amp;w=735&amp;h=413&amp;dpr=2" media="(min-width: 768px)" data-srcset="https://static1.xdaimages.com/wordpress/wp-content/uploads/wm/2025/05/right-click-options-for-node-in-node-red-with-home-assistant.jpg?q=49&amp;fit=crop&amp;w=735&amp;h=413&amp;dpr=2" /><source srcset="https://static1.xdaimages.com/wordpress/wp-content/uploads/wm/2025/05/right-click-options-for-node-in-node-red-with-home-assistant.jpg?q=49&amp;fit=crop&amp;w=705&amp;h=397&amp;dpr=2" media="(min-width: 481px)" data-srcset="https://static1.xdaimages.com/wordpress/wp-content/uploads/wm/2025/05/right-click-options-for-node-in-node-red-with-home-assistant.jpg?q=49&amp;fit=crop&amp;w=705&amp;h=397&amp;dpr=2" /><source srcset="https://static1.xdaimages.com/wordpress/wp-content/uploads/wm/2025/05/right-click-options-for-node-in-node-red-with-home-assistant.jpg?q=49&amp;fit=crop&amp;w=360&amp;h=202&amp;dpr=2" media="(min-width: 0px)" data-srcset="https://static1.xdaimages.com/wordpress/wp-content/uploads/wm/2025/05/right-click-options-for-node-in-node-red-with-home-assistant.jpg?q=49&amp;fit=crop&amp;w=360&amp;h=202&amp;dpr=2" /><img loading="lazy" decoding="async" class="" src="https://static1.xdaimages.com/wordpress/wp-content/uploads/wm/2025/05/right-click-options-for-node-in-node-red-with-home-assistant.jpg" alt="Right-click options for a node in Node-RED with Home Assistant" width="1316" height="740" data-img-url="https://static1.xdaimages.com/wordpress/wp-content/uploads/wm/2025/05/right-click-options-for-node-in-node-red-with-home-assistant.jpg" /><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20822" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/right-click-options-for-node-in-node-red-with-home-assistant-1.avif" alt="" width="1500" height="844" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/right-click-options-for-node-in-node-red-with-home-assistant-1.avif 1500w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/right-click-options-for-node-in-node-red-with-home-assistant-1-400x225.avif 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/right-click-options-for-node-in-node-red-with-home-assistant-1-1024x576.avif 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/right-click-options-for-node-in-node-red-with-home-assistant-1-768x432.avif 768w" sizes="(max-width: 1500px) 100vw, 1500px" /></picture>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20823" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-backup-2.avif" alt="" width="1500" height="844" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-backup-2.avif 1500w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-backup-2-400x225.avif 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-backup-2-1024x576.avif 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-backup-2-768x432.avif 768w" sizes="(max-width: 1500px) 100vw, 1500px" /></p>
</div>
</section>
<section id="gallery-thumbnails-1-645238902" class="splide gallery-thumbnails splide--slide splide--ltr splide--draggable splide--nav is-active is-overflow is-initialized" aria-roledescription="carousel">
<div id="gallery-thumbnails-1-645238902-track" class="splide__track splide__track--slide splide__track--ltr splide__track--draggable splide__track--nav"></div>
</section>
</div>
</div>
</div>
<p>Although YAML syntax is nowhere near as complex as a mainstream programming language’s coding rules, it’s a pain to design complicated workflows with it. Home Assistant makes YAML scripting somewhat easy with the Developer Tools tab, but it’s far from the most intuitive option, especially since I can just use Node-RED.</p>
<p class="adsninja-injected-repeatable-ad-beforebegin">That’s because Node-RED has a minimal coding approach, as even the most complicated automation can be arranged in a node-based workflow. This visual aspect makes it easier to add nested logic, chains of loops, and long branches in a Node-RED canvas. As if that’s not enough, I can install custom modules and libraries for most communication protocols and external APIs in Node-RED.</p>
<h3 id="solid-troubleshooting-provisions">Solid troubleshooting provisions</h3>
<div class="body-img landscape ">
<div class="responsive-img  image-expandable  img-article-item" data-img-url="https://static1.xdaimages.com/wordpress/wp-content/uploads/wm/2025/02/node-red-blinds.jpg" data-modal-id="single-image-modal" data-modal-container-id="single-image-modal-container" data-img-caption="&quot;&quot;">
<figure><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20824" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-blinds.avif" alt="" width="1650" height="928" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-blinds.avif 1650w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-blinds-400x225.avif 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-blinds-1024x576.avif 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-blinds-768x432.avif 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/node-red-blinds-1536x864.avif 1536w" sizes="(max-width: 1650px) 100vw, 1650px" /></figure>
</div>
</div>
<p>Finally, Node-RED makes finding errors in my workflow a cinch. It’s a lot easier to detect errors in a Node-RED-based flow than a huge YAML file, where I can have several indentation errors because of accidentally pressing the Spacebar or Enter keys. In contrast, my mistakes are infinitely easier to catch on Node-RED’s canvas, as I can see how the different gadgets affect each other.</p>
<h3 id="that-said-hass-is-better-for-simple-automation-projects">That said, HASS is better for simple automation projects</h3>
<div class="valnet-gallery">
<div id="article-gallery-2-495544307" class="article__gallery type-gallery " data-gallery-thumbnail-id="gallery-thumbnails-2-495544307" data-gallery-id="main-carousel-2-495544307" data-article-gallery="article-gallery-modal-2-495544307" data-gallery-lightbox="gallery-modal-2-495544307" data-gallery-thumbnail-img-class="gallery-thumbnails-2-495544307-img">
<div class="w-gallery-carousel">
<section id="main-carousel-2-495544307" class="splide splide-gallery splide--fade splide--ltr splide--draggable is-active is-overflow is-initialized" data-gallery-expanded-id="main-expanable-carousel-2-495544307" data-gallery-expanded-thumbnail-id="expanded-gallery-thumbnails-2-495544307" aria-roledescription="carousel"><button class="expand icon i-expand" type="button" data-stnl="{&quot;category&quot;:&quot;Click Interactions&quot;,&quot;name&quot;:&quot;Image Gallery&quot;,&quot;action&quot;:&quot;Gallery Fullscreen Open&quot;}"></button></p>
<div class="splide__arrows splide__arrows--ltr"></div>
<div id="main-carousel-2-495544307-track" class="splide__track splide__track--fade splide__track--ltr splide__track--draggable" aria-live="polite" aria-atomic="true">
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20825" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-community-store.avif" alt="" width="1500" height="844" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-community-store.avif 1500w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-community-store-400x225.avif 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-community-store-1024x576.avif 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-community-store-768x432.avif 768w" sizes="(max-width: 1500px) 100vw, 1500px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20826" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-dynamic-notifications-llm.avif" alt="" width="1500" height="844" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-dynamic-notifications-llm.avif 1500w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-dynamic-notifications-llm-400x225.avif 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-dynamic-notifications-llm-1024x576.avif 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-dynamic-notifications-llm-768x432.avif 768w" sizes="(max-width: 1500px) 100vw, 1500px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20827" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-mqtt-5.avif" alt="" width="1500" height="844" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-mqtt-5.avif 1500w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-mqtt-5-400x225.avif 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-mqtt-5-1024x576.avif 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-mqtt-5-768x432.avif 768w" sizes="(max-width: 1500px) 100vw, 1500px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20828" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-mqtt-4.avif" alt="" width="1500" height="844" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-mqtt-4.avif 1500w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-mqtt-4-400x225.avif 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-mqtt-4-1024x576.avif 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-mqtt-4-768x432.avif 768w" sizes="(max-width: 1500px) 100vw, 1500px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20829" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-blueprints-5.avif" alt="" width="1500" height="844" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-blueprints-5.avif 1500w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-blueprints-5-400x225.avif 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-blueprints-5-1024x576.avif 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/home-assistant-blueprints-5-768x432.avif 768w" sizes="(max-width: 1500px) 100vw, 1500px" /></p>
</div>
</section>
</div>
</div>
</div>
<p class="adsninja-injected-repeatable-ad-afterend">So far, I’ve only discussed why Node-RED suits my smart home projects. But I’d be biased if I didn’t talk about its drawbacks. Despite providing easier methods for automating complex projects, Node-RED has a steeper learning curve than Home Assistant. Plus, community-created blueprints are a neat utility in Home Assistant for casual users who want to quick put together motion-controlled lights.</p>
<div class="an-injected" data-estimated-y-top="5406.96891784668" data-estimated-y-bottom="5556.96891784668" data-estimated-x-left="80.33333587646484" data-estimated-x-right="830.3333358764648">
<div id="adsninja-ad-zone-div-gpt-ad-1553804529761-ccr-REPEAT2" class="adsninja-ad-zone an-zone an-zone-content-character_count_repeatable an-can-change an-injector-zone an-zone-d in-sticky-content">
<div id="dynamically-injected-refresh-ad-zone-div-gpt-ad-1553804529761-ccr-REPEAT2" class="dynamically-injected-refresh-ad-zone" data-original-ad-element-id="div-gpt-ad-1553804529761-ccr-REPEAT2" data-current-ad-element-id="div-gpt-ad-1553804529761-ccr-REPEAT2" data-refresh-count="0" data-not-bidding-count="0" data-floating-allowed="true" data-refreshing-allowed="true">
<div class="ad-current">
<div id="ad-zone-container-div-gpt-ad-1553804529761-ccr-REPEAT2" class="ad-zone-container ad-zone-container-content-character-count-repeatable adsninja-ad-zone-container-with-set-height ad-zone-container-background-details-enabled ad-zone-container-loading-animation-enabled ad-loaded" data-no-fill-collapsable="false">
<div id="ad-zone-size-container-div-gpt-ad-1553804529761-ccr-REPEAT2" class="ad-zone-size-container ad-zone-size-container-content-character-count-repeatable">
<div class="ad-zone ad-zone-content-character-count-repeatable  ">
<div class="ad-zone-inline ad-zone-inline-content-character-count-repeatable">
<div id="div-gpt-ad-1553804529761-ccr-REPEAT2" data-google-query-id="CJG7x7LE640DFbuYjggdCL4PjQ">
<div id="google_ads_iframe_/39363775/XDA-Developers/Article_InContent_Desktop_3__container__"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p>However, if you’re looking to build something as convoluted as a surveillance system that automatically turns on the lights and sets the right thermostat temperature when it detects your presence, it’s a good idea to go with Node-RED as your automation platform. <a href="https://www.xda-developers.com/node-red-has-replaced-my-complex-home-assistant-automations/" target="_blank" rel="noopener">source</a></p>
<hr />
<h1>Home Assistant with Node-Red</h1>
<p><iframe title="Node-Red Tutorial - Common Nodes Explained! (Chapters in the Timestamps) #nodered" width="640" height="360" src="https://www.youtube.com/embed/0osGkVHMugI?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<header class="entry-header">
<div class="entry-meta"></div>
</header>
<div class="entry-thumbnail"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20778" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_overview1.png" alt="" width="983" height="777" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_overview1.png 983w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_overview1-400x316.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_overview1-768x607.png 768w" sizes="(max-width: 983px) 100vw, 983px" /></div>
<div class="entry-content">
<p><a href="https://www.home-assistant.io/">Home Assistant</a> is an open source home automation platform that can monitor and control smart home devices and it integrates with many of other common systems.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20779" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_demo.png" alt="" width="1112" height="863" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_demo.png 1112w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_demo-400x310.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_demo-1024x795.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_demo-768x596.png 768w" sizes="(max-width: 1112px) 100vw, 1112px" /></p>
<p>Home Assistant installation is targeted for Raspberry Pi’s but other hardware options are available.</p>
<p>I was very impressed how easy it was to install Home Assistant and get a basic home integration system up and running.</p>
<p>There is a huge number of integration solutions (1500+) that connect to most of the mainstream products. However if you want to do some custom Arduino or Raspberry Pi connections there isn’t an easy “out of the box” solution.  To solve this requirement Home Assistant has included <a href="https://nodered.org/">Node-Red</a> as an add-on.</p>
<p>Node-RED is a visual programming tool for wiring together hardware devices, APIs and online services.</p>
<p>I found that getting the Node-Red integration was a little tricky. This blog will show how to get Node-Red integration working and it includes a simple simulator circuit.</p>
<h2>Getting Started</h2>
<p>The <a href="https://www.home-assistant.io/getting-started/" target="_blank" rel="noopener">installation instructions</a> are very straightforward. I would recommend using a wired connection for your Raspberry Pi. A wireless network connection is 100% possible but it is not in the base installation directions.</p>
<p>After the basic installation is complete, add-ons can be installed under the Supervisor-&gt;Dashboard. I would recommend installing “File editor” and “Terminal &amp; SSH” add-ons along with Node-Red.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20780" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_addons.png" alt="" width="983" height="777" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_addons.png 983w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_addons-400x316.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_addons-768x607.png 768w" sizes="(max-width: 983px) 100vw, 983px" /></p>
<p>I found that the Node-Red installed without any problems but it required some configuration changes before it would run.</p>
<p>In the Node Red add-on you will need to add a credential_secret and a password.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20781" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/nodered_config.png" alt="" width="291" height="354" /></p>
<p>If Node-Red doesn’t start look at the log for errors (it’s at the bottom of the same page).</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20782" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/nodered_log.png" alt="" width="638" height="781" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/nodered_log.png 638w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/nodered_log-327x400.png 327w" sizes="(max-width: 638px) 100vw, 638px" /></p>
<p>The base Node-Red installation has a very good selection of pre-installed nodes. If you wish to add more nodes see the “Manage Pallet” option that is accessed from the top right options icon.</p>
<p>At this stage Node-Red is somewhat standalone and it is not fully integrated with Home Assistant.</p>
<h2>Integrating Node-Red with Home Assistant</h2>
<p>The <a href="https://github.com/zachowj/hass-node-red">directions and files for Node-Red integration</a>  can be downloaded to your PC.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20783" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_nr_int_files.png" alt="" width="1036" height="612" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_nr_int_files.png 1036w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_nr_int_files-400x236.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_nr_int_files-1024x605.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_nr_int_files-768x454.png 768w" sizes="(max-width: 1036px) 100vw, 1036px" /></p>
<p>Specifically you want to <em><strong>custom_components/nodered</strong></em> directory and files, which will need to be moved to the Raspberry Pi. The Home Assistant “File editor” add-on can be used to create Pi directories and move files from your PC.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20784" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/nodered_files.png" alt="" width="1299" height="780" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/nodered_files.png 1299w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/nodered_files-400x240.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/nodered_files-1024x615.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/nodered_files-768x461.png 768w" sizes="(max-width: 1299px) 100vw, 1299px" /></p>
<p>The following directories and file should now exist:</p>
<pre>/root/config/custom_components/nodered/__init__.py
/root/config/custom_components/nodered/__pycache__
/root/config/custom_components/nodered/binary_sensor.py
/root/config/custom_components/nodered/config_flow.py
/root/config/custom_components/nodered/const.py
/root/config/custom_components/nodered/discovery.py
/root/config/custom_components/nodered/manifest.json
/root/config/custom_components/nodered/save.txt
/root/config/custom_components/nodered/sensor.py
/root/config/custom_components/nodered/services.yaml
/root/config/custom_components/nodered/switch.py
/root/config/custom_components/nodered/websocket.py

/root/config/custom_components/nodered/.translations/en.json</pre>
<p>Once this is complete Home Assistant will need to be restarted.</p>
<h2>Including Node-Red Integrations</h2>
<p>The next step is to create sensors and switches in Node-Red that can be accessed in Home Assistant. Below is a simple circuit that sends a random number (0-100) to a HA entity.</p>
<p>This logic uses a <em>Big Timer</em> node, that generates a pulse every minute from the middle output pin. An <em>injector</em> node allow you to force a new value. A <em>random</em> node will output a new random number whenever the <em>Big Timer</em> or <em>Inject</em> nodes are triggered.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20785" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_circuit.png" alt="" width="1207" height="415" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_circuit.png 1207w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_circuit-400x138.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_circuit-1024x352.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_circuit-768x264.png 768w" sizes="(max-width: 1207px) 100vw, 1207px" /></p>
<p>Double-click on the HA entity to configure the HA server and other properties.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20786" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_entity_config.png" alt="" width="1141" height="563" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_entity_config.png 1141w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_entity_config-400x197.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_entity_config-1024x505.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_entity_config-768x379.png 768w" sizes="(max-width: 1141px) 100vw, 1141px" /></p>
<p>Once the logic is complete click the “Deploy” button to make the logic active.</p>
<p>Node-Red integration is enabled by adding it in the Configuration-&gt;Integration page.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20787" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_new_int.png" alt="" width="1138" height="965" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_new_int.png 1138w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_new_int-400x339.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_new_int-1024x868.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_new_int-768x651.png 768w" sizes="(max-width: 1138px) 100vw, 1138px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20788" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_entities.png" alt="" width="898" height="551" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_entities.png 898w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_entities-400x245.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/nr_entities-768x471.png 768w" sizes="(max-width: 898px) 100vw, 898px" /></p>
<h2>Overview Dashboard with Node-Red Data</h2>
<p>The final step is to modify the Overview Dashboard to include the Node-Red Entity.</p>
<p>For this example I added a gauge component using the Orange-Plus at the bottom right of this Configure UI page.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20789" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/config_ui.png" alt="" width="922" height="874" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/config_ui.png 922w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/config_ui-400x379.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/config_ui-768x728.png 768w" sizes="(max-width: 922px) 100vw, 922px" /></p>
<p>On the live Overview page it is possible to click on the gauge card and get more information about this sensor.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-20778" src="https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_overview1.png" alt="" width="983" height="777" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_overview1.png 983w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_overview1-400x316.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/06/ha_overview1-768x607.png 768w" sizes="(max-width: 983px) 100vw, 983px" /></p>
<h2>Final Thoughts</h2>
<p>Home Assistant is a very well structured home automation solution that offers a number of excellent approaches to bring in data.</p>
<p>Node-Red is a very flexible programming environment that help expands connectivity to Arduino, Raspberry Pi and other 3rd party services that are not in the base Home Assistant software.</p>
<p class="entry-title"><a href="https://funprojects.blog/2020/03/23/home-assistant-with-node-red/" target="_blank" rel="bookmark noopener">source</a></p>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Access ANY Network (remotely) What is a Hacker Dropbox?</title>
		<link>https://goodshepherdmedia.net/access-any-network-remotely-what-is-a-hacker-dropbox/</link>
		
		<dc:creator><![CDATA[The Truth News]]></dc:creator>
		<pubDate>Mon, 31 Mar 2025 04:49:03 +0000</pubDate>
				<category><![CDATA[Computer Hacks]]></category>
		<category><![CDATA[Electronic Projects]]></category>
		<category><![CDATA[Hackers / Master Programmers]]></category>
		<category><![CDATA[Hardware Pioneers]]></category>
		<category><![CDATA[Home & Garden]]></category>
		<category><![CDATA[Home Computing]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Software Pioneers]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Top Stories]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[💻Tech History]]></category>
		<category><![CDATA[🔐Cybersecurity]]></category>
		<category><![CDATA[🔐Hacking Technology]]></category>
		<category><![CDATA[🛜🌐💻⌨ Pen Test Tools]]></category>
		<category><![CDATA[🛜🌐💻⌨ Wireless Pen Test]]></category>
		<category><![CDATA[Access ANY Network]]></category>
		<category><![CDATA[Access ANY Network remotely]]></category>
		<category><![CDATA[Family HelpDesk Support]]></category>
		<category><![CDATA[Hacker Dropbox]]></category>
		<category><![CDATA[NetworkAccess]]></category>
		<category><![CDATA[RaspberryPi]]></category>
		<category><![CDATA[twingate]]></category>
		<guid isPermaLink="false">https://goodshepherdmedia.net/?p=19809</guid>

					<description><![CDATA[Access ANY Network (remotely) What is a Hacker Dropbox? What is a Hacker Dropbox? (and why you need one….even if you aren’t a hacker) Build your Hacker Dropbox with Twingate (it’s free): https://ntck.co/twingate_ztna 💻 Raspberry Pi Imager: https://www.raspberrypi.com/software/ 🛒 Buy a Raspberry Pi: Raspberry Pi 4: amazon.com Raspberry Pi 5: amazon.com Here is a great definition from [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="post-content">
<h1>Access ANY Network (remotely) What is a Hacker Dropbox?</h1>
<h2 id="what-is-a-hacker-dropbox-and-why-you-need-oneeven-if-you-arent-a-hacker">What is a <em>Hacker Dropbox</em>? (and why you need one….even if you aren’t a hacker)</h2>
<p><iframe title="Access ANY Network (remotely)" width="640" height="360" src="https://www.youtube.com/embed/1lZ3FQSv-wI?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p><span class="yt-core-attributed-string--link-inherit-color" dir="auto"> Build your Hacker Dropbox with Twingate (it’s free): <a class="yt-core-attributed-string__link yt-core-attributed-string__link--call-to-action-color" tabindex="0" href="https://www.youtube.com/redirect?event=video_description&amp;redir_token=QUFFLUhqbC1VYTZIemJjdHlLUHlFODBRS1VwYjRRdXc3d3xBQ3Jtc0trRGFGT1ptQVh5V2dUTlExMkNHZ1QyZEhtTV9FdFEzZjBfWXNDWkZBemRJdmdmdUstTlM2M0hhMmRrQWZ6dTRxVk1aMjJkVFFJODZSS1VwOG01LUV0V09uTWRKSHMzbEwxSDFGOHlYZmJVZGNjaWZFVQ&amp;q=https%3A%2F%2Fntck.co%2Ftwingate_ztna&amp;v=1lZ3FQSv-wI" target="_blank" rel="nofollow noopener">https://ntck.co/twingate_ztna</a><br />
<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4bb.png" alt="💻" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Raspberry Pi Imager: </span><span class="yt-core-attributed-string--link-inherit-color" dir="auto"><a class="yt-core-attributed-string__link yt-core-attributed-string__link--call-to-action-color" tabindex="0" href="https://www.youtube.com/redirect?event=video_description&amp;redir_token=QUFFLUhqbm9EUkI2a1cyVjMxSUNud1JQSHl6VGM4YnRnd3xBQ3Jtc0tsOHYyTVd6d09UWk43MHgzSThoZnRnR3EyQkdKSXkxZ2VEMGJ5ckt6S0ZlUWFXTEdabmlhRGZ2TE9OV2V4d1ZfejVtODFtVEZrT28wVXZnQlhWX1BSSUg4TEs1V01qaGZGZE15Qnktb3Y5NlhlMWJ4VQ&amp;q=https%3A%2F%2Fwww.raspberrypi.com%2Fsoftware%2F&amp;v=1lZ3FQSv-wI" target="_blank" rel="nofollow noopener">https://www.raspberrypi.com/software/</a></span><span class="yt-core-attributed-string--link-inherit-color" dir="auto"><br />
<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6d2.png" alt="🛒" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Buy a Raspberry Pi: Raspberry Pi 4: </span><span class="yt-core-attributed-string--link-inherit-color" dir="auto"><a class="yt-core-attributed-string__link yt-core-attributed-string__link--call-to-action-color" tabindex="0" href="https://www.amazon.com/CanaKit-Raspberry-4GB-Starter-Kit/dp/B07V5JTMV9/?th=1" target="_blank" rel="nofollow noopener">amazon.com</a></span><span class="yt-core-attributed-string--link-inherit-color" dir="auto"><br />
Raspberry Pi 5: </span><span class="yt-core-attributed-string--link-inherit-color" dir="auto"><a class="yt-core-attributed-string__link yt-core-attributed-string__link--call-to-action-color" tabindex="0" href="https://www.amazon.com/CanaKit-Raspberry-Starter-Kit-PRO/dp/B0CRSPKPNG?th=1" target="_blank" rel="nofollow noopener">amazon.com</a></span></p>
<ul>
<li>Here is a great definition from ChatGPT: <em>a small, discreet, and often portable device designed to be covertly placed in a target network to provide remote access for a hacker or penetration tester. It typically contains hardware and software configured to exploit the network or collect sensitive information.</em></li>
<li>If you’re a hacker…this is a no brainer. Get instant access to a remote network by dropping off a device. But….if you’re not a hacker…why do you need this?</li>
</ul>
<h3 id="family-helpdesk-support">Family HelpDesk Support</h3>
<ul>
<li>If you’re like me, you are likely the official technical support for your family and friends. I also inherited the role of helpdesk support for my church…these kinds of things just happen by default when you are in tech and people find out about your technical skills.</li>
<li>This isn’t an easy thing to do, especially when it comes to troubleshooting networks for your family. Is the network up? Why is it slow? Sometimes a FaceTime call just isn’t going to cut it.</li>
<li>If I’m going to be the support for my church and family, I’m going to take my role seriously. I need FULL control of the remote network……no more playing around!!!</li>
<li>With the <em>Hacker Dropbox</em>, I can drop off a small device, in my case it’s going to be a Raspberry Pi 4. (it can be a lot of things, as long as the device is Linux-based and is 64-bit). Instantly I get access to this remote network, enabling me to provide remote support and access any device.</li>
</ul>
<h3 id="this-is-not-vpn">This is NOT VPN</h3>
<ul>
<li>This is not a VPN (VIrtual Private Network) solution….it’s much better.</li>
<li>This is a ZTNA (Zero-Trust Network Access) solution. It’s called Twingate and I’ve been using them for a long time in my business and personal networks. I talk more about them in the video above but in short, they allow you to get and give remote access to networks in the most secure way. They are used by everyone from large enterprises to homelabbers looking to access their Plex server.</li>
<li>This isn’t the first video I’ve made about them but this is the first time I’ve featured a use-case like this.</li>
<li>Oh, it’s also <strong>FREE</strong> for home labbers. (And…cough….businesses that don’t have a ton of employees….like me.)</li>
</ul>
<h3 id="you-dont-need-to-know-anything-about-the-network">You don’t need to know ANYTHING about the network</h3>
<ul>
<li>I wanted this to be a turnkey solution even if you don’t know anything about the remote network. All you’ll have to do is plug in an ethernet cable (or connect to wifi….but you’ll need to know the SSID and password) and you will know everything you need to know about that network…..but how?</li>
<li>Twingate has a powerful API that allows us to do many things…including write python scripts that will automagically tell us the private IP address of our <em>Hacker Dropbox</em> (Raspberry Pi) and the Public IP address of the network, giving us instant access to this <em>Hacker Dropbox</em> AND the network.</li>
<li>This guide will contain that script.</li>
</ul>
<h2 id="what-do-you-need">What do you need?</h2>
<ul>
<li>Any Linux-based 64-bit system will do. You’ll need at least 1 CPU and 2GB RAM (recommended)…but you can go as low as 512MB of RAM.</li>
<li>You can also run this as a Docker container, which is my favorite way to deploy this in my home lab.</li>
<li>In this example, with the <em>Hacker Dropbox</em>, I’m using a Raspberry Pi 4 running Raspberry Pi OS Lite &#8211; 64-bit and installing it directly on the system (no docker container)</li>
</ul>
<h3 id="what-other-hardware-options-do-i-have">What other hardware options do I have?</h3>
<p>Again, this can be many things, but here are some ideas to get the juices flowing:</p>
<ul>
<li>ZImaboard</li>
<li>Raspberry Pi 4/5</li>
<li>Raspberry Pi 400/500</li>
<li>Old laptops</li>
<li>NAS</li>
<li>Intel NUC or other mini-pcs</li>
</ul>
<h1 id="the-tutorial">The Tutorial</h1>
<h2 id="step-1---setup-twingate">Step 1 &#8211; Setup Twingate</h2>
<p>This setup is VERY easy and is all done in the cloud.</p>
<ul>
<li>Sign up for Twingate here: <a href="https://ntck.co/twingate_ztna">https://ntck.co/twingate_ztna</a>
<ul>
<li>You’ll create a new Twingate network</li>
</ul>
</li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19830" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112613-1024x843.png" alt="" width="640" height="527" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112613-1024x843.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112613-400x329.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112613-768x632.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112613-1536x1264.png 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112613.png 1738w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<h2 id="step-2---add-your-first-remote-network">Step 2 &#8211; Add your first remote network</h2>
<p>You will be prompted to go through a wizard, we can skip that for now.</p>
<ul>
<li>Click on <em>Remote Networks</em></li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19829" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112739-1024x377.png" alt="" width="640" height="236" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112739-1024x377.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112739-400x147.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112739-768x283.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112739-1536x565.png 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112739.png 1592w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<ul>
<li>And then add a <em>Remote Network</em></li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19828" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112803-1024x407.png" alt="" width="640" height="254" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112803-1024x407.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112803-400x159.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112803-768x305.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112803-1536x611.png 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112803.png 1932w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<ul>
<li>Choose <em>on-premise</em> for location</li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19827" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112825-1024x736.png" alt="" width="640" height="460" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112825-1024x736.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112825-400x287.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112825-768x552.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112825.png 1244w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<ul>
<li>Once created, we’ll click on the remote network link to jump in and add more config…like adding a connector.</li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19826" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112905-1024x564.png" alt="" width="640" height="353" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112905-1024x564.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112905-400x220.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112905-768x423.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112905-1536x846.png 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220112905.png 1616w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<h2 id="step-25---prep-your-hacker-dropbox">Step 2.5 &#8211; Prep your <em>Hacker Dropbox</em></h2>
<ul>
<li>This will vary based on what device you choose but this will normally involve installing a compatible OS (64-bit Linux OS) and getting access to your device via CLI.</li>
<li>I demo flashing an SD-card for the Raspberry Pi 4 in the video.</li>
</ul>
<h2 id="step-3---adding-a-connector-for-your-remote-network">Step 3 &#8211; Adding a connector for your remote network</h2>
<p>The connector, in our case, will be the <em>Hacker Dropbox</em>, a linux-based device running Twingate software, aka, <em>The Connector</em></p>
<ul>
<li>Click on <em>Deploy Connector</em></li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19825" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113010-1024x820.png" alt="" width="640" height="513" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113010-1024x820.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113010-400x320.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113010-768x615.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113010.png 1504w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<ul>
<li>Good practice, run <code>sudo apt update</code> to make sure all your repos are up-to-date (this will different for you if you are running something that isn’t Debian-based)</li>
<li>For the Raspberry Pi example, we are installing the Twingate connector directly on the OS, no container. So we’ll select Linux as our option.</li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19824" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113353-1024x589.png" alt="" width="640" height="368" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113353-1024x589.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113353-400x230.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113353-768x442.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113353-1536x883.png 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113353.png 1816w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<ul>
<li>Now, generate your access tokens. These will automatically be added the command we’ll use to install Twingate here in a moment.</li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19823" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113428-1024x541.png" alt="" width="640" height="338" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113428-1024x541.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113428-400x211.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113428-768x406.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113428-1536x812.png 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113428.png 1740w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<ul>
<li>Copy the provided command</li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19822" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113458-1024x518.png" alt="" width="640" height="324" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113458-1024x518.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113458-400x202.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113458-768x389.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113458-1536x777.png 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113458.png 1826w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<ul>
<li>Paste that command in your terminal and watch the magic happen.</li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19821" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113521-1024x405.png" alt="" width="640" height="253" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113521-1024x405.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113521-400x158.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113521-768x304.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113521-1536x608.png 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113521.png 2048w" sizes="(max-width: 640px) 100vw, 640px" /><img loading="lazy" decoding="async" class="alignnone size-large wp-image-19821" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113521-1024x405.png" alt="" width="640" height="253" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113521-1024x405.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113521-400x158.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113521-768x304.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113521-1536x608.png 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113521.png 2048w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19820" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113536-1024x611.png" alt="" width="640" height="382" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113536-1024x611.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113536-400x239.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113536-768x458.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113536-1536x916.png 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113536.png 1948w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<ul>
<li>We are actually….done. Check Twingate to see if your connector is up.</li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19819" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113621-1024x566.png" alt="" width="640" height="354" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113621-1024x566.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113621-400x221.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113621-768x424.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113621-1536x848.png 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113621.png 1550w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<h2 id="step-4---add-a-remote-wifi-network-if-not-using-ethernet">Step 4 &#8211; Add a remote WiFi Network (if not using ethernet)</h2>
<ul>
<li>This will be Raspberry Pi specific.</li>
<li>Run this command to access the NetworkManager TUI</li>
</ul>
<div class="highlight">
<div class="code-toolbar">
<pre class=" language-bash" tabindex="0"><code class=" language-bash" data-lang="bash"><span class="token function">sudo</span> nmtui
</code></pre>
<div class="toolbar">
<div class="toolbar-item"><button class="copy-to-clipboard-button" type="button" data-copy-state="copy">Copy</button></div>
</div>
</div>
</div>
<ul>
<li>Edit a connection</li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-medium wp-image-19818" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113842-400x339.png" alt="" width="400" height="339" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113842-400x339.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113842-768x652.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113842.png 884w" sizes="(max-width: 400px) 100vw, 400px" /></p>
<ul>
<li>Select Add</li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19817" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113856-1024x823.png" alt="" width="640" height="514" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113856-1024x823.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113856-400x321.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113856-768x617.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113856.png 1202w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<ul>
<li>Select WiFi</li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19816" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113917-1024x525.png" alt="" width="640" height="328" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113917-1024x525.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113917-400x205.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113917-768x394.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113917-1536x788.png 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113917.png 1798w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<ul>
<li>Add SSID and Password (you’ll need to know this for the remote network)</li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19815" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113943-1024x506.png" alt="" width="640" height="316" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113943-1024x506.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113943-400x198.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113943-768x379.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113943-1536x758.png 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220113943.png 1936w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<ul>
<li>Select <em>Ok</em> and then hit <em>ESC</em> to save and get out of there.</li>
</ul>
<h2 id="step-5---use-the-twingate-api-to-learn-about-the-remote-network">Step 5 &#8211; Use the Twingate API to learn about the remote network</h2>
<p>You only need this option if this is a network you are unfamiliar with. So, for example, you might be offering remote support for your family and you will likely already know their network, 192.168.1.0/24 (for example) and you may have set the static IP address of your <em>Hacker Dropbox</em> and can easily, manually add this as a resource in Twingate.</p>
<ul>
<li>Generate an API token</li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19814" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220114238-1024x704.png" alt="" width="640" height="440" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220114238-1024x704.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220114238-400x275.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220114238-768x528.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220114238-1536x1056.png 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220114238.png 1940w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<ul>
<li>Our script will be provisioning resources so we’ll need to give it a good amount of access.</li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19813" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220114315-1024x934.png" alt="" width="640" height="584" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220114315-1024x934.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220114315-400x365.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220114315-768x701.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220114315.png 1116w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<ul>
<li>Copy that key and put it somewhere safe.</li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19812" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220114347-1024x878.png" alt="" width="640" height="549" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220114347-1024x878.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220114347-400x343.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220114347-768x658.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220114347.png 1094w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<h3 id="run-the-python-script">Run the Python Script</h3>
<ul>
<li>You’ll need another computer, can be anything that can run Python. (which…can be anything, Windows, Mac, Linux.)</li>
<li>You’ll also need Python3 installed, refer to your OS-specific documentation to install Python.</li>
</ul>
<h4 id="create-the-script">Create the script</h4>
<ul>
<li>Create a new python script</li>
</ul>
<div class="highlight">
<div class="code-toolbar">
<pre class=" language-bash" tabindex="0"><code class=" language-bash" data-lang="bash"><span class="token function">nano</span> twingate.py
</code></pre>
<div class="toolbar">
<div class="toolbar-item"><button class="copy-to-clipboard-button" type="button" data-copy-state="copy">Copy</button></div>
</div>
</div>
</div>
<ul>
<li>paste the following script</li>
<li>Replace the following variables:
<ul>
<li><strong>API_URL</strong></li>
<li><strong>API_KEY</strong></li>
<li><strong>TARGET_NETWORK_NAME</strong></li>
</ul>
</li>
</ul>
<div class="highlight">
<div class="code-toolbar">
<pre class=" language-python" tabindex="0"><code class=" language-python" data-lang="python"><span class="token keyword keyword-from">from</span> gql <span class="token keyword keyword-import">import</span> gql<span class="token punctuation">,</span> Client
<span class="token keyword keyword-from">from</span> gql<span class="token punctuation">.</span>transport<span class="token punctuation">.</span>requests <span class="token keyword keyword-import">import</span> RequestsHTTPTransport

<span class="token comment"># Twingate API settings</span>
API_URL <span class="token operator">=</span> <span class="token string">"https://****your Twingate network here****.twingate.com/api/graphql/"</span>  <span class="token comment"># Replace &lt;subdomain&gt; with your Twingate subdomain</span>
API_KEY <span class="token operator">=</span> <span class="token string">"YOUR TWINGATE API KEY"</span>
TARGET_NETWORK_NAME <span class="token operator">=</span> <span class="token string">"YOUR REMOTE NETWORK"</span>  <span class="token comment"># Replace with your target network name</span>

QUERY_REMOTE_NETWORKS <span class="token operator">=</span> gql<span class="token punctuation">(</span><span class="token triple-quoted-string string">"""
query GetRemoteNetworkDetails {
  remoteNetworks(after: null, first: 10) {
    edges {
      node {
        id
        name
        connectors {
          edges {
            node {
              id
              name
              publicIP
              privateIPs
              remoteNetwork {
                id
                name
              }
            }
          }
        }
      }
    }
  }
}
"""</span><span class="token punctuation">)</span>

MUTATION_CREATE_RESOURCE <span class="token operator">=</span> gql<span class="token punctuation">(</span><span class="token triple-quoted-string string">"""
mutation CreateResource($name: String!, $address: String!, $remoteNetworkId: ID!) {
  resourceCreate(
    name: $name,
    address: $address,
    remoteNetworkId: $remoteNetworkId
  ) {
    ok
    error
    entity {
      id
      name
      address {
        type
        value
      }
    }
  }
}
"""</span><span class="token punctuation">)</span>

<span class="token keyword keyword-def">def</span> <span class="token function">setup_client</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
    transport <span class="token operator">=</span> RequestsHTTPTransport<span class="token punctuation">(</span>
        url<span class="token operator">=</span>API_URL<span class="token punctuation">,</span>
        headers<span class="token operator">=</span><span class="token punctuation">{</span><span class="token string">"X-API-KEY"</span><span class="token punctuation">:</span> API_KEY<span class="token punctuation">}</span><span class="token punctuation">,</span>
        use_json<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">,</span>
    <span class="token punctuation">)</span>
    <span class="token keyword keyword-return">return</span> Client<span class="token punctuation">(</span>transport<span class="token operator">=</span>transport<span class="token punctuation">,</span> fetch_schema_from_transport<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span>

<span class="token keyword keyword-def">def</span> <span class="token function">get_target_network</span><span class="token punctuation">(</span>client<span class="token punctuation">)</span><span class="token punctuation">:</span>
    response <span class="token operator">=</span> client<span class="token punctuation">.</span>execute<span class="token punctuation">(</span>QUERY_REMOTE_NETWORKS<span class="token punctuation">)</span>
    <span class="token keyword keyword-for">for</span> edge <span class="token keyword keyword-in">in</span> response<span class="token punctuation">[</span><span class="token string">"remoteNetworks"</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string">"edges"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>
        network <span class="token operator">=</span> edge<span class="token punctuation">[</span><span class="token string">"node"</span><span class="token punctuation">]</span>
        <span class="token keyword keyword-if">if</span> network<span class="token punctuation">[</span><span class="token string">"name"</span><span class="token punctuation">]</span> <span class="token operator">==</span> TARGET_NETWORK_NAME<span class="token punctuation">:</span>
            <span class="token keyword keyword-return">return</span> network
    <span class="token keyword keyword-return">return</span> <span class="token boolean">None</span>

<span class="token keyword keyword-def">def</span> <span class="token function">create_resource</span><span class="token punctuation">(</span>client<span class="token punctuation">,</span> name<span class="token punctuation">,</span> address_value<span class="token punctuation">,</span> remote_network_id<span class="token punctuation">)</span><span class="token punctuation">:</span>
    params <span class="token operator">=</span> <span class="token punctuation">{</span>
        <span class="token string">"name"</span><span class="token punctuation">:</span> name<span class="token punctuation">,</span>
        <span class="token string">"address"</span><span class="token punctuation">:</span> address_value<span class="token punctuation">,</span>
        <span class="token string">"remoteNetworkId"</span><span class="token punctuation">:</span> remote_network_id
    <span class="token punctuation">}</span>
    response <span class="token operator">=</span> client<span class="token punctuation">.</span>execute<span class="token punctuation">(</span>MUTATION_CREATE_RESOURCE<span class="token punctuation">,</span> variable_values<span class="token operator">=</span>params<span class="token punctuation">)</span>
    <span class="token keyword keyword-if">if</span> <span class="token keyword keyword-not">not</span> response<span class="token punctuation">[</span><span class="token string">"resourceCreate"</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string">"ok"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>
        <span class="token keyword keyword-raise">raise</span> Exception<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Failed to create resource: </span><span class="token interpolation"><span class="token punctuation">{</span>response<span class="token punctuation">[</span><span class="token string">'resourceCreate'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string">'error'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span>
    <span class="token keyword keyword-return">return</span> response<span class="token punctuation">[</span><span class="token string">"resourceCreate"</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string">"entity"</span><span class="token punctuation">]</span>

<span class="token keyword keyword-def">def</span> <span class="token function">automate_resource_creation</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
    client <span class="token operator">=</span> setup_client<span class="token punctuation">(</span><span class="token punctuation">)</span>

    <span class="token keyword keyword-print">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Searching for target network: </span><span class="token interpolation"><span class="token punctuation">{</span>TARGET_NETWORK_NAME<span class="token punctuation">}</span></span><span class="token string">..."</span></span><span class="token punctuation">)</span>
    target_network <span class="token operator">=</span> get_target_network<span class="token punctuation">(</span>client<span class="token punctuation">)</span>

    <span class="token keyword keyword-if">if</span> <span class="token keyword keyword-not">not</span> target_network<span class="token punctuation">:</span>
        <span class="token keyword keyword-print">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Network '</span><span class="token interpolation"><span class="token punctuation">{</span>TARGET_NETWORK_NAME<span class="token punctuation">}</span></span><span class="token string">' not found."</span></span><span class="token punctuation">)</span>
        <span class="token keyword keyword-return">return</span>

    <span class="token keyword keyword-print">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Found network: </span><span class="token interpolation"><span class="token punctuation">{</span>target_network<span class="token punctuation">[</span><span class="token string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span>
    remote_network_id <span class="token operator">=</span> target_network<span class="token punctuation">[</span><span class="token string">'id'</span><span class="token punctuation">]</span>

    <span class="token keyword keyword-for">for</span> connector_edge <span class="token keyword keyword-in">in</span> target_network<span class="token punctuation">[</span><span class="token string">"connectors"</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string">"edges"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>
        connector <span class="token operator">=</span> connector_edge<span class="token punctuation">[</span><span class="token string">"node"</span><span class="token punctuation">]</span>
        public_ip <span class="token operator">=</span> connector<span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token string">"publicIP"</span><span class="token punctuation">)</span>
        private_ips <span class="token operator">=</span> connector<span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token string">"privateIPs"</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span>

        <span class="token keyword keyword-if">if</span> public_ip<span class="token punctuation">:</span>
            resource_name <span class="token operator">=</span> <span class="token string-interpolation"><span class="token string">f"Resource-Public-</span><span class="token interpolation"><span class="token punctuation">{</span>public_ip<span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'.'</span><span class="token punctuation">,</span> <span class="token string">'-'</span><span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span>
            <span class="token keyword keyword-print">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Creating Resource for public IP: </span><span class="token interpolation"><span class="token punctuation">{</span>public_ip<span class="token punctuation">}</span></span><span class="token string">..."</span></span><span class="token punctuation">)</span>
            resource <span class="token operator">=</span> create_resource<span class="token punctuation">(</span>client<span class="token punctuation">,</span> resource_name<span class="token punctuation">,</span> public_ip<span class="token punctuation">,</span> remote_network_id<span class="token punctuation">)</span>
            <span class="token keyword keyword-print">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Resource created: </span><span class="token interpolation"><span class="token punctuation">{</span>resource<span class="token punctuation">[</span><span class="token string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string"> (ID: </span><span class="token interpolation"><span class="token punctuation">{</span>resource<span class="token punctuation">[</span><span class="token string">'id'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string">, Address: </span><span class="token interpolation"><span class="token punctuation">{</span>resource<span class="token punctuation">[</span><span class="token string">'address'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string">'value'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string">)"</span></span><span class="token punctuation">)</span>

        <span class="token keyword keyword-for">for</span> private_ip <span class="token keyword keyword-in">in</span> private_ips<span class="token punctuation">:</span>
            resource_name <span class="token operator">=</span> <span class="token string-interpolation"><span class="token string">f"Resource-Private-</span><span class="token interpolation"><span class="token punctuation">{</span>private_ip<span class="token punctuation">.</span>replace<span class="token punctuation">(</span><span class="token string">'.'</span><span class="token punctuation">,</span> <span class="token string">'-'</span><span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span>
            <span class="token keyword keyword-print">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Creating Resource for private IP: </span><span class="token interpolation"><span class="token punctuation">{</span>private_ip<span class="token punctuation">}</span></span><span class="token string">..."</span></span><span class="token punctuation">)</span>
            resource <span class="token operator">=</span> create_resource<span class="token punctuation">(</span>client<span class="token punctuation">,</span> resource_name<span class="token punctuation">,</span> private_ip<span class="token punctuation">,</span> remote_network_id<span class="token punctuation">)</span>
            <span class="token keyword keyword-print">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Resource created: </span><span class="token interpolation"><span class="token punctuation">{</span>resource<span class="token punctuation">[</span><span class="token string">'name'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string"> (ID: </span><span class="token interpolation"><span class="token punctuation">{</span>resource<span class="token punctuation">[</span><span class="token string">'id'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string">, Address: </span><span class="token interpolation"><span class="token punctuation">{</span>resource<span class="token punctuation">[</span><span class="token string">'address'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string">'value'</span><span class="token punctuation">]</span><span class="token punctuation">}</span></span><span class="token string">)"</span></span><span class="token punctuation">)</span>

<span class="token keyword keyword-if">if</span> __name__ <span class="token operator">==</span> <span class="token string">"__main__"</span><span class="token punctuation">:</span>
    <span class="token keyword keyword-try">try</span><span class="token punctuation">:</span>
        automate_resource_creation<span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token keyword keyword-except">except</span> Exception <span class="token keyword keyword-as">as</span> e<span class="token punctuation">:</span>
        <span class="token keyword keyword-print">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Error: </span><span class="token interpolation"><span class="token punctuation">{</span>e<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span>
</code></pre>
<div class="toolbar">
<div class="toolbar-item"><button class="copy-to-clipboard-button" type="button" data-copy-state="copy">Copy</button></div>
</div>
</div>
</div>
<ul>
<li>Save the file.</li>
</ul>
<h4 id="now-well-create-a-python-virtual-environment">Now, we’ll create a python virtual environment</h4>
<ul>
<li>This will make sure we can install packages and prerequisites without hurting your other projects. (if you have some….if you don’t…that’s okay….it’s just good practice)</li>
<li>First make sure you have it installed. See below for Linux.</li>
</ul>
<div class="highlight">
<div class="code-toolbar">
<pre class=" language-bash" tabindex="0"><code class=" language-bash" data-lang="bash"><span class="token function">sudo</span> <span class="token function">apt</span> <span class="token function">install</span> python3-venv -y
</code></pre>
<div class="toolbar">
<div class="toolbar-item"><button class="copy-to-clipboard-button" type="button" data-copy-state="copy">Copy</button></div>
</div>
</div>
</div>
<ul>
<li>Also make sure you install PIP</li>
</ul>
<div class="highlight">
<div class="code-toolbar">
<pre class=" language-bash" tabindex="0"><code class=" language-bash" data-lang="bash"><span class="token function">sudo</span> <span class="token function">apt</span> <span class="token function">install</span> python3-pip
</code></pre>
<div class="toolbar">
<div class="toolbar-item"><button class="copy-to-clipboard-button" type="button" data-copy-state="copy">Copy</button></div>
</div>
</div>
</div>
<ul>
<li>Now create a Python virtual environment and activate it.</li>
</ul>
<div class="highlight">
<div class="code-toolbar">
<pre class=" language-bash" tabindex="0"><code class=" language-bash" data-lang="bash">python3 -m venv twingatesomething

<span class="token builtin class-name">source</span> twingatesomething/bin/activate
</code></pre>
<div class="toolbar">
<div class="toolbar-item"><button class="copy-to-clipboard-button" type="button" data-copy-state="copy">Copy</button></div>
</div>
</div>
</div>
<ul>
<li>Install the pre-reqs</li>
</ul>
<div class="highlight">
<div class="code-toolbar">
<pre class=" language-bash" tabindex="0"><code class=" language-bash" data-lang="bash">pip <span class="token function">install</span> gql requests requests.toolbelt
</code></pre>
<div class="toolbar">
<div class="toolbar-item"><button class="copy-to-clipboard-button" type="button" data-copy-state="copy">Copy</button></div>
</div>
</div>
</div>
<ul>
<li>Type to run the script</li>
</ul>
<div class="highlight">
<div class="code-toolbar">
<pre class=" language-bash" tabindex="0"><code class=" language-bash" data-lang="bash">python3 twingate.py
</code></pre>
<div class="toolbar">
<div class="toolbar-item"><button class="copy-to-clipboard-button" type="button" data-copy-state="copy">Copy</button></div>
</div>
</div>
</div>
<ul>
<li>Check your resources in Twingate…you should see something cool</li>
</ul>
<p>!<img loading="lazy" decoding="async" class="alignnone size-large wp-image-19811" src="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220115720-1024x609.png" alt="" width="640" height="381" srcset="https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220115720-1024x609.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220115720-400x238.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220115720-768x457.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220115720-1536x914.png 1536w, https://goodshepherdmedia.net/wp-content/uploads/2025/03/Pasted-image-20241220115720.png 1856w" sizes="(max-width: 640px) 100vw, 640px" /></p>
</div>
<div class="pagination">
<div class="pagination__title"><a href="https://blog.networkchuck.com/posts/building-a-hacker-dropbox-access-any-network/" target="_blank" rel="noopener"><span class="pagination__title-h">source</span></a></div>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Hacker Tool Kit &#038; Pen Tester Kit HackerBox 0073 LAN Lord</title>
		<link>https://goodshepherdmedia.net/hacker-tool-kit-pen-tester-kit-hackerbox-0073-lan-lord/</link>
		
		<dc:creator><![CDATA[The Truth News]]></dc:creator>
		<pubDate>Thu, 07 Nov 2024 07:29:02 +0000</pubDate>
				<category><![CDATA[⚠️Breaking News⚠️]]></category>
		<category><![CDATA[Computer Hacks]]></category>
		<category><![CDATA[Cool Tech & Gadgets 📱⌚🎧⚡]]></category>
		<category><![CDATA[Digital Pioneers]]></category>
		<category><![CDATA[Hackers / Master Programmers]]></category>
		<category><![CDATA[Hardware Pioneers]]></category>
		<category><![CDATA[Home & Garden]]></category>
		<category><![CDATA[Home Computing]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Science & Engineering]]></category>
		<category><![CDATA[Software Pioneers]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Top Stories]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Zee Truthful News]]></category>
		<category><![CDATA[🔐Cybersecurity]]></category>
		<category><![CDATA[🔐Hacking Technology]]></category>
		<category><![CDATA[🛜🌐💻⌨ Pen Test Tools]]></category>
		<category><![CDATA[🛜🌐💻⌨ Wireless Pen Test]]></category>
		<category><![CDATA[0073 LAN Lord]]></category>
		<category><![CDATA[Hacker Tool Kit]]></category>
		<category><![CDATA[HackerBox]]></category>
		<category><![CDATA[Pen Test Kit]]></category>
		<category><![CDATA[Pen Tester Kit]]></category>
		<guid isPermaLink="false">https://goodshepherdmedia.net/?p=18828</guid>

					<description><![CDATA[Hacker Tool Kit &#38; Pen Tester Kit HackerBox 0073 LAN Lord Welcome to HackerBox 0073. We will explore Wi-Fi channels and frequencies, configure the ESP8266 D1 Mini SoC, assemble the Open Source Wi-Fi Nugget, leverage the Wi-Fi Nugget as a communications security and hacking tool, introduce the Rtlduino dual-frequency wireless SoC, assemble a full-color TFT [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>Hacker Tool Kit &amp; Pen Tester Kit HackerBox 0073 LAN Lord</h1>
<p><iframe title="HakByte: Create a $15 WarDriving Rig to Log WiFi Data w/ the ESP8266" width="640" height="360" src="https://www.youtube.com/embed/ITRwyr7KOnc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<section id="intro" class="step" data-stepid="SZANRS1KWNJLR5F">
<div class="step-body">
<p>Welcome to HackerBox 0073. We will explore Wi-Fi channels and frequencies, configure the ESP8266 D1 Mini SoC, assemble the Open Source Wi-Fi Nugget, leverage the Wi-Fi Nugget as a communications security and hacking tool, introduce the Rtlduino dual-frequency wireless SoC, assemble a full-color TFT display platform for the Rtlduino, and leverage the platform to implement a Wi-Fi channel mapping tool capable of operating on both 2.4GHz and 5GHz wireless bands.</p>
<p>HackerBoxes is the monthly subscription box for enthusiasts of electronics and computer technology &#8211; Hardware Hackers &#8211; The Dreamers of Dreams.</p>
<p>There is a wealth of information for current and prospective members in the <a href="https://hackerboxes.com/a/FAQ" rel="nofollow noopener noreferrer">HackerBoxes FAQ</a>. Almost all of the non-technical support emails that we receive are already answered there, so we&#8217;d really appreciate it if you can take a few minutes to read the FAQ.</p>
</div>
</section>
<section id="stepsupplies" class="step" data-stepid="">
<h2 class="step-title">Supplies</h2>
<div class="step-body">
<p>This Instructable contains information for getting started with HackerBox 0073. The full box contents are listed on the <a href="https://hackerboxes.com/products/hackerbox-0073-lan-lord" rel="nofollow noopener noreferrer">product page for HackerBox 0073</a> where the box is also available for purchase while supplies last. If you would like to automatically receive a HackerBox like this right in your mailbox each month with a $15 discount, you can subscribe at HackerBoxes.com and join the revolution!</p>
<p>A soldering iron, solder, and basic soldering tools are generally needed to work on the monthly HackerBox. A computer for running software tools is also required. Have a look at the HackerBox Core Workshop for a set of basic tools and a wide array of introductory activities and experiments.</p>
<p>Most importantly, you will need a sense of adventure, hacker spirit, patience, and curiosity. Building and experimenting with electronics, while very rewarding, can be tricky, challenging, and even frustrating at times. The goal is progress, not perfection. When you persist and enjoy the adventure, a great deal of satisfaction can be derived from this hobby. Take each step slowly, mind the details, and don&#8217;t be afraid to ask for help.</p>
</div>
</section>
<section id="step1" class="step" data-stepid="SMI9A5BKWNJLR5K">
<h2 class="step-title">Step 1: Wi-Fi Frequencies and Channels</h2>
<div class="mediaset">
<div class="photoset-wrapper">
<div class="photoset">
<div class="photoset-row items-1 ">
<div class="photoset-item photoset-cell" data-imagenotes="[]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18831" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/F303XAYKWOZ14AI.webp" alt="" width="931" height="700" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/F303XAYKWOZ14AI.webp 931w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/F303XAYKWOZ14AI-400x301.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/F303XAYKWOZ14AI-768x577.webp 768w" sizes="(max-width: 931px) 100vw, 931px" /></div>
</div>
</div>
</div>
</div>
<div class="step-body">
<p>The 802.11 standard provides several distinct radio frequency ranges for use in Wi-Fi communications. These range from 1000 MHz to 60 GHz bands. Currently, the most commonly used frequency bands are 2.4GHz and 5GHz.</p>
<p>Each range is divided into multiple channels numbered at 5 MHz spacing. Although channels are numbered at 5 MHz spacing, transmitters generally occupy at least 20 MHz, and standards allow for channels to be bonded together to form wider channels for higher throughput.</p>
<p>Each Wi-Fi channel is a small segment of a frequency through which wireless networks can send and receive data. The 2.4Ghz band is made up of 14 channels, 3 of which are non-overlapping channels. In the illustration the non-overlapping channels are shown with solid lines while the others are dotted. The 5Ghz band has 23 channels, 8 of which are defined for indoor routers and access points.</p>
<p>The 2.4GHz band provides a wide coverage area and is better at penetrating solid objects. It has a maximum data speed of 150Mbps. Unfortunately, 2.4GHz frequencies can suffer more interference and disturbance.</p>
<p>The 5 GHz frequencies support higher data speeds with reduced interference, put provide narrower coverage area and are less capable of penetrating solid objects.</p>
</div>
</section>
<section id="step2" class="step" data-stepid="SPD41GUKWNJLR5P">
<h2 class="step-title">Step 2: ESP8266 D1 Mini</h2>
<div class="mediaset">
<div class="photoset-wrapper">
<div class="photoset">
<div class="photoset-row items-1 ">
<div class="photoset-item photoset-cell" data-imagenotes="[]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18833" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/FQHN2V3KWOZ151F.webp" alt="" width="932" height="700" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/FQHN2V3KWOZ151F.webp 932w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/FQHN2V3KWOZ151F-400x300.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/FQHN2V3KWOZ151F-768x577.webp 768w" sizes="(max-width: 932px) 100vw, 932px" /></div>
</div>
</div>
</div>
</div>
<div class="step-body">
<p>The D1 Mini Module is based on the <a href="https://en.wikipedia.org/wiki/ESP8266" rel="nofollow noopener noreferrer">ESP8266</a> SOC. The ESP8266 SOC includes a microcontroller core, Wi-Fi circuitry, and an integrated TCP/IP protocol stack. The ESP8266 is capable of running code directly on its MCU core, or the ESP8266 can act as a communication peripheral to provide WiFi functionality to another microcontroller.</p>
<p><strong>ESP8266 with the Arduino IDE</strong></p>
<p>The D1 Mini Module can be programmed through the Arduino IDE. To set up the ESP8266 support within the Arduino IDE, follow Steps 1-5 of <a href="https://randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/" rel="nofollow noopener noreferrer">this tutorial</a>.</p>
<p>In the IDE, select Tools &gt; Board &gt; ESP8266 Boards &gt; LOLIN WEMOS D1 R2 &amp; mini</p>
<p>Under Tools &gt; Port select the COM port that appears when the D1 Mini is plugged in</p>
<p><strong>Blink an LED</strong></p>
<p>Open and upload the sketch: File &gt; Example &gt; ESP8266 &gt; Blink</p>
<p>Once uploaded, the Blink sketch will flash the blue LED on the D1 Mini</p>
<p>You can experiment with changing both delay calls in the blink sketch to 2000, run the code, and then change them both to 200 and run the code again. Verify that the LED flashes ten times faster with the 200ms delays compared to the 2000ms delays.</p>
<p><strong>Scan Wi-Fi Networks</strong></p>
<p>The best thing about the ESP8266 is Wi-Fi support, so let&#8217;s try it out. Grab the <em>NetScan8266.ino</em> sketch attached here. Program it into the D1 Mini.</p>
<p>Open Tools &gt; Serial Monitor and set the baud rate to 9600.</p>
<p>The ESP8266 will scan for all 2.4GHz networks and then list out the SSID and <a href="https://en.wikipedia.org/wiki/Received_signal_strength_indication" rel="nofollow noopener noreferrer">RSSI</a> of each one to the serial monitor.</p>
</div>
<div class="downloads">
<h3 class="sr-only">Attachments</h3>
<ul id="attachments" class="ible-files unstyled list-unstyled">
<li class="file-info clearfix"><a class="thumb-wrapper" href="https://content.instructables.com/F04/B895/KWOZ1599/F04B895KWOZ1599.ino" download="NetScan8266.ino"><span class="file-thumb"><img decoding="async" class="tiny-img ls-is-cached lazyloaded" src="https://content.instructables.com/static/image/file.default.gif" alt="download {{ file.name }}" data-src="https://content.instructables.com/static/image/file.default.gif" /></span><span class="title">NetScan8266.ino</span></a>
<div class="file-actions"><a class="btn pull-right" href="https://content.instructables.com/F04/B895/KWOZ1599/F04B895KWOZ1599.ino" download="NetScan8266.ino">Download</a></div>
</li>
</ul>
</div>
</section>
<section id="step3" class="step" data-stepid="S9ETL82KWNJLR5Z">
<h2 class="step-title">Step 3: Assemble the Wi-Fi Nugget</h2>
<div class="mediaset">
<div class="photoset-wrapper">
<div class="photoset">
<div class="photoset-row items-1 ">
<div class="photoset-item photoset-cell" data-imagenotes="[]">
<div class="photoset-image"><a class="gallery-link" href="https://content.instructables.com/FSN/DP53/KWQEE31O/FSNDP53KWQEE31O.png?auto=webp&amp;frame=1&amp;width=1024&amp;fit=bounds&amp;md=MjAyMS0xMi0wMyAwNToxNjozMy4w" rel="photoset73" data-download="https://content.instructables.com/FSN/DP53/KWQEE31O/FSNDP53KWQEE31O.png?auto=webp&amp;frame=1&amp;md=MjAyMS0xMi0wMyAwNToxNjozMy4w" data-fileid="FSNDP53KWQEE31O"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18832" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/FSNDP53KWQEE31O.webp" alt="" width="931" height="700" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/FSNDP53KWQEE31O.webp 931w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/FSNDP53KWQEE31O-400x301.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/FSNDP53KWQEE31O-768x577.webp 768w" sizes="(max-width: 931px) 100vw, 931px" /></a></div>
</div>
</div>
</div>
</div>
</div>
<div class="step-body">
<p>The Wi-Fi Nugget is a cool hacking platform based on the D1 Mini module with an added OLED display, four push buttons, and an RGB WS2812B LED.</p>
<p>The Open Source Hardware Wi-Fi Nugget was designed by <a href="https://linktr.ee/skickar" rel="nofollow noopener noreferrer">skickar</a> and <a href="https://www.youtube.com/c/AlexLynd" rel="nofollow noopener noreferrer">alexlynd</a>. MOAR Nuggets can be purchased from <a href="https://retia.io/products/wi-fi-nugget-assembled" rel="nofollow noopener noreferrer">Retia</a>.</p>
<p><strong>Assembly Notes:</strong></p>
<p>Start with the four pushbuttons. They are not polarized and can be oriented in either direction.</p>
<p>Next set the LED. It must be correctly oriented, so find the little white triangle on one corner of he LED itself and the corner marking on the PCB silk screen. Turn the LED so that these line up.</p>
<p>Next solder on the ESP8266 D1 Mini using the header pins. After soldering, trim the pins close the Nugget PCB</p>
<p><strong><em>ALWAYS WEAR SAFETY GLASSES WHEN CUTTING PINS</em></strong></p>
<p>The last item to solder is the 1.3 inch OLED Display. Prior to soldering the OLED, it is a good idea to put some electrical tape (or carboard or plastic or whatever) between the display and the D1 mini pins that protrude underneath. This can help prevent things from shorting out and also makes the finished product feel nice and solid.</p>
<p><strong>Shall We Play A Game?</strong></p>
<p>This one has nothing to do with LANs, but games are always fun.</p>
<p>Give the attached <em>arkanug.ino</em> a shot.</p>
<p>Note that <em>arkanug</em> requires first setting up the library ssd1306 (by Alexey Dynda) through the Arduino IDE library manager.</p>
</div>
<div class="downloads">
<h3 class="sr-only">Attachments</h3>
<ul id="attachments" class="ible-files unstyled list-unstyled">
<li class="file-info clearfix"><a class="thumb-wrapper" href="https://content.instructables.com/F5P/KLTS/KWQEEBVO/F5PKLTSKWQEEBVO.ino" download="arkanug.ino"><span class="file-thumb"><img decoding="async" class="tiny-img ls-is-cached lazyloaded" src="https://content.instructables.com/static/image/file.default.gif" alt="download {{ file.name }}" data-src="https://content.instructables.com/static/image/file.default.gif" /></span><span class="title">arkanug.ino</span></a>
<div class="file-actions"><a class="btn pull-right" href="https://content.instructables.com/F5P/KLTS/KWQEEBVO/F5PKLTSKWQEEBVO.ino" download="arkanug.ino">Download</a></div>
</li>
</ul>
</div>
</section>
<section id="step4" class="step" data-stepid="SYV0W9QKWNJLR63">
<h2 class="step-title">Step 4: Wi-Fi Nugget Projects</h2>
<div class="mediaset">
<div class="videoset-wrapper">
<div class="videoset">
<div class="videoset-cell">
<div class="videoset-item"></div>
</div>
</div>
</div>
</div>
<div class="step-body">
<p>This video demonstrates the power and versatility of the little ESP8266 SoC as a security tool.</p>
<p>Wi-Fi Nugget <a href="https://github.com/HakCat-Tech/ESP8266-Packet-Monitor" rel="nofollow noopener noreferrer">Packet Monitor</a> code</p>
<p>Wi-Fi Nugget <a href="https://youtu.be/WAG7yCbEFtw" rel="nofollow noopener noreferrer">Quick Start</a> video</p>
<p>Find additional videos and projects on <a href="https://www.youtube.com/channel/UC3s0BtrBJpwNDaflRSoiieQ" rel="nofollow noopener noreferrer">HAK5 YouTube Channel</a></p>
<p>Search for &#8220;WiFi Nugget&#8221; on YouTube</p>
</div>
</section>
<section id="step5" class="step" data-stepid="ST8B9XJKWNJLR67">
<h2 class="step-title">Step 5: Rtlduino RTL8720DN Dual-Band IoT Module</h2>
<div class="mediaset">
<div class="photoset-wrapper">
<div class="photoset">
<div class="photoset-row items-1 ">
<div class="photoset-item photoset-cell" data-imagenotes="[]">
<div class="photoset-image"><a class="gallery-link" href="https://content.instructables.com/FMP/O7XR/KWQEEGAI/FMPO7XRKWQEEGAI.png?auto=webp&amp;frame=1&amp;width=1024&amp;fit=bounds&amp;md=MjAyMS0xMi0wMyAwNzozMDo0Ni4w" rel="photoset79" data-download="https://content.instructables.com/FMP/O7XR/KWQEEGAI/FMPO7XRKWQEEGAI.png?auto=webp&amp;frame=1&amp;md=MjAyMS0xMi0wMyAwNzozMDo0Ni4w" data-fileid="FMPO7XRKWQEEGAI"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18835" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/FMPO7XRKWQEEGAI.webp" alt="" width="931" height="700" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/FMPO7XRKWQEEGAI.webp 931w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/FMPO7XRKWQEEGAI-400x301.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/FMPO7XRKWQEEGAI-768x577.webp 768w" sizes="(max-width: 931px) 100vw, 931px" /></a></div>
</div>
</div>
</div>
</div>
</div>
<div class="step-body">
<p>The Rtlduino development board includes the BW16 dual-band Wi-Fi+Bluetooth SoC module. The BW16 is based on the RTL8720DN chip from Realtek (<a href="https://files.seeedstudio.com/products/102110419/Basic%20documents/UM0401_RTL872xD_Datasheet_v3.4_watermark.pdf" rel="nofollow noopener noreferrer">datasheet</a>). The RTL8720 supports dual band (2.4GHz and 5GHz) Wireless LAN (Wi-Fi) and Bluetooth Low Energy (BLE 5.0). The RTL8720 incorporates two processing cores:</p>
<p>The first core is a high-performance MCU called the KM4. This high-performance core is ARM Cortex-M33 instruction set compatible (Armv8-M). The KM4 MCU is a 32-bit core supporting enhanced debug features, floating point computation, DSP instructions and incorporates a 3-stage pipeline.</p>
<p>The second core is a low power MCU called the KM0. This low-power core is ARM Cortex-M23 instruction set compatible (Armv8-M). The KM0 MCU is an energy-efficient &#8220;coprocessor&#8221; operating on a simple instruction set and reduced code size while remaining code-compatible and tool-compatible with the high-performance KM4 core.</p>
<p>Features:</p>
<ul>
<li>Dual Band Wi-Fi: 2.4GHz and 5GHz</li>
<li>802.11a/b/g/n</li>
<li>Supports HT20/HT40 mode</li>
<li>Low-power modes: beacon monitoring, receiver, suspend</li>
<li>Built-in AES/DES/SHA hardware engine</li>
<li>TrustZone-M and Secure Boot</li>
<li>SWD debug protection and prohibit mode</li>
<li>BLE and BT5.0 Bluetooth</li>
<li>High-Power Bluetooth Amplifier (7dBm)</li>
<li>Shared Wi-Fi and BT Antenna</li>
<li>Wi-Fi Modes: STA/AP/STA+AP</li>
</ul>
<p>Reference: <a href="https://docs.ai-thinker.com/en/rtl87xx" rel="nofollow noopener noreferrer">BW16 Documentation</a> (Ai-Thinker)</p>
<p><strong>MAKING FIRST CONTACT:</strong></p>
<p>We suggest making first contact with, and reprogramming, the Rtlduino module prior to soldering the module or connecting anything to its pins. Simply connect the microUSB port on the Rtlduino to your PC and launch a serial terminal program such as the Arduino IDE Serial Monitor or PuTTY. Set the baud rate of the terminal to 38,400.</p>
<p>The terminal should display &#8220;AT COMMAND READY&#8221; and a # prompt from the Rtlduino. You can type &#8220;AT&#8221; through the terminal and receive an &#8220;OK&#8221; in response.</p>
<p>This AT command interface (reminiscent of Hayes modems and initial ESP8266 offerings) is provided by the firmware loaded into the Rtlduino at the factory. You can remove this firmware and run your own programs.</p>
</div>
</section>
<section id="step6" class="step" data-stepid="SHFFKOWKWOZ014A">
<h2 class="step-title">Step 6: Rtlduino &#8211; Removing the Factory Firmware</h2>
<div class="mediaset">
<div class="photoset-wrapper">
<div class="photoset">
<div class="photoset-row items-1 ">
<div class="photoset-item photoset-cell" data-imagenotes="[]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18834" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/FOI5WO6KWQEEG9R.webp" alt="" width="931" height="700" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/FOI5WO6KWQEEG9R.webp 931w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/FOI5WO6KWQEEG9R-400x301.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/FOI5WO6KWQEEG9R-768x577.webp 768w" sizes="(max-width: 931px) 100vw, 931px" /></div>
</div>
</div>
</div>
</div>
<div class="step-body">
<p>There are three different methods suggested <a href="https://forum.amebaiot.com/t/resources-bw16-troubleshooting-guide/678" rel="nofollow noopener noreferrer">on this forum</a> for clearing the factory firmware on the Rtlduino. We have had success with Method 1 which performs an over the air (OTA) flash using your Wi-Fi network. The process is a little convoluted, so we&#8217;ve attempted to restate it below:</p>
<p><strong>STEP 1. Download the AmebaD SDK</strong></p>
<p>The SDK can be found at the <a href="https://github.com/ambiot/ambd_sdk" rel="nofollow noopener noreferrer">ambiot GitHub</a>.</p>
<p><strong>STEP 2. C</strong><strong>onnect the Rtlduino to your Wi-Fi Network</strong></p>
<p>This is done through the Rtlduino AP command interface</p>
<p>From the serial terminal, enter the AT Command: ATPN=SSID,password</p>
<p>Wait for the response: #ATPN OK</p>
<p>Note that the Wi-Fi network used needs to be the same one that your PC is on</p>
<p><strong>STEP 3. Generate the OTA.bin File</strong></p>
<p>Among the SDK files downloaded above, navigate to the folder &#8220;tools\AmbaD\Image_Tool&#8221;</p>
<p>Run image_tool.exe</p>
<p>Click the &#8220;Generate&#8221; tab</p>
<p>In the &#8220;Generate Target&#8221; dropdown, select OTA_All</p>
<p>Check the box next to &#8220;Bin 3&#8221;</p>
<p>On that same line, hit browse and navigate to that same &#8220;Image_Tool&#8221; folder</p>
<p>From that folder, select &#8220;imgtool_flashloader_amebad.bin&#8221;</p>
<p>Hit &#8220;Generate&#8221;</p>
<p>To save the output file, navigate to &#8220;tools\DownloadServer&#8221; among the same SDK files</p>
<p>Save the file into that folder as &#8220;ota.bin&#8221;</p>
<p><strong>STEP 4. Find the IP Address of your PC</strong><br />
Open a Windows Command Prompt</p>
<p>Run &#8220;ipconfig&#8221;</p>
<p>Make a note of the full address shown as &#8220;IPv4 Address&#8221;</p>
<p><strong>STEP 5. Launch the OTA Download Server</strong></p>
<p>From the Windows Command Prompt, change the directory to:<br />
“\tools\DownloadServer” (where you saved ota.bin)</p>
<p>Run start.bat</p>
<p>The tool will display &#8220;Listening on Port (NNNN) &#8230; Waiting for client&#8230;&#8221;</p>
<p>Make a note of that port number.</p>
<p><strong>STEP 6. Connect the OTA Client (the Rtlduino)</strong></p>
<p>Go back to the serial terminal window</p>
<p>Enter the AT Command:</p>
<p>ATSO=IP_address,port_number</p>
<p>The response should show: ”Erase is ongoing…&#8221; and then eventually complete.</p>
<p><strong>STEP 7. Check the Rtlduino Firmware Image</strong></p>
<p>Press the reset button (RST) on the Rtlduino to check the serial output has updated</p>
</div>
</section>
<section id="step7" class="step" data-stepid="SUB7KVFKWOZ0AFG">
<h2 class="step-title">Step 7: Rtlduino &#8211; Configure and Test Arduino Tools</h2>
<div class="mediaset">
<div class="photoset-wrapper">
<div class="photoset">
<div class="photoset-row items-1 ">
<div class="photoset-item photoset-cell" data-imagenotes="[]">
<div class="photoset-image"><a class="gallery-link" href="https://content.instructables.com/FDY/FAH5/KWOZ0PM0/FDYFAH5KWOZ0PM0.png?auto=webp&amp;frame=1&amp;fit=bounds&amp;md=MjAyMS0xMi0wMiAxMzozMjozNy4w" rel="photoset85" data-download="https://content.instructables.com/FDY/FAH5/KWOZ0PM0/FDYFAH5KWOZ0PM0.png?auto=webp&amp;frame=1&amp;md=MjAyMS0xMi0wMiAxMzozMjozNy4w" data-fileid="FDYFAH5KWOZ0PM0"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18836" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/FDYFAH5KWOZ0PM0.webp" alt="" width="931" height="700" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/FDYFAH5KWOZ0PM0.webp 931w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/FDYFAH5KWOZ0PM0-400x301.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/FDYFAH5KWOZ0PM0-768x577.webp 768w" sizes="(max-width: 931px) 100vw, 931px" /></a></div>
</div>
</div>
</div>
</div>
</div>
<div class="step-body">
<p>First we need to link together two serial ports of the Rtlduino. These are the Main Serial UART and the Log UART. We can link these two ports using two female-female jumpers on the pins shown in the image. The Serial_RX pin is connected to the Log_RX pin. The Serial_TX pin is connected to the Log_TX pin.</p>
<p>Next, install the Arduino IDE (this is probably already done)</p>
<p>Visit the GitHub repo for the <a href="https://github.com/ambiot/ambd_arduino" rel="nofollow noopener noreferrer">Ameba Arduino SDK</a></p>
<p>Follow the instructions there for adding the additional board manager URL into the IDE</p>
<p>Follow the instructions to install the board manager for &#8220;Realtek Ameba Boards&#8221;</p>
<p>In the IDE, Select Tools &gt; Board &gt; AmebaD ARM Boards &gt; RTL8720DN(BW16)</p>
<p>Select the appropriate COM port</p>
<p>Open File &gt; Examples &gt; Basics &gt; Blink</p>
<p>Hit the upload icon (arrow button)</p>
<p>After compiling the code, the IDE will show &#8220;Please enter the upload mode (wait 5s)&#8221;</p>
<p>Press and hold both buttons on the Rtlduino, release the RST button, wait a second, release the Burn button</p>
<p>Hit the RST button again to reset the board and run the newly flashed blink sketch</p>
<p>Repeat the process whenever uploading a sketch to the Rtlduino</p>
<p>The Rtlduino actually has three different on-board LEDs. The define LED_BUILTIN in the blink sketch defaults to LED_G (green). Try replacing all three instances of LED_BUILTIN in the blink sketch with LED_R or LED_B.</p>
</div>
</section>
<section id="step8" class="step" data-stepid="S5GABT5KWNJLR6K">
<h2 class="step-title">Step 8: Rtlduino &#8211; TFT Display Interface PCB</h2>
<div class="mediaset">
<div class="photoset-wrapper">
<div class="photoset">
<div class="photoset-row items-1 ">
<div class="photoset-item photoset-cell" data-imagenotes="[]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18837" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/F2F7ELJKWQEEGLK.webp" alt="" width="931" height="700" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/F2F7ELJKWQEEGLK.webp 931w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/F2F7ELJKWQEEGLK-400x301.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/F2F7ELJKWQEEGLK-768x577.webp 768w" sizes="(max-width: 931px) 100vw, 931px" /></div>
</div>
</div>
</div>
</div>
<div class="step-body">
<p><strong>Assembly</strong></p>
<p>1) Apply two solder blobs to short across the serial port pads linking RX to RX and TX to TX. These connections replace the jumper wires used in the previous step.</p>
<p>2) Insert the four pin header into the PCB. Position the header with the black plastic and the long pins on the TFT side of the PCB and the short pins protruding through to the side of the PCB with the HackerBox logo. Solder the four header pins.</p>
<p>3) Insert the Rtlduino module onto the side of the PCB with the HackerBox logo. Solder the Rtlduino header pins.</p>
<p>4) Insert the TFT display module on the other side of the PCB. Position the TFT module so that it is floating a bit away from the black PCB by imagining that the yellow and black plastic header insulators are 1.5-2 times thicker than they are. Keep the red PCB and the black PCB parallel while soldering the first few pins. Solder the entire long TFT header to the black PCB and then solder the four pin header to the TFT module.</p>
<p><strong>Install a Library for the TFT Display</strong></p>
<p>Using the IDE Library Manager, install the library &#8220;Adafruit ILI9341&#8221;</p>
<p><strong>Test the TFT Display with Fractals</strong></p>
<p>Open the sketch File &gt; Examples &gt; Adafruit ILI9341 &gt; mandelbrot</p>
<p>About 18 lines down under the comment &#8220;//use SPI&#8221; find the #define for TFT_DC</p>
<p>change #define TFT_DC from 10 to 8</p>
</div>
</section>
<section id="step9" class="step" data-stepid="S3USCJRKWUORRX6">
<h2 class="step-title">Step 9: Rtlduino TFT &#8211; PCB Specs</h2>
<div class="mediaset">
<div class="photoset-wrapper">
<div class="photoset">
<div class="photoset-row items-1 ">
<div class="photoset-item photoset-cell" data-imagenotes="[]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18838" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/F0R9B0GKWUORS0W.webp" alt="" width="932" height="700" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/F0R9B0GKWUORS0W.webp 932w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/F0R9B0GKWUORS0W-400x300.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/F0R9B0GKWUORS0W-768x577.webp 768w" sizes="(max-width: 932px) 100vw, 932px" /></div>
</div>
</div>
</div>
</div>
<div class="step-body">
<p>The extra jumpers points on the PCB can be shorted to connect the SD card socket</p>
<p>The blue numbers in the image indicate the definitions of the Rtlduino pins within the Arduino environment</p>
<p>Arduino pins 6 and 7 are not needed by the TFT display and may be used for other I/O connections. Arduino pin 7 connects to the jumper pad labeled PA25 on the black PCB. Arduino pin 6 connects to the circular test pad labeled PB3 on the black PCB.</p>
</div>
</section>
<section id="step10" class="step" data-stepid="S91RIAPKWNJLR6P">
<h2 class="step-title">Step 10: Rtlduino &#8211; Dual Frequency Wi-Fi Mapping</h2>
<div class="mediaset">
<div class="photoset-wrapper">
<div class="photoset">
<div class="photoset-row items-1 ">
<div class="photoset-item photoset-cell" data-imagenotes="[]"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18839" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/FFB1G5NKWOZ0WP1.webp" alt="" width="853" height="640" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/FFB1G5NKWOZ0WP1.webp 853w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/FFB1G5NKWOZ0WP1-400x300.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/FFB1G5NKWOZ0WP1-768x576.webp 768w" sizes="(max-width: 853px) 100vw, 853px" /></div>
</div>
</div>
</div>
</div>
<div class="step-body">
<p>Grab the attached <strong><em>DualWiFiMapper.ino</em></strong> sketch and burn it to the Rtlduino.</p>
<p>Feel the power of dual frequency Wi-Fi support?</p>
<p>We can now work with both 2.4GHz and 5GHz wireless channels.</p>
</div>
<div class="downloads">
<h3 class="sr-only">Attachments</h3>
<ul id="attachments" class="ible-files unstyled list-unstyled">
<li class="file-info clearfix"><a class="thumb-wrapper" href="https://content.instructables.com/FF6/7IC7/KWQEF30J/FF67IC7KWQEF30J.ino" download="DualWiFiMapper.ino"><span class="file-thumb"><img decoding="async" class="tiny-img ls-is-cached lazyloaded" src="https://content.instructables.com/static/image/file.default.gif" alt="download {{ file.name }}" data-src="https://content.instructables.com/static/image/file.default.gif" /></span><span class="title">DualWiFiMapper.ino</span></a>
<div class="file-actions"><a class="btn pull-right" href="https://content.instructables.com/FF6/7IC7/KWQEF30J/FF67IC7KWQEF30J.ino" download="DualWiFiMapper.ino">Download</a></div>
</li>
</ul>
</div>
</section>
<section id="step11" class="step" data-stepid="S5B0577KWNJLR6Z">
<h2 class="step-title">Step 11: Wardriving</h2>
<div class="mediaset">
<div class="photoset-wrapper">
<div class="photoset">
<div class="photoset-row items-1 ">
<div class="photoset-item photoset-cell" data-imagenotes="[]">
<div class="photoset-image"><a class="gallery-link" href="https://content.instructables.com/F6B/5QKW/KWQEF0KM/F6B5QKWKWQEF0KM.png?auto=webp&amp;frame=1&amp;width=1024&amp;fit=bounds&amp;md=MjAyMS0xMi0wMyAwOTozMDo0OC4w" rel="photoset97" data-download="https://content.instructables.com/F6B/5QKW/KWQEF0KM/F6B5QKWKWQEF0KM.png?auto=webp&amp;frame=1&amp;md=MjAyMS0xMi0wMyAwOTozMDo0OC4w" data-fileid="F6B5QKWKWQEF0KM"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18840" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/F6B5QKWKWQEF0KM.webp" alt="" width="931" height="700" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/F6B5QKWKWQEF0KM.webp 931w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/F6B5QKWKWQEF0KM-400x301.webp 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/F6B5QKWKWQEF0KM-768x577.webp 768w" sizes="(max-width: 931px) 100vw, 931px" /></a></div>
</div>
</div>
</div>
</div>
</div>
<div class="step-body">
<p>Wardriving is the act of searching for Wi-Fi wireless networks, usually from a moving vehicle, using a laptop or smartphone (or an SoC). Software for wardriving is freely available on the internet.</p>
<p>The term Wardriving is derived from the original wardialing. Wardialing is a method popularized by the film WarGames and is, in fact, named after the film. Wardialing consists of dialing every phone number in a specific sequence in search of modems.</p>
<p>Wardrivers often use a Wi-Fi-equipped device together with a GPS device to record the location of wireless networks. The results can then be uploaded to websites like WiGLE, openBmap or Geomena where the data is processed to form maps of the network neighborhood. There are also clients available for smartphones running Android that can upload data directly. For better range and sensitivity, antennas are built or bought, and vary from omnidirectional to highly directional. <a href="https://www.instructables.com/HackerBox-0073-LAN-Lord/" target="_blank" rel="noopener">source</a></p>
</div>
</section>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>GhostESP- The ESP32-C6</title>
		<link>https://goodshepherdmedia.net/ghostesp-the-esp32-c6/</link>
		
		<dc:creator><![CDATA[The Truth News]]></dc:creator>
		<pubDate>Thu, 31 Oct 2024 07:20:19 +0000</pubDate>
				<category><![CDATA[⚠️Breaking News⚠️]]></category>
		<category><![CDATA[Computer Hacks]]></category>
		<category><![CDATA[Cool Tech & Gadgets 📱⌚🎧⚡]]></category>
		<category><![CDATA[Digital Pioneers]]></category>
		<category><![CDATA[Hackers / Master Programmers]]></category>
		<category><![CDATA[Hardware Pioneers]]></category>
		<category><![CDATA[Home & Garden]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Science & Engineering]]></category>
		<category><![CDATA[Software Pioneers]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Top Stories]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Zee Truthful News]]></category>
		<category><![CDATA[🔐Cybersecurity]]></category>
		<category><![CDATA[🔐Hacking Technology]]></category>
		<category><![CDATA[🛜🌐💻⌨ Pen Test Tools]]></category>
		<category><![CDATA[🛜🌐💻⌨ Wireless Pen Test]]></category>
		<category><![CDATA[GhostESP- The ESP32-C6]]></category>
		<guid isPermaLink="false">https://goodshepherdmedia.net/?p=18814</guid>

					<description><![CDATA[WiFi “Ghost Frame”, What Is It? A WiFi Ghost frame is a term widely used in the WiFi community lately. It is not a part of the 802.11 standard, it is just a term many uses. Some say it is a frame the receiver don’t hear, other say the receiver don’t understand. Both are wrong. So [&#8230;]]]></description>
										<content:encoded><![CDATA[<header class="entry-header">
<h1 class="entry-title">WiFi “Ghost Frame”, What Is It?</h1>
<div class="entry-meta small-part">
<p><iframe title="GhostESP : The Next Generation WiFi Hacking Tool!!" width="640" height="360" src="https://www.youtube.com/embed/6RjM7aI4k4k?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p><iframe title="Hack Wifi from $1.80" width="640" height="360" src="https://www.youtube.com/embed/idy5mE-fypE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
</div>
<div></div>
<div class="entry-meta small-part"></div>
</header>
<div class="entry-content">
<p>A WiFi Ghost frame is a term widely used in the WiFi community lately. It is not a part of the 802.11 standard, it is just a term many uses.</p>
<p>Some say it is a frame the receiver don’t hear, other say the receiver don’t understand. Both are wrong.</p>
<p>So what is it?. I will try to explain.</p>
<p>&nbsp;</p>
<p><strong>Contraints</strong><br />
I am only talking about frames in the 5GHz band and non-HT, HT and VHT frame formats. HE frame formats is not considered.<br />
I assume the reader knows something about 802.11. I don’t explain the basic stuff.<br />
The wireless frame in this article is sent by the AP.</p>
<p>&nbsp;</p>
<p><strong>Background</strong><br />
An 802.11 frame consists mainly of two parts. The Preamble (also called the Physical header), and the Data field, like this</p>
<div class="wp-block-image">
<figure id="attachment_18818" aria-describedby="caption-attachment-18818" style="width: 1114px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-18818" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/general-frame-format-1.gif" alt="" width="1114" height="89" /><figcaption id="caption-attachment-18818" class="wp-caption-text">Figure 1: General Frame Format</figcaption></figure>




</div>
<p>The Preamble is always sent with BPSK modulation and 1/2 coding. It has different contents depended whether the Data field is non-HT, HT or VHT frame, but the modulation and coding are always BPSK 1/2. The Data field is sent with a modulation and coding scheme decided by the transmitter. The modulation scheme can be BPSK, QPSK, 16-QAM, 64-QAM, or 256-QAM. And there are different coding schemes. BPSK 1/2 is a more robust modulation and coding scheme than the others and will therefore have a “longer” range.<br />
This can be shown in a figure like this:</p>
<figure class="wp-block-image size-large is-resized">
<p><figure id="attachment_18819" aria-describedby="caption-attachment-18819" style="width: 728px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-18819" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/edges-for-chosen-mcs-and-bpsk-1_2.gif" alt="" width="728" height="712" /><figcaption id="caption-attachment-18819" class="wp-caption-text">Figure 2: Edge for chosen mcs/data rate and BPSK 1/2 frames</figcaption></figure></figure>
<p>Communication between the AP and STA1 will be done with an appropriate mcs-index/data rate. STA2 will in the case hear/receive the full-frame from the AP, but it will only successfully demodulate the preamble unless the frame is a 6mbs (BPSK 1/2) frame. The data field in the frame from the AP will not be successfully demodulated by STA2 and it will not be able to extract the information in it.</p>
<p><strong>A scenario with minimum basic rate set to 12mbs</strong><br />
So let us make a scenario where the minimum basic rate in the BSS is set to 12mbs (QPSK 1/2). This means many of the frames in the BSS is sent at 12mbs, frames like Beacon and the other management frames, and most of the control frames. Data frames are usually sent with higher rates. According to the standard, a station needs an RSSI of -79dBm to be able to receive and successfully demodulate a 12mbs frame (QPSK 1/2), while it needs -82dBm for 6mbs (BPSK 1/2). And if we have a designed network with cell edges at -67dBm, it will look like this:</p>
<figure class="wp-block-image size-large">
<p><figure id="attachment_18820" aria-describedby="caption-attachment-18820" style="width: 1018px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-18820" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/12-vs-6-mbs-scenario_v2.gif" alt="" width="1018" height="877" /><figcaption id="caption-attachment-18820" class="wp-caption-text">Figure 3: a 12mbs versus 6mbs scenario</figcaption></figure><figcaption></figcaption></figure>
<p>In this figure I have used these parameters:<br />
– free space path loss (FSPL)<br />
– a 6dB degradation of RSSI for each doubling of the distance<br />
– cell size for the APs coverage area till -67dBm (often called the “want” area)</p>
<p>&nbsp;</p>
<p>In figure 3 we have STA1 inside our designed coverage cell, STA2 is inside the edge for successfully demodulating of the 12mbs frames and STA3 is in an area where it will successfully demodulate the preamble from the AP, but not the data field of the frame.</p>
<p><strong>So what happens at STA3</strong><br />
Let us consider a frame sent from the AP at 12mbs and see what happens at STA3.<br />
First STA3 will receive the preamble with BPSK 1/2 and later the data field with QPSK 1/2.<br />
STA3 knows, based on the standard, that the preamble is modulated with BPSK 1/2. Since this is an 12mbs frame it is also a 802.11a frame. The Signal field in the preamble will therefore tell about the data rate for the data field (12 mbs or QPSK 1/2).<br />
If it was a mcs frame, the preamble would have an additional field (HT/VHT preamble) which informs of the data rate for the data field</p>
<p><strong>Demodulation of this frame</strong><br />
If we look at the constellation mapper for BPSK and QPSK from the 802.11 standards it looks like this:</p>
<figure class="wp-block-image size-large">
<p><figure id="attachment_18821" aria-describedby="caption-attachment-18821" style="width: 797px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-18821" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/bpsk-and-qpsk-constellastion-map.gif" alt="" width="797" height="288" /><figcaption id="caption-attachment-18821" class="wp-caption-text">Figure 4: BPSK and QPSK Constellation Map</figcaption></figure><figcaption></figcaption></figure>
<p>During demodulation, the receiver does a Fast Fourier Transform. The FFT basically interpret the amplitude and phase of each subcarrier and the output is a complex number with this format:</p>
<p>d=(I+jQ) x Kmod. We will not consider the Kmod now and assume it is 1</p>
<p>For the preamble, the receiver knows it is BPSK and the Q value in the formula is not considered. As long it predicts each subcarrier has a phase either in the first or the fourth quadrant it gives a result d=1 and it is a bit value of “1”. If the phase for each subcarrier is in the second or the third quadrant it will give a result of d=-1 and a bit value of “0”. Like this:</p>
<figure class="wp-block-image size-large">
<p><figure id="attachment_18822" aria-describedby="caption-attachment-18822" style="width: 392px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-18822" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/bpsk-reception.gif" alt="" width="392" height="437" /><figcaption id="caption-attachment-18822" class="wp-caption-text">Figure 5: Reception of BPSK</figcaption></figure><figcaption></figcaption></figure>
<p>Keith Parsons have a great video on modulation,</p>
<p><iframe title="Different Types of 802.11 Modulation Schemes" width="640" height="360" src="https://www.youtube.com/embed/W5DMfEuY2Vg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>Since STA3 barely is able to demodulate the preamble correctly we can assume the result of the FFT for all subcarriers will be all over the first and fourth quadrant (red rectangle) for “1”, and likewise for “0” in the second and third quadrant (blue rectangle).</p>
<p>Next, during the reception of the data field, the energy in the signal is still the same, but this time each subcarrier FFT phase result must hit inside a single quadrant to give its correct bit value. For example, a hit in the first quadrant (d=1+j) will give a bit value of “11”.<br />
But the quality of the received signal is the same as for the preamble. Since we assumed the result from the FFT will hit all around in the first and fourth quadrant for a “1” for BPSK, the result will for a phase value that should have given a bit value of “11” be like this:</p>
<figure class="wp-block-image size-large is-resized">
<p><figure id="attachment_18823" aria-describedby="caption-attachment-18823" style="width: 324px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-18823" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/qpsk-reception.gif" alt="" width="324" height="305" /><figcaption id="caption-attachment-18823" class="wp-caption-text">Figure 6: Reception of QPSK</figcaption></figure><figcaption></figcaption></figure>
<p>This will happen for every subcarrier in a symbol. For some subcarriers, the FFT will predict the correct value of d=1+j (11). But for other subcarriers, the FFT will predict either d=-1+j (01) or d=1-j (10). The FEC (forward error correction) build into the decoder will be able to correct some of the bit values, but not all.<br />
The reception can fail here if the receiver is not able to extract the Service field of the data field correctly.<br />
If the receiver sends the demodulated bit values up to the MAC layer, the bit pattern is processed there. One of the things that happen in the MAC layer is to find the Type and Subtype field in the 802.11 MAC header to decide what type of frame it is, and at last the full data field will be checked with a CRC control. But since there is a lot of bit faults in the bitstream, it will fail somewhere.</p>
<p>Probably, the reception will fail in the de-modulator, at layer 1. But if the bit pattern is been sent to the MAC layer it will fail there, at layer 2.</p>
<p>To summarize this for STA3:</p>
<ul class="wp-block-list">
<li>The preamble (BPSK 1/2) will be successfully received, demodulated and, understood in the receiver, at layer 1</li>
<li>The data field (QPSK 1/2) is received with the same power level at the receiver, at layer 1. But because the demodulation process output will have so many fault bit values it will probably fail at layer 1</li>
<li>If the bit pattern is sent up till the MAC layer, at layer 2, it will fail there</li>
<li>So, the full-frame is heard and received, at least at layer 1. But it will fail and will not be interpreted at layer 2 or higher.</li>
<li>STA3 will therefore do at least two thing
<ul>
<li>Understand the preamble with the Signal field and can calculate the duration of this frame</li>
<li>It will not be able to receive the NAV-timer from the MAC header, but it will sense/hear 802.11 modulated signal patterns during the full duration of the frame. If it not going into sleep mode for this duration of time</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<p><strong>What are the consequences?</strong><br />
First of all, this does not happen inside of the -67dBm cell coverage of our AP. It is either in another BSS or if we, in our network have two BSSs on the same channel at some distance away from each other</p>
<p>If STA3 is a non-AP STA (client) it will have to stay quiet during the duration of the frame<br />
If STA3 is an AP it will have to stay quiet during the duration of the frame, and it could report at airtime utilization value based on the duration.<br />
If STA3 is a spectrum analyzer it could visualize the energy received<br />
If STA3 is a capturing device it would not show anything</p>
<p><strong>How to mitigate this behavior?</strong><br />
If we let 6mbs be the minimum basic rate, both the preamble and the data field for, at least the control and management frames, will be using BPSK 1/2 modulation and coding scheme, and the Beacons/BSS will be visible in a Wlan scanner tool. And all the 6mbs frames could be captured for protocol analyses.<br />
The BSS Coloring feature in 802.11ax would be perfect to use to mitigate this challenge. But that could be described in another article. <a href="https://gjermundraaen.com/2020/11/15/wifi-ghost-frame-what-is-it/#:~:text=A%20WiFi%20Ghost%20frame%20is,Both%20are%20wrong." target="_blank" rel="noopener">source</a></p>
<p><strong>The closing</strong><br />
I hope this is useful.<br />
I have learned a lot.<br />
Please, give feedback if you want</p>
<div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled">
<div class="sharedaddy sd-sharing-enabled">
<div class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing">
<h3 class="sd-title">Share this:</h3>
</div>
</div>
</div>
</div>
<h2><span style="color: #ff0000;">Download Softare Below</span></h2>
<h3><span class="author flex-self-stretch"><a class="url fn" href="https://github.com/Spooks4576" rel="author" data-hovercard-type="user" data-hovercard-url="/users/Spooks4576/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self">Spooks4576</a></span><span class="mx-1 flex-self-stretch color-fg-muted">/</span><strong class="mr-2 flex-self-stretch"><a href="https://github.com/Spooks4576/Ghost_ESP" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame">Ghost_ESP Buy here</a></strong></h3>
<h2>Purchase GPS Hardware Below</h2>
<h3 class="product_title entry-title"><a href="https://rabbit-labs.com/product/spookyesp-the-esp32-c6-board-that-sends-shivers-down-your-spine/" target="_blank" rel="noopener">GhostESP- The ESP32-C6</a><em>    <a href="https://rabbit-labs.com/product/spookyesp-the-esp32-c6-board-that-sends-shivers-down-your-spine/" target="_blank" rel="noopener">Buy Here</a></em></h3>
<p><a href="https://rabbit-labs.com/product/spookyesp-the-esp32-c6-board-that-sends-shivers-down-your-spine/" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18816" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/GhostESP-The-ESP32-C6.jpg" alt="" width="686" height="386" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/GhostESP-The-ESP32-C6.jpg 686w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/GhostESP-The-ESP32-C6-400x225.jpg 400w" sizes="(max-width: 686px) 100vw, 686px" /></a></p>
<p>supe it up with a GPS Module</p>
<h3 class="product_title entry-title"><a href="https://rabbit-labs.com/product/gps-gnss-module-by-rabbit-labs/" target="_blank" rel="noopener">GPS/GNSS Module by Rabbit-Labs</a>     <a href="https://rabbit-labs.com/product/gps-gnss-module-by-rabbit-labs/" target="_blank" rel="noopener">Buy Here</a></h3>
<p><a href="https://rabbit-labs.com/product/gps-gnss-module-by-rabbit-labs/" target="_blank" rel="noopener"><img loading="lazy" decoding="async" class="alignnone wp-image-18815" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/gps1-GhostESP-The-ESP32-C6-768x1024.webp" alt="" width="416" height="555" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/gps1-GhostESP-The-ESP32-C6-768x1024.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/gps1-GhostESP-The-ESP32-C6-300x400.webp 300w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/gps1-GhostESP-The-ESP32-C6-1152x1536.webp 1152w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/gps1-GhostESP-The-ESP32-C6-1536x2048.webp 1536w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/gps1-GhostESP-The-ESP32-C6.webp 1600w" sizes="(max-width: 416px) 100vw, 416px" /></a></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18817" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/esp32-c6-reality-check-v0-vqko31y2bafa1-scaled.webp" alt="" width="1920" height="2560" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/esp32-c6-reality-check-v0-vqko31y2bafa1-scaled.webp 1920w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/esp32-c6-reality-check-v0-vqko31y2bafa1-300x400.webp 300w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/esp32-c6-reality-check-v0-vqko31y2bafa1-768x1024.webp 768w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/esp32-c6-reality-check-v0-vqko31y2bafa1-1152x1536.webp 1152w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/esp32-c6-reality-check-v0-vqko31y2bafa1-1536x2048.webp 1536w" sizes="(max-width: 1920px) 100vw, 1920px" /></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Block Internet ads at home with Pi-hole</title>
		<link>https://goodshepherdmedia.net/block-internet-ads-at-home-with-pi-hole/</link>
		
		<dc:creator><![CDATA[The Truth News]]></dc:creator>
		<pubDate>Fri, 04 Oct 2024 08:17:10 +0000</pubDate>
				<category><![CDATA[Computer Hacks]]></category>
		<category><![CDATA[Cool Tech & Gadgets 📱⌚🎧⚡]]></category>
		<category><![CDATA[Digital Pioneers]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hackers / Master Programmers]]></category>
		<category><![CDATA[Hardware Pioneers]]></category>
		<category><![CDATA[Home & Garden]]></category>
		<category><![CDATA[Home Computing]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software Pioneers]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Top Stories]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Zee Truthful News]]></category>
		<category><![CDATA[🔐Hacking Technology]]></category>
		<category><![CDATA[🛜🌐💻⌨ Pen Test Tools]]></category>
		<category><![CDATA[🛜🌐💻⌨ Wireless Pen Test]]></category>
		<category><![CDATA[Block Internet ads]]></category>
		<category><![CDATA[Block Internet ads at home]]></category>
		<category><![CDATA[Block Internet ads NO PLUGIN]]></category>
		<category><![CDATA[Block Internet ads with hardware]]></category>
		<category><![CDATA[Pi-hole]]></category>
		<guid isPermaLink="false">https://goodshepherdmedia.net/?p=18772</guid>

					<description><![CDATA[Enhance Your Network with Pi-hole: Ad Blocking and Privacy Solutions Internet advertisements have become very obtrusive and more apparent over the last several years. Users conducting research from various sources on the web are often met with a vexatious experience full of distractions. Children watching YouTube videos that have inappropriate advertisement content embedded in the [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1 class="elementor-heading-title elementor-size-large"><b>Enhance Your Network with Pi-hole: Ad Blocking and Privacy Solutions</b></h1>
<p><iframe title="How to block internet ads and tracking in 2022 | installing Pi-hole on a Raspberry Pi" width="640" height="360" src="https://www.youtube.com/embed/G7jmu3E8ETg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>Internet advertisements have become very obtrusive and more apparent over the last several years. Users conducting research from various sources on the web are often met with a vexatious experience full of distractions. Children watching YouTube videos that have inappropriate advertisement content embedded in the videos are also becoming a concern for many parents. Normally users will install ad-blocking software and extensions on their operating systems and web browsers. Most of the software installed for ad-blocking purposes ends up not being updated and extensions for web browsers often stop working when the web browser itself has been updated.</p>
<p>A more efficient solution is now available thanks to single board computing.  The Raspberry Pi being the most readily available single board computer. For a mere $16 anyone can have a multi-platform, network-wide ad blocker on their local network. This software plays very nice in both office and home networks. Pi-hole offers a wonderful dashboard with real time analytics if you’re someone who loves numbers.</p>
<p>Below is an example of a Raspberry Pi, with Pi-hole installed showing real time stats via an LCD installed on the Raspberry Pi:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-18774" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/PiHole-on-Rasp-Pi.jpg" alt="" width="529" height="397" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/PiHole-on-Rasp-Pi.jpg 1024w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/PiHole-on-Rasp-Pi-400x300.jpg 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/PiHole-on-Rasp-Pi-768x576.jpg 768w" sizes="(max-width: 529px) 100vw, 529px" /></p>
<h3><span style="color: #3366ff;"><em><strong>So what is needed to get this project going?</strong></em></span></h3>
<ul>
<li><a href="https://www.amazon.com/CanaKit-Raspberry-Complete-Starter-Kit/dp/B01C6Q2GSY">Raspberry Pi Kit</a> – $16</li>
<li><a href="http://www.ebay.com/itm/Purple-1-2-40Ft-Cat5E-Giga-Lan-Network-Ethernet-CMX-Outdoor-FTP-Shielded-Cable-/232012317971?var=&amp;hash=item3605030513:m:mKaIJBJ0Q1D6TtuNxjiMhgg">Ethernet Cable</a> (Optional) – $6</li>
<li><a href="https://www.seeedstudio.com/blog/2019/01/29/12-popular-raspberry-pi-displays-and-touch-screens/">Screen for Raspberry Pi</a> (Optional) -$20</li>
</ul>
<p>After you have purchased these components it’s very simple to install Pi-hole.</p>
<p><iframe title="4 Reasons Why Pi-Hole Should Be Your Next Raspberry PI Project" width="640" height="360" src="https://www.youtube.com/embed/QOSSjsbDx-w?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>You can install an Operating System image on your Raspberry Pi. Step-by-step directions are provided and the entire process takes less than 10 minutes to complete.</p>
<p>Installing Pi-hole:</p>
<ol>
<li>Install Pi-hole on the Raspberry Pi. The program can be downloaded <a href="https://pi-hole.net/">here</a> or via the install “curl -sSL https://install.pi-hole.net | bash|”” command.</li>
<li>Configure your router DHCP settings to force clients in using your PI-hole as their DNS server. You can also manually configure each device but that takes much more time than blocking ads on the whole network at once. This step sounds more difficult than it actually is. The only thing that you have to change are some ports and DNS settings on your router. Most routers have this setting displaying on the main page and it can be changed within a matter of a few seconds. A straightforward guide is provided on <a href="https://discourse.pi-hole.net/t/how-do-i-configure-my-devices-to-use-pi-hole-as-their-dns-server/245">Pi-Holes official site</a>.</li>
<li>Completion! Your Pi-hole blocks all advertisements at a DNS level. This means your whole network is protected and any device connected will automatically block online commercials even inside Apps and programs. You have freed your laptop, iPhone, Nexus tablet and desktop PC from all online commercials! Enjoy faster loading times on all your favorite websites and apps.</li>
</ol>
<p>If you’d like to pull up Pi-holes nifty dashboard and see how many advertisements were blocked from your entire network you’ll see a clean interface exactly like the one below :</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18776" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/PiHole.png" alt="" width="772" height="397" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/PiHole.png 772w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/PiHole-400x206.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/PiHole-768x395.png 768w" sizes="(max-width: 772px) 100vw, 772px" />Fun Facts About Pi-hole :</p>
<p>– The code is completely open, and you are able to modify it in any way you’d like. (Yay for open-source!)<br />
– Pi-hole is very lightweight as it only handles DNS queries and returns a blank HTML file so it doesn’t need much processing power. (Yay for efficiency!)<br />
– Pi-hole will run on most Debian-based distros and is the preferred platform for it.(Yay for compatibility!) <a href="https://bluefletch.com/pi-hole-the-antimatter-of-advertisements/" target="_blank" rel="noopener">source</a></p>
<hr />
<h3><span style="color: #ff0000;"><strong><em>Block Internet ads at home with Pi-hole</em></strong></span></h3>
<h1>LETS DIVE DEEPER&#8230;.</h1>
<p><iframe title="How to Set Up a Pi-Hole System on a Raspberry Pi - Block Ads and More!" width="640" height="360" src="https://www.youtube.com/embed/roYduABVjo8?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>&nbsp;</p>
<div id="preamble">
<div class="sectionbody">
<p>Internet advertising can often be a nuisance. It takes up valuable bandwidth. It weighs your browser down with trackers. It reports your data back to untrustworthy third parties.</p>
<p>On some devices, like laptops and phones, you can use ad blockers to protect yourself (and your sanity). But on many smart devices, like TVs, refrigerators, <a href="https://revcook.com/products/instaglo-r180-toaster">toasters</a>, and <a href="https://www.kohler.com/en/products/toilets/shop-toilets/numi-2-0-one-piece-elongated-smart-toilet-dual-flush-30754-pa">toilets</a>, you can’t install an ad blocker.</p>
<p>Pi-hole simplifies ad blocking by operating at the <em>network</em> level, instead of on individual devices. That way, you aren’t restricted by which devices can install an ad-blocker; instead, you can protect devices on your network from ever accessing ads in the first place.</p>
</div>
</div>
<div class="sect1">
<p><iframe title="World&#039;s Greatest Pi-hole Tutorial - Easy Raspberry Pi Project!" width="640" height="360" src="https://www.youtube.com/embed/cE21YjuaB6o?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<h2>How does Pi-hole work?</h2>
<h1><img loading="lazy" decoding="async" class=" wp-image-18775 alignright" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/Pi-hole-2.jpg" alt="" width="578" height="325" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/Pi-hole-2.jpg 686w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Pi-hole-2-400x225.jpg 400w" sizes="(max-width: 578px) 100vw, 578px" /></h1>
<div class="sectionbody">
<p>Pi-hole blocks ads by acting as a <a href="https://en.wikipedia.org/wiki/DNS_sinkhole">DNS sinkhole</a>.</p>
<p>To understand what a DNS sinkhole is, you need to understand what DNS is. Here are a few key terms:</p>
<div class="dlist"><em><span style="color: #ff0000;">IP address: </span><span style="color: #0000ff;">unique numeric address of a web resource (e.g. <code>104.22.23.160</code>)</span></em></div>
<div class="dlist">
<div class="dlist">
<p><em><span style="color: #ff0000;">DNS: </span><span style="color: #0000ff;">Domain Name System, associates domain names with IP addresses</span></em></p>
<div class="dlist">
<p><em><span style="color: #ff0000;">DNS server: </span><span style="color: #0000ff;">a server that translates domain names into IP addresses</span></em></p>
<div><em><span style="color: #ff0000;">Domain Name:</span> <span style="color: #3366ff;">unique alphanumeric address of a web resource (e.g. <code>raspberrypi.com</code>)</span></em></div>
<div><strong><strong><span style="color: #3366ff;"><br />
When you type <code>www.raspberrypi.com</code> into your browser, your computer asks a DNS server where to find that domain. The DNS server responds with an IP address (e.g. <code>104.22.23.160</code>). Then your computer queries that IP address for the resource you’re looking for.</span></strong></strong>We use domain names because IP addresses aren’t very human-readable; it’s a lot easier to read and write &#8220;raspberrypi.com&#8221; than four bytes&#8217; worth of numbers.Usually, your computer queries a DNS server hosted somewhere on the internet. It might be hosted by your internet provider, a website hosting company, or any company that runs a lot of servers. Your machine submits a domain, and the DNS server returns the IP address corresponding to that domain. The DNS server doesn’t care if the domain provides something you want (like the article you’re trying to read) or an ad. It just resolves domains into IP addresses.</p>
<p>Here’s where Pi-hole comes in. Pi-hole stands between your network and a DNS server. Consider a client device, like your smart toilet, performing a DNS lookup for a domain. The Pi-hole in your network acts like a DNS server; DNS lookups from all client devices, whether that’s your smart toilet or your phone, go to the Pi-hole.</p>
<p>But Pi-hole doesn’t store a perfect up-to-date mapping of all domain names to all IP addresses. Instead, Pi-hole queries a <em>real</em> DNS server outside of your network. However, before it queries that real DNS server, Pi-hole checks a blocklist. If the domain passes this filter, Pi-hole requests the IP address from the DNS server, and returns it to the client device on your network. If the domain doesn’t pass the filter — if it’s included on the blocklist — Pi-hole returns a non-routable address such as <code>0.0.0.0</code>.</p>
<p>The following diagram shows a lookup via a Pi-hole for the <em>unblocked</em> domain <code>raspberrypi.com</code>:</p>
<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone wp-image-18777" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/dns_success-1024x209-1.png" alt="" width="784" height="160" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/dns_success-1024x209-1.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/dns_success-1024x209-1-400x82.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/dns_success-1024x209-1-768x157.png 768w" sizes="(max-width: 784px) 100vw, 784px" /></figure>
</div>
<p>The following diagram shows a lookup via a Pi-hole for the <em>blocked</em> domain <code>raspberryads.com</code>:</p>
<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone wp-image-18778" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/dns_blocked-1024x209-1.png" alt="" width="784" height="160" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/dns_blocked-1024x209-1.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/dns_blocked-1024x209-1-400x82.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/dns_blocked-1024x209-1-768x157.png 768w" sizes="(max-width: 784px) 100vw, 784px" /></figure>
</div>
<p>TL;DR: Pi-hole blocks requests made to ad domains from your network, before the requests ever leave your network. Your client devices <strong>can’t</strong> connect to domains that host ads, but <strong>can</strong> connect to domains that host useful content.</p>
</div>
</div>
<div class="sect1">
<h2 id="overview">Overview</h2>
<div class="sectionbody">
<p>To install a Pi-hole in your network, you’ll need to do the following things:</p>
<div class="olist arabic">
<ol class="arabic">
<li>Configure a Raspberry Pi running Raspberry Pi OS.</li>
<li>Set up <a href="https://github.com/pi-hole/pi-hole">Pi-hole</a> software on your Raspberry Pi.</li>
<li>Direct DNS queries on your network to your Raspberry Pi.</li>
</ol>
</div>
</div>
</div>
<div class="sect1">
<h2 id="supplies">Supplies</h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>Raspberry Pi</li>
<li>suitable power supply (see <a href="https://www.raspberrypi.com/documentation/computers/getting-started.html#power-supply">the documentation for details</a>)</li>
<li>microSD card (see <a href="https://www.raspberrypi.com/documentation/computers/getting-started.html#sd-cards">the documentation for details</a>)</li>
<li>adapter to connect your microSD card with <em>your usual computer</em></li>
<li>USB cable (check your 3D printer for details)</li>
</ul>
</div>
<p>For the initial SD card setup, you will need:</p>
<div class="ulist">
<ul>
<li>Another computer connected to your network. We’ll refer to this as <em>your usual computer</em> to distinguish it from the Raspberry Pi computer you are setting up.</li>
</ul>
</div>
<div class="sect2">
<h3 id="choose-a-raspberry-pi">Choose a Raspberry Pi</h3>
<p>You can use any Raspberry Pi model for this. We recommend <a href="https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/">Zero 2 W</a> if you can’t decide which model to use.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="configure-your-raspberry-pi">Configure your Raspberry Pi</h2>
<div class="sectionbody">
<p>To begin, <a href="https://www.raspberrypi.com/documentation/computers/getting-started.html#installing-the-operating-system">follow the Getting Started documentation to set up your Raspberry Pi</a>. For your operating system, choose <strong>Raspberry Pi OS Lite (32-bit)</strong> to run headless (without a mouse and keyboard).</p>
<p>During the OS customisation stage, edit settings as follows:</p>
<div class="ulist">
<ul>
<li>Enter a <strong>hostname</strong> of your choice (we suggest <code>pi-hole</code> for this tutorial)</li>
<li>Enter a <strong>username</strong> and <strong>password</strong>; you’ll need these later to authenticate</li>
<li>Check the box next to <strong>Configure wireless LAN</strong> so your Pi can automatically connect to Wi-Fi</li>
<li>Enter your network <strong>SSID</strong> (name) and <strong>password</strong>; you can find these in your Wi-Fi settings or on a sticker on your router</li>
<li>Check the box next to <strong>Enable SSH</strong> so we can connect to the Pi without a mouse and keyboard</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="connect-via-ssh">Connect via SSH</h2>
<div class="sectionbody">
<p>Open a terminal on your computer. If you use a Windows computer, you may need to install a terminal; we suggest <a href="https://putty.org/">PuTTY</a>. Enter the following command to connect to your Raspberry Pi, replacing the <code>&lt;username&gt;</code> placeholder with your own username that you chose in Imager:</p>
<div class="listingblock">
<div class="content">
<pre class="highlight language-shell-session" tabindex="0"><code class="language-shell-session" data-lang="shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">ssh</span> <span class="token operator">&lt;</span>username<span class="token operator">&gt;</span>@pi-hole.local</span></span></code></pre>
</div>
</div>
<p>If <code>ssh</code> asks you if you’re sure you want to continue connecting, reply <code>yes</code>. Enter the password you chose during advanced configuration when prompted.</p>
<p>You’ll know you’ve connected successfully when you see the following prompt with your configured username and hostname:</p>
<div class="listingblock">
<div class="content">
<pre class="highlight language-shell-session" tabindex="0"><code class="language-shell-session" data-lang="shell-session"><span class="token output">&lt;username&gt;@&lt;hostname&gt;:~ $</span></code></pre>
</div>
</div>
<p>Now that you’ve connected to your Raspberry Pi, run two commands to make sure that all of your packages are up to date:</p>
<div class="listingblock">
<div class="content">
<pre class="highlight language-shell-session" tabindex="0"><code class="language-shell-session" data-lang="shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">sudo</span> <span class="token function">apt</span> update</span></span>
<span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">sudo</span> <span class="token function">apt</span> full-upgrade</span></span></code></pre>
</div>
</div>
<p>Once the package update commands finish running, reboot your Raspberry Pi to allow all changes to take effect:</p>
<div class="listingblock">
<div class="content">
<pre class="highlight language-shell-session" tabindex="0"><code class="language-shell-session" data-lang="shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">sudo</span> <span class="token function">reboot</span></span></span></code></pre>
</div>
</div>
<p>Running this command will disconnect you from the Raspberry Pi SSH session. Wait a few seconds for your Raspberry Pi to reboot, and enter the <code>ssh</code> connection command again to reconnect to your device.</p>
<div class="admonitionblock tip" role="note">
<h5 class="label">tip</h5>
<div class="inner">On most terminals, press the <strong>Up</strong> arrow key, then the <strong>Enter</strong> key to re-run the most recent command.</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="install-pi-hole">Install Pi-hole</h2>
<div class="sectionbody">
<p>Run the following single-line command to run the Pi-hole setup script:</p>
<div class="listingblock">
<div class="content">
<pre class="highlight language-shell-session" tabindex="0"><code class="language-shell-session" data-lang="shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">curl</span> -sSL https://install.pi-hole.net <span class="token operator">|</span> <span class="token function">bash</span></span></span></code></pre>
</div>
</div>
<p>The setup script is relatively self-explanatory, but follow these tips if you aren’t sure how to proceed:</p>
<div class="ulist">
<ul>
<li>When warned about needing a static IP address, click <strong>Continue</strong> to proceed; we’ll deal with this later</li>
<li>When prompted to select an interface, select <code>wlan0</code> to use your Raspberry Pi’s Wi-Fi connection</li>
<li>When prompted to choose an upstream DNS provider, choose <strong>OpenDNS</strong></li>
<li>Include <strong>StevenBlack’s Unified Hosts List</strong></li>
<li>Install the Admin Web Interface</li>
<li>Install <code>lighttpd</code> and the required PHP modules to run the Admin Web Interface</li>
<li>Enable query logging</li>
<li>When prompted to choose a privacy level, choose <strong>Anonymous mode</strong></li>
</ul>
</div>
<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone wp-image-18779" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2023-10-04-at-15.39.45-1024x630-1.png" alt="" width="692" height="426" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2023-10-04-at-15.39.45-1024x630-1.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2023-10-04-at-15.39.45-1024x630-1-400x246.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2023-10-04-at-15.39.45-1024x630-1-768x473.png 768w" sizes="(max-width: 692px) 100vw, 692px" /></figure>
</div>
<p>When you see &#8220;Installation complete!&#8221;, the setup is complete. This screen shows the IP address of your Pi-hole, a link to the admin interface, and your administrator password.</p>
<div class="ulist">
<ul>
<li>Save this password somewhere safe, like a password manager — you’ll need it to work with your Pi-hole in the future</li>
<li>Save the IP address — you’ll need it to configure a static IP address shortly</li>
</ul>
</div>
<p>Pi-hole only provides a single administrator account, so there’s no username. Press the <strong>Control</strong> key (<strong>Command</strong> on macOS) and click the link to the admin interface that uses an IP address. It’ll look something like <code>http://192.168.1.24/admin</code>. Don’t use the <code>pi.hole</code> domain link yet; until we configure the Pi-hole as our DNS provider, it won’t work. The link should open in your browser. You can also copy and paste the link into a browser if control + click doesn’t work in your terminal. Use the admin password from the setup script output to authenticate. You can now see your Pi-hole admin console! We recommend bookmarking this console for future maintenance.</p>
</div>
</div>
<div class="sect1">
<h2 id="configure-your-network-to-use-your-pi-hole">Configure your network to use your Pi-hole</h2>
<div class="sectionbody">
<div class="admonitionblock warning" role="note">
<h5 class="label">warning</h5>
<div class="inner">
<p>The tasks below require you to change global settings in your wireless network. You might break your internet connection (for a little while). Proceed with caution!</p>
</div>
</div>
<p>To complete these tasks, visit the admin interface for your router. You can usually access the admin interface through your router’s IP address. Here are a couple of common ways to find that interface:</p>
<div class="ulist">
<ul>
<li>Run the following command on your Raspberry Pi to output your router’s IP address:
<div class="listingblock">
<div class="content">
<pre class="highlight language-shell-session" tabindex="0"><code class="language-shell-session" data-lang="shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">nmcli -f IP4.GATEWAY device show wlan0</span></span></code></pre>
</div>
</div>
</li>
<li>Check for a sticker on your router — look for a value called &#8220;admin URL&#8221; or similar</li>
</ul>
</div>
<p>Once you’ve found the IP address, log in to your router’s admin interface by typing the address (sometimes with the suffix <code>/admin</code>) into your browser. Enter your username and password (if you don’t know these, you may be able to find them on a sticker on your router). Now that you’ve got your Pi-hole configured, you have three choices to use it to block ads. All of them involve getting Pi-hole between your network and the internet:</p>
<div class="ulist">
<ul>
<li>configure Pi-hole as the DNS server for your network</li>
<li>configure Pi-hole as the DHCP provider for your network</li>
<li>manually point devices at Pi-hole for DNS</li>
</ul>
</div>
<p>It’s easiest to use your Pi-hole as a DNS server. However, some routers don’t provide a setting to control the default DNS server. If you can’t set a DNS server, try configuring Pi-hole as your DHCP provider. And if you can’t do that either, you can always manually point devices at the Pi-hole for DNS — it’s not as good as full-network ad blocking, but it’s a lot better than nothing.</p>
</div>
</div>
<div class="sect1">
<h2 id="configure-pi-hole-as-your-networks-dns-server">Configure Pi-hole as your network’s DNS server</h2>
<div class="sectionbody">
<p>This is the most common way of configuring a Pi-hole. For this method, you’ll first assign your Raspberry Pi a static IP address from your router’s interface, then point your router’s DNS server settings to the Pi-hole’s static IP address. With this setup, your router controls IP reservations across your network, but devices on the network send DNS queries to your Pi-hole instead of to a DNS server on the internet.</p>
<div class="sect2">
<h3 id="assign-your-raspberry-pi-a-static-ip-address">Assign your Raspberry Pi a static IP address</h3>
<p>IP addresses are unique numeric codes that allow you to directly interact with devices on your network. For instance, many routers automatically assign themselves the first address in the IP block they are using, such as <code>192.168.1.1</code>. Most networks use Dynamic Host Configuration Protocol (DHCP) to assign IP addresses to devices automatically. These IP addresses are known as <strong>dynamic</strong> IP addresses, because they can change at any time.</p>
<p>To run a Pi-hole on your network, we recommend assigning your Pi-hole a <strong>static</strong> IP address. A static IP address never changes. This allows devices on your network always to find the Pi-hole at the same address.</p>
<p>To start, run the following command on your Raspberry Pi:</p>
<div class="listingblock">
<div class="content">
<pre class="highlight language-shell-session" tabindex="0"><code class="language-shell-session" data-lang="shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">hostname</span> -I</span></span></code></pre>
</div>
</div>
<p>You should see output similar to the following:</p>
<div class="listingblock">
<div class="content">
<pre class="highlight language-shell-session" tabindex="0"><code class="language-shell-session" data-lang="shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token number">192.168</span>.1.24</span></span></code></pre>
</div>
</div>
<p>This value is the current (dynamic) IP address of your Raspberry Pi on the network.</p>
<p>To assign a static IP address, you also need the MAC address of your Raspberry Pi. A device’s MAC address is a hardware identifier that your router uses to uniquely identify it. Run the following command to find the MAC address of your Raspberry Pi:</p>
<div class="listingblock">
<div class="content">
<pre class="highlight language-shell-session" tabindex="0"><code class="language-shell-session" data-lang="shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">nmcli -f GENERAL.HWADDR device show wlan0</span></span></code></pre>
</div>
</div>
<p>You should see output similar to the following:</p>
<div class="listingblock">
<div class="content">
<pre class="highlight language-shell-session" tabindex="0"><code class="language-shell-session" data-lang="shell-session"><span class="token output">GENERAL.HWADDR:                         A8:42:EA:58:E0:1C</span></code></pre>
</div>
</div>
<p>The value on the right is the MAC address of your Raspberry Pi. Now that we know your Raspberry Pi’s MAC address and IP address, we can configure your router so it always associates the Raspberry Pi’s MAC address with its current IP address. Effectively, we’re turning the current dynamic address into a static one using the MAC address. In your router’s admin interface, configure a static IP address for your Raspberry Pi. There are several ways to accomplish this, depending on your router:</p>
<div class="ulist">
<ul>
<li>You might be able to find this setting in the &#8220;Advanced&#8221; section of the router admin interface. Look for a list called &#8220;DHCP Reservations&#8221;, and enter your Raspberry Pi’s IP address and MAC address.</li>
<li>Look for a list of connected devices and find your Raspberry Pi’s IP address or MAC address. Select the option to &#8220;Always use this IP address&#8221; to make the IP address reservation static.</li>
<li>Check the documentation for your router model for specific instructions.</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="set-pi-hole-as-your-networks-default-dns-server">Set Pi-hole as your network’s default DNS server</h3>
<p>Once you’ve assigned your Raspberry Pi a static IP address, you can configure individual devices to use Pi-hole as a DNS server in their network settings. But this process is tedious, and some devices don’t provide an easily accessible DNS server setting. However, there is an easier way: most routers automatically suggest a DNS server for devices connected to your network. All you have to do is change the suggested server in your router’s settings, and your entire network should start using your Pi-hole for DNS.</p>
<p>Look for a setting called DNS in your router’s admin interface. You may be able to find the setting in a section called &#8220;Internet&#8221;, &#8220;DHCP&#8221;, &#8220;Internet Connection&#8221;, or &#8220;DDNS&#8221;.</p>
<p>Enter your Pi-hole’s IP address in the DNS (or similarly named) field.</p>
<p>If your router provides multiple custom DNS fields, add your Pi-hole address in each field.</p>
<div class="admonitionblock important" role="note">
<h5 class="label">important</h5>
<div class="inner">
<p>Whatever you do, don’t add any separate DNS entries after the Pi-hole entries — this can break Pi-hole’s ad blocking functionality. When your Pi-hole blocks a domain, it returns a non-routable address such as <code>0.0.0.0</code>, and some devices will query the secondary DNS server when the first server returns such a non-routable address. If your secondary DNS server isn’t a Pi-hole, every single request blocked by Pi-hole will succeed on the secondary server, and ads will load as if you weren’t running an ad blocker at all.</p>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="configure-pi-hole-as-your-networks-dhcp-provider">Configure Pi-hole as your network’s DHCP provider</h2>
<div class="sectionbody">
<p>If your router doesn’t support configuration for static IP addresses or DNS servers, you may still be able to use your Pi-hole automatically across your network. First, check whether you can change the network DHCP server in your router settings. If you can, you can use your Pi-hole <em>both</em> as a DNS server <em>and</em> as the DHCP server that handles IP address reservations across your network.</p>
<p>First, navigate to the Pi-hole admin console. If you type your Raspberry Pi’s IP address into your browser, it should redirect you there.</p>
<p>In the left side menu, select the &#8220;Settings&#8221; page.</p>
<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" class="alignnone wp-image-18780" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2022-06-15-at-16.39.42.png" alt="" width="970" height="606" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2022-06-15-at-16.39.42.png 2880w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2022-06-15-at-16.39.42-400x250.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2022-06-15-at-16.39.42-1024x640.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2022-06-15-at-16.39.42-768x480.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2022-06-15-at-16.39.42-1536x960.png 1536w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2022-06-15-at-16.39.42-2048x1280.png 2048w" sizes="(max-width: 970px) 100vw, 970px" /></figure>
</div>
<p>In the DHCP tab, in the &#8220;DHCP Settings&#8221; block, check the &#8220;DHCP server enabled&#8221; box.</p>
<p>Pi-hole should pre-populate the IP address range with the IP block that your router currently uses, and the router IP address with the router’s current IP address. You can leave these values as they are. Click the <strong>Save</strong> button in the bottom left to start hosting a DHCP server from Pi-hole.</p>
<p>Finally, visit your router’s admin interface, and set your Pi-hole’s IP address as the DHCP provider for your network. When your Pi-hole is functioning as the DHCP provider, your router delegates all IP-related tasks to it. This includes DNS server configuration, so your Pi-hole can suggest <em>itself</em> as the default DNS server for all devices on your network. Check the documentation for your router model for specific instructions.</p>
</div>
</div>
<div class="sect1">
<h2 id="manually-point-devices-at-pi-hole-for-dns">Manually point devices at Pi-hole for DNS</h2>
<div class="sectionbody">
<p>On many devices, you can configure DNS settings in Wi-Fi preferences. Look in the &#8220;Advanced&#8221; section of your Wi-Fi or wired connection preferences for a DNS server setting. Put your Raspberry Pi’s IP address in this field. Your device should immediately start issuing DNS queries to the Pi-hole.</p>
<p>Unless you’ve configured a static IP address for your Raspberry Pi, this IP address can change at any time without warning. Follow the instructions under &#8220;Assign your Raspberry Pi a static IP address&#8221; in the DNS section above to configure a static IP address — this will prevent your device from losing its connection to the Pi-hole (and most of the internet!) when your Pi-hole’s dynamic IP address changes.</p>
</div>
</div>
<div class="sect1">
<h2 id="is-my-pi-hole-working">Is my Pi-hole working?</h2>
<div class="sectionbody">
<p>With a Pi-hole acting as the DNS server for your network, many pages will load without ads at all. Most privacy-invading trackers won’t work either. You’ll still see cookie and app install banners, because those can’t be blocked at the DNS level. To check to see if your Pi-hole is working correctly:</p>
<div class="ulist">
<ul>
<li>Check out <a href="https://adblock-tester.com/">Adblock Tester</a>. Without Pi-hole, many browsers score near 0; with Pi-hole, you should see a score at or near 100.</li>
<li>Try visiting <a href="http://pi.hole/admin/login.php">http://pi.hole/admin/login.php</a>. Pi-hole always routes the <code>pi.hole</code> domain to your Raspberry Pi when you use Pi-hole as your DNS server.</li>
<li>Visit any site where you normally see ads and visually confirm that ads are no longer there.</li>
<li>Check the proportion of &#8220;queries blocked&#8221; on the Pi-hole dashboard. Many networks see between 10% and 50% of queries blocked!</li>
<li>Check the DNS server used by other computers in your network. You should be able to find this information in &#8220;Details&#8221; or &#8220;Advanced&#8221; Wi-Fi settings. If you see your Raspberry Pi’s IP address, your configuration worked!</li>
</ul>
</div>
<p>If you’ve completed all of the setup steps but you’re still seeing ads (or, worse, DNS queries don’t resolve), try the trusty solution of turning your router off and on again. This should disconnect all devices from your network and renew all DHCP leases, putting your new settings into effect for every device. Congratulations! Your home network is now protected from ads. Put a slice of bread in your smart toaster, watch a movie on your smart TV, and flush your smart toilet in the comfort of privacy and security. <a href="https://www.raspberrypi.com/tutorials/running-pi-hole-on-a-raspberry-pi/" target="_blank" rel="noopener">source</a></p>
</div>
</div>
<p>&nbsp;</p>
<h2 class="">1. Install a supported operating system</h2>
<p class="large_text">You can run Pi-hole in a container, or deploy it directly to a supported operating system via our automated installer.</p>
<div id="supported-os" class="content-right-image-section content-image-right content-relative dark-text-section" data-label="Supported OS" data-id="content-image-right" data-category="content" data-ovid="ovid-content-4-2908" data-darkreader-inline-bgimage="" data-darkreader-inline-bgcolor="">
<div class="gridContainer">
<div class="content-right-image-gridcol">
<div class="content-right-image-textcol dynamic-color" data-type="column">
<p class=""><a class="button color1" href="https://github.com/pi-hole/docker-pi-hole/#running-pi-hole-docker" target="_blank" rel="noopener noreferrer" data-icon="">Docker install</a></p>
<p class=""><a class="button color1" href="https://docs.pi-hole.net/main/prerequisites/#supported-operating-systems" target="_blank" rel="noopener noreferrer" data-icon="">Supported operating systems</a></p>
</div>
<div class="content-right-image-imgcol" data-type="column"><picture class="" data-lazy-loaded="1"></picture><img loading="lazy" decoding="async" class="alignnone wp-image-18781" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/supported-os-min.jpg" alt="" width="320" height="213" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/supported-os-min.jpg 600w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/supported-os-min-400x267.jpg 400w" sizes="(max-width: 320px) 100vw, 320px" /></div>
</div>
</div>
</div>
<div id="how-to-install" class="content-right-image-section content-image-right-undefined" data-label="How to install" data-id="content-image-right-undefined" data-category="content" data-ovid="ovid-how-to-install-2-2513" data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="">
<div class="gridContainer">
<div class="content-right-image-gridcol">
<div class="content-right-image-textcol dynamic-color" data-type="column">
<h2 class="">2. Install Pi-hole</h2>
<p class="large_text">Our intelligent, automated installer asks you a few questions and then sets everything up for you.  Once complete, move onto step 3.</p>
<p class=""><a class="button color1" href="https://github.com/pi-hole/pi-hole/#one-step-automated-install" target="_blank" rel="noopener noreferrer" data-icon="">Install Pi-hole</a></p>
</div>
</div>
</div>
</div>
<div id="configure" class="content-right-image-section content-image-right-2" data-label="Configure" data-id="content-image-right-2" data-category="content" data-darkreader-inline-bgcolor="">
<div class="gridContainer">
<div class="content-right-image-gridcol">
<div class="content-right-image-textcol dynamic-color" data-type="column">
<h2 class="">3. Use Pi-hole as your DNS server</h2>
<p class="large_text">Configure your router’s DHCP options to force clients to use Pi-hole as their DNS server, or manually configure each device​ to use the Pi-hole as their DNS server.</p>
<p class=""><a class="button color1" href="https://docs.pi-hole.net/main/post-install" target="_blank" rel="noopener noreferrer" data-icon="">Use Pi-hole as your DNS server</a></p>
</div>
<div class="content-right-image-imgcol" data-type="column"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18782" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/dns-router.png" alt="" width="571" height="227" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/dns-router.png 571w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/dns-router-400x159.png 400w" sizes="(max-width: 571px) 100vw, 571px" /></div>
</div>
</div>
</div>
<div id="done" class="content-right-image-section content-image-right-3" data-label="Done" data-id="content-image-right-3" data-category="content" data-ovid="ovid-how-to-install-4-1818" data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="">
<div class="gridContainer">
<div class="content-right-image-gridcol">
<div class="content-right-image-textcol dynamic-color" data-type="column">
<h2 class="">4. Block ads everywhere, even on the go</h2>
<p class="large_text">By pairing your Pi-hole with a VPN, you can have ad blocking on your cellular devices, helping with limited bandwidth data plans.</p>
<p class=""><a class="button color1" href="https://docs.pi-hole.net/guides/vpn/overview" target="_blank" rel="noopener noreferrer" data-icon="">Pi-hole + VPN</a></p>
</div>
<div class="content-right-image-imgcol" data-type="column"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18783" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/vpn-300x300-1.jpg" alt="" width="300" height="300" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/vpn-300x300-1.jpg 300w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/vpn-300x300-1-150x150.jpg 150w" sizes="(max-width: 300px) 100vw, 300px" /></div>
</div>
</div>
</div>
<div id="why-use-pihole" class="features-coloured-icon-boxes-section stripped-coloured-icon-boxes content-relative" data-label="Why Use Pihole" data-id="stripped-coloured-icon-boxes" data-category="overlapable" data-overlap="true" data-ovid="ovid-overlapable-2-184" data-darkreader-inline-bgimage="" data-darkreader-inline-bgcolor="">
<div class="gridContainer">
<div class="features-coloured-icon-boxes-innerrow flexbox-list dark-text" data-type="row">
<div class="features-coloured-icon-boxes-featurecol cp3cols color6">
<div class="features-coloured-icon-boxes-iconcontainer" data-content-item-container="true"></div>
<h4 class="">Network-wide protection</h4>
<p class="">Instead of browser plugins or other software on each computer, <b>install Pi-hole in one place</b> and your entire network is protected.</p>
</div>
<div class="features-coloured-icon-boxes-featurecol cp3cols">
<div class="features-coloured-icon-boxes-iconcontainer" data-content-item-container="true"></div>
<h4 class="">Block in-app advertisements</h4>
<p class="">Network-level blocking allows you to <b>block ads in non-traditional places</b> such as mobile apps and smart TVs, regardless of hardware or OS.</p>
</div>
<div class="features-coloured-icon-boxes-featurecol cp3cols">
<div class="features-coloured-icon-boxes-iconcontainer" data-content-item-container="true"></div>
<h4 class="">Improve network performance</h4>
<p class="">Since <b>advertisements are blocked <i>before</i> they are downloaded</b>, network performance is improved and will feel faster.</p>
</div>
<div class="features-coloured-icon-boxes-featurecol cp3cols">
<div class="features-coloured-icon-boxes-iconcontainer" data-content-item-container="true"></div>
<h4 class="">Monitor statistics</h4>
<p class="">Our Web interface offers control of your Pi-hole and a central place to view statistics.  We also include an API for extending these stats.</p>
</div>
</div>
</div>
</div>
<div id="team-1" class="team-small-section" data-label="Team" data-id="team-small-section" data-category="team" data-ovid="ovid-team-1-1463">
<div class="gridContainer dynamic-color">
<div class="team-small-textcol" data-type="column">
<div id="web-interface" class="about-image-section-pro" data-label="Web interface" data-id="about-image-section-pro" data-category="about" data-darkreader-inline-bgcolor="">
<div class="gridContainer">
<div class="row about-image-gridcol-pro">
<div class="about-image-textcol-pro" data-type="column">
<h2 class="">Web Interface</h2>
<p class="">In addition to blocking advertisements, Pi-hole has an informative Web interface that shows stats on all the domains being queried on your network.</p>
</div>
<div class="" data-type="column"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18784" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/Dashboard.png" alt="" width="1851" height="790" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/Dashboard.png 1851w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Dashboard-400x171.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Dashboard-1024x437.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Dashboard-768x328.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Dashboard-1536x656.png 1536w" sizes="(max-width: 1851px) 100vw, 1851px" /></div>
</div>
</div>
</div>
<div id="dhcp-server" class="about-image-section-pro about-image-section-pro-5" data-label="DHCP Server" data-id="about-image-section-pro-5" data-category="about" data-darkreader-inline-bgcolor="">
<div class="gridContainer">
<div class="row about-image-gridcol-pro">
<div class="about-image-textcol-pro" data-type="column">
<h2 class="">Built-in DHCP Server</h2>
<p class="">Pi-hole works fine with an existing DHCP server, but you can use Pi-hole’s to keep your network management in one place.</p>
</div>
<div class="" data-type="column"><picture class=""></picture><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18785" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-19-17.39.58.png" alt="" width="1192" height="934" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-19-17.39.58.png 1192w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-19-17.39.58-400x313.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-19-17.39.58-1024x802.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-19-17.39.58-768x602.png 768w" sizes="(max-width: 1192px) 100vw, 1192px" /></div>
</div>
</div>
</div>
<div id="whitelist-and-blacklist" class="about-image-section-pro about-image-section-pro-undefined" data-label="Whitelist and Blacklist" data-id="about-image-section-pro-undefined" data-category="about" data-darkreader-inline-bgcolor="">
<div class="gridContainer">
<div class="row about-image-gridcol-pro">
<div class="about-image-textcol-pro" data-type="column">
<h2 class="">Manage White And Black Lists</h2>
<p class="">Fine-tune your experience by blacklisting or whitelisting domains.  Extend this capability with <a class="" href="https://docs.pi-hole.net/regex/overview">powerful regex statements</a>.</p>
</div>
<div class="" data-type="column"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18787" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-22-11.17.24.png" alt="" width="648" height="609" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-22-11.17.24.png 648w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-22-11.17.24-400x376.png 400w" sizes="(max-width: 648px) 100vw, 648px" /></div>
</div>
</div>
</div>
<div id="query-log" class="about-image-section-pro about-image-section-pro-1" data-label="Query Log" data-id="about-image-section-pro-1" data-category="about" data-darkreader-inline-bgcolor="">
<div class="gridContainer">
<div class="row about-image-gridcol-pro">
<div class="about-image-textcol-pro" data-type="column">
<h2 class="">Query Log</h2>
<p class="">See all the domains being queried on your network, where they originated, and more.</p>
</div>
<div class="" data-type="column"><picture class=""></picture><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18788" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-19-17.50.40.png" alt="" width="1249" height="896" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-19-17.50.40.png 1249w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-19-17.50.40-400x287.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-19-17.50.40-1024x735.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-19-17.50.40-768x551.png 768w" sizes="(max-width: 1249px) 100vw, 1249px" /></div>
</div>
</div>
</div>
<div id="statistics" class="about-image-section-pro about-image-section-pro-4" data-label="Statistics" data-id="about-image-section-pro-4" data-category="about" data-ovid="ovid-about-us-4-1823" data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="">
<div class="gridContainer">
<div class="row about-image-gridcol-pro">
<div class="about-image-textcol-pro" data-type="column">
<h2 class="">Long Term Statistics</h2>
<p class="">Queries are stored in a database and can be queried at any time.  Learn about what’s happening on your network over time.</p>
</div>
<div class="" data-type="column"><picture class="about-image-img-pro aligncenter"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18789" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/long-term-stats1-e1597224606922.png" alt="" width="929" height="469" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/long-term-stats1-e1597224606922.png 929w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/long-term-stats1-e1597224606922-400x202.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/long-term-stats1-e1597224606922-768x388.png 768w" sizes="(max-width: 929px) 100vw, 929px" /></picture></div>
</div>
</div>
</div>
<div id="audit-log" class="about-image-section-pro about-image-section-pro-3" data-label="Audit Log" data-id="about-image-section-pro-3" data-category="about" data-darkreader-inline-bgcolor="">
<div class="gridContainer">
<div class="row about-image-gridcol-pro">
<div class="about-image-textcol-pro" data-type="column">
<h2 class="">Audit Log</h2>
<p class="">Keep track of the most queried domains and add them to a white or blacklist from a central page.</p>
</div>
<div class="" data-type="column"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18790" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/audit-log1.png" alt="" width="2032" height="1510" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/audit-log1.png 2032w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/audit-log1-400x297.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/audit-log1-1024x761.png 1024w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/audit-log1-768x571.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/audit-log1-1536x1141.png 1536w" sizes="(max-width: 2032px) 100vw, 2032px" /></div>
</div>
</div>
</div>
<div id="privacy-modes" class="about-image-section-pro about-image-section-pro-6" data-label="Privacy Modes" data-id="about-image-section-pro-6" data-category="about" data-darkreader-inline-bgcolor="">
<div class="gridContainer">
<div class="row about-image-gridcol-pro">
<div class="about-image-textcol-pro" data-type="column">
<h2 class="">Privacy Modes</h2>
<p class="">Choose from four different privacy modes that works for your environment.</p>
</div>
<div class="" data-type="column"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18791" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-20-12.30.34.png" alt="" width="993" height="495" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-20-12.30.34.png 993w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-20-12.30.34-400x199.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-20-12.30.34-768x383.png 768w" sizes="(max-width: 993px) 100vw, 993px" /></div>
</div>
</div>
</div>
<div id="other-settings" class="about-image-section-pro about-image-section-pro-7" data-label="Other Settings" data-id="about-image-section-pro-7" data-category="about" data-darkreader-inline-bgcolor="">
<div class="gridContainer">
<div class="row about-image-gridcol-pro">
<div class="about-image-textcol-pro" data-type="column">
<h2 class="">Other Settings</h2>
<p class="">Control and configure other settings from the Web interface.</p>
</div>
<div class="" data-type="column"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18792" src="https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-20-12.26.29.png" alt="" width="1001" height="849" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-20-12.26.29.png 1001w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-20-12.26.29-400x339.png 400w, https://goodshepherdmedia.net/wp-content/uploads/2024/10/Screenshot-2018-12-20-12.26.29-768x651.png 768w" sizes="(max-width: 1001px) 100vw, 1001px" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><a href="https://pi-hole.net/" target="_blank" rel="noopener">source</a></p>
<p>&nbsp;</p>
<p><iframe title="Block Ads using a Raspberry Pi with Pi-Hole" width="640" height="360" src="https://www.youtube.com/embed/_rZhCLh3WyY?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>&nbsp;</p>
<p><iframe title="Quick and Easy Pi-hole Setup" width="640" height="360" src="https://www.youtube.com/embed/4X6KYN1cQ1Y?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>&nbsp;</p>
<p><iframe title="How to Set up a Network wide Ad-blocker with Pi hole" width="640" height="360" src="https://www.youtube.com/embed/zpJoNNVYM10?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>&nbsp;</p>
<p><iframe title="how to build own network-wide ad blocker using pi-hole &amp; raspberry pi [Hindi]" width="640" height="360" src="https://www.youtube.com/embed/mmlVtYIv38U?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><iframe title="Raspberry Pi / Pi-hole / Diet-Pi / Network wide Ad Blocker !!!!" width="640" height="360" src="https://www.youtube.com/embed/RO2_eZlVrj4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</div>
</div>
</div>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Using Linux After Windows Is Easier If You Know These 6 Key Differences</title>
		<link>https://goodshepherdmedia.net/using-linux-after-windows-is-easier-if-you-know-these-6-key-differences/</link>
		
		<dc:creator><![CDATA[The Truth News]]></dc:creator>
		<pubDate>Tue, 13 Aug 2024 16:23:30 +0000</pubDate>
				<category><![CDATA[Home & Garden]]></category>
		<category><![CDATA[Home Computing]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Top Stories]]></category>
		<category><![CDATA[Zee Truthful News]]></category>
		<category><![CDATA[🔐Cybersecurity]]></category>
		<category><![CDATA[Linux After Windows]]></category>
		<category><![CDATA[Linux vs Windows Differences]]></category>
		<guid isPermaLink="false">https://goodshepherdmedia.net/?p=18490</guid>

					<description><![CDATA[Using Linux After Windows Is Easier If You Know These 6 Key Differences The differences between the Linux and Windows command lines can make the transition to Linux difficult for new users. For example, Linux is case-insensitive, it more or less ignores file extensions, and it uses a different character than Windows uses as its [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>Using Linux After Windows Is Easier If You Know These 6 Key Differences</h1>
<div class="emaki-custom key-points">
<div class="custom_block-content key-points">
<div class="article-list-slot">
<ul>
<li data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">The differences between the Linux and Windows command lines can make the transition to Linux difficult for new users.</li>
<li data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">For example, Linux is case-insensitive, it more or less ignores file extensions, and it uses a different character than Windows uses as its directory path separator.</li>
<li data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">The best way to become comfortable with the Linux command line is by learning the commands.</li>
</ul>
</div>
</div>
</div>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">Starting out with any new operating system can be frustrating, because the simplest operations don’t work in the way you’re used to. Learning these differences between Windows and Linux can cure headaches.</p>
<div class="intra-article-module" data-t="{&quot;n&quot;:&quot;intraArticle&quot;,&quot;t&quot;:13}">
<div class="articlePageIntraArticleFullWidth ad-slot-placeholder left-image-intra-ad" data-ad-index="0">
<div class="intra-article-ad-full left-image-intra-ad">
<div class="left-image-intra-ad">
<div class="content"></div>
</div>
</div>
</div>
</div>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">That fish out of water feeling is awful, when the most basic operations throw you for a loop. It&#8217;s natural to worry that everything else is going to be a struggle too. Getting nowhere fast leads to people giving up entirely. When dabbling in the shallows is so discouraging, the idea of taking the plunge becomes unappealing.</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">As is often the case, it’s the little things that matter most. So here’s our list of little things that have a big impact on your first few days as a Windows user exploring the Linux command line.</p>
<h2 id="case-sensitivity" class="article-sub-heading">Case Sensitivity</h2>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">On Linux, file and directory names are case-sensitive. On Windows they’re not.</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">Linux lets you have files in the same directory that are called the same thing, as long as they’re written differently.</p>
<p class="continue-read-break" data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">Let’s create a few files to illustrate this. If you read these filenames out loud they all sound the same. But, because they use <a href="https://www.howtogeek.com/815219/how-to-work-faster-in-linux-terminal/?utm_source=syndication" target="_blank" rel="noopener" data-t="{&quot;n&quot;:&quot;destination&quot;,&quot;t&quot;:13,&quot;b&quot;:1,&quot;c.t&quot;:7}">a different mix of characters</a>, on Linux they&#8217;re actually different names.</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">touchunique-file.txt</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">touchUnique-file.txt</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">touchUnique-File.txt</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">touchUNIQUE-file.txt</p>
<p class="" data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">ls</p>
<div class="body-img landscape ">
<div class="responsive-img image-expandable img-article-item">
<div class="article-image-slot image-slot-placeholder" data-doc-id="cms/api/amp/image/AA1oe5h0">
<div class="article-image-slot">
<div class="article-image-container" data-t="{&quot;n&quot;:&quot;OpenModal&quot;,&quot;t&quot;:13,&quot;b&quot;:8,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}" data-test-id="AA1oe5h0">
<div class="article-image-height-wrapper expandable article-image-height-wrapper-new" tabindex="0" data-customhandled="true" data-t="{&quot;n&quot;:&quot;destination&quot;,&quot;b&quot;:1,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}">
<div></div>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18491" src="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1oe5h0.png" alt="" width="768" height="311" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1oe5h0.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1oe5h0-400x162.png 400w" sizes="(max-width: 768px) 100vw, 768px" /></p>
</div>
<div class="image-caption-container image-caption-container-ux-impr articlewc-image-caption-container "><span class="image-caption">Files on Linux with names that differ by case only</span></div>
</div>
</div>
</div>
</div>
</div>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}"><a href="https://www.howtogeek.com/74667/how-to-use-touch-to-create-empty-files-and-modify-timestamps/?utm_source=syndication" target="_blank" rel="noopener" data-t="{&quot;n&quot;:&quot;destination&quot;,&quot;t&quot;:13,&quot;b&quot;:1,&quot;c.t&quot;:7}">The touch command</a> creates the files and ls confirms they happily reside in the same directory. On Windows, file.txt and FILE.TXT refer to the same file.</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">The case sensitivity of Linux applies to directory names, too.</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">mkdir sub1</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">mkdir Sub1</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">mkdir SUB1</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">ls -l</p>
<div class="body-img landscape ">
<div class="responsive-img image-expandable img-article-item">
<div class="article-image-slot image-slot-placeholder" data-doc-id="cms/api/amp/image/AA1odRCX">
<div class="article-image-slot">
<div class="article-image-container" data-t="{&quot;n&quot;:&quot;OpenModal&quot;,&quot;t&quot;:13,&quot;b&quot;:8,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}" data-test-id="AA1odRCX">
<div class="article-image-height-wrapper expandable article-image-height-wrapper-new" tabindex="0" data-customhandled="true" data-t="{&quot;n&quot;:&quot;destination&quot;,&quot;b&quot;:1,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}">
<div></div>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18492" src="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1odRCX.png" alt="" width="768" height="386" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1odRCX.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1odRCX-400x201.png 400w" sizes="(max-width: 768px) 100vw, 768px" /></p>
</div>
<div class="image-caption-container image-caption-container-ux-impr articlewc-image-caption-container "><span class="image-caption">Directories on Linux with names that differ by case only</span></div>
</div>
</div>
</div>
</div>
</div>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">All of these subdirectories exist within the same parent directory.</p>
<h2 id="paths-and-directories-separators" class="article-sub-heading">Paths and Directories Separators</h2>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">Windows uses a backslash \ as the directory path separator, but Linux uses /, the forward slash. You’re going to need to concentrate to overcome the muscle memory of typing \.</p>
<p>pwd</p>
<div class="body-img landscape ">
<div class="responsive-img image-expandable img-article-item">
<div class="article-image-slot image-slot-placeholder" data-doc-id="cms/api/amp/image/AA1oe5h3">
<div class="article-image-slot">
<div class="article-image-container" data-t="{&quot;n&quot;:&quot;OpenModal&quot;,&quot;t&quot;:13,&quot;b&quot;:8,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}" data-test-id="AA1oe5h3">
<div class="article-image-height-wrapper expandable article-image-height-wrapper-new" tabindex="0" data-customhandled="true" data-t="{&quot;n&quot;:&quot;destination&quot;,&quot;b&quot;:1,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}">
<div></div>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18493" src="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1oe5h3.png" alt="" width="768" height="183" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1oe5h3.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1oe5h3-400x95.png 400w" sizes="(max-width: 768px) 100vw, 768px" /></p>
</div>
<div class="image-caption-container image-caption-container-ux-impr articlewc-image-caption-container "><span class="image-caption">A directory path displayed in a Linux terminal window.</span></div>
</div>
</div>
</div>
</div>
</div>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">\ dates back to the release of MS-DOS in 1981, but / was born in 1971 with the first version of Unix. If MS-DOS had used / as well, this issue wouldn’t exist.</p>
<h2 id="file-extensions" class="article-sub-heading">File Extensions</h2>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">On Windows, file extensions tell the operating system which application to launch when you double-click a file. On Linux, the operating system determines the file type by examining its header bytes.</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">You can do this yourself using the file command.</p>
<p>file mystery-file</p>
<div class="body-img landscape ">
<div class="responsive-img image-expandable img-article-item">
<div class="article-image-slot image-slot-placeholder" data-doc-id="cms/api/amp/image/AA1oe5h8">
<div class="article-image-slot">
<div class="article-image-container" data-t="{&quot;n&quot;:&quot;OpenModal&quot;,&quot;t&quot;:13,&quot;b&quot;:8,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}" data-test-id="AA1oe5h8">
<div class="article-image-height-wrapper expandable article-image-height-wrapper-new" tabindex="0" data-customhandled="true" data-t="{&quot;n&quot;:&quot;destination&quot;,&quot;b&quot;:1,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}">
<div></div>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18494" src="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1oe5h8.png" alt="" width="768" height="183" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1oe5h8.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1oe5h8-400x95.png 400w" sizes="(max-width: 768px) 100vw, 768px" /></p>
</div>
<div class="image-caption-container image-caption-container-ux-impr articlewc-image-caption-container "><span class="image-caption">Using the Linux file command to identify a file type.</span></div>
</div>
</div>
</div>
</div>
</div>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">File extensions on Linux tell you, the user, what type of file something is. Linux already knows.</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">Nor do you need to use a specific extension on binary executable files. There’s no Linux equivalent to the COM and EXE extensions of the Windows world. A Linux executable can have any extension, or no extension.</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">do-some-work</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">and-you.too</p>
<div class="body-img landscape ">
<div class="responsive-img image-expandable img-article-item">
<div class="article-image-slot image-slot-placeholder" data-doc-id="cms/api/amp/image/AA1oe31V">
<div class="article-image-slot">
<div class="article-image-container" data-t="{&quot;n&quot;:&quot;OpenModal&quot;,&quot;t&quot;:13,&quot;b&quot;:8,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}" data-test-id="AA1oe31V">
<div class="article-image-height-wrapper expandable article-image-height-wrapper-new" tabindex="0" data-customhandled="true" data-t="{&quot;n&quot;:&quot;destination&quot;,&quot;b&quot;:1,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}">
<div></div>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18495" src="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1oe31V.png" alt="" width="768" height="219" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1oe31V.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1oe31V-400x114.png 400w" sizes="(max-width: 768px) 100vw, 768px" /></p>
</div>
<div class="image-caption-container image-caption-container-ux-impr articlewc-image-caption-container "><span class="image-caption">Running commands with and without extensions in a Linux terminal window.</span></div>
</div>
</div>
</div>
</div>
</div>
<h2 id="hidden-files-and-directories" class="article-sub-heading">Hidden Files and Directories</h2>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">On Linux, if a file or directory has a period ‘.’ as the first character of its name, it’ll be hidden. To hide a file on Windows, you right-click the file, click Properties, click the Hidden checkbox so that it is selected, then click OK.</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">Adding the -a (all) option to the ls command lists <a href="https://www.howtogeek.com/448446/how-to-use-the-ls-command-on-linux/?utm_source=syndication" target="_blank" rel="noopener" data-t="{&quot;n&quot;:&quot;destination&quot;,&quot;t&quot;:13,&quot;b&quot;:1,&quot;c.t&quot;:7}">includes hidden files and directories</a> in the listing.</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">touch new-file.txt</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">touch.new-hidden-file.txt</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">ls</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">ls -a</p>
<div class="body-img landscape ">
<div class="responsive-img image-expandable img-article-item">
<div class="article-image-slot image-slot-placeholder" data-doc-id="cms/api/amp/image/AA1odYwJ">
<div class="article-image-slot">
<div class="article-image-container" data-t="{&quot;n&quot;:&quot;OpenModal&quot;,&quot;t&quot;:13,&quot;b&quot;:8,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}" data-test-id="AA1odYwJ">
<div class="article-image-height-wrapper expandable article-image-height-wrapper-new" tabindex="0" data-customhandled="true" data-t="{&quot;n&quot;:&quot;destination&quot;,&quot;b&quot;:1,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}">
<div></div>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18496" src="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1odYwJ.png" alt="" width="768" height="256" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1odYwJ.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1odYwJ-400x133.png 400w" sizes="(max-width: 768px) 100vw, 768px" /></p>
</div>
<div class="image-caption-container image-caption-container-ux-impr articlewc-image-caption-container "><span class="image-caption">Using the Linux touch command to create a regular and a hidden file in a terminasl window.</span></div>
</div>
</div>
</div>
</div>
</div>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">Most file browsers, such as GNOME’s Files, support toggling back and forth between showing and hiding your hidden files, by hitting Ctrl+H. In the Windows 11 file explorer, from the toolbar select View &gt; Show &gt; Hidden Items to do the same thing.</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">In GNOME Files, without showing hidden files, we see a single file.</p>
<div class="body-img landscape ">
<div class="responsive-img image-expandable img-article-item">
<div class="article-image-slot image-slot-placeholder" data-doc-id="cms/api/amp/image/AA1oe0LO">
<div class="article-image-slot">
<div class="article-image-container" data-t="{&quot;n&quot;:&quot;OpenModal&quot;,&quot;t&quot;:13,&quot;b&quot;:8,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}" data-test-id="AA1oe0LO">
<div class="article-image-height-wrapper expandable article-image-height-wrapper-new" tabindex="0" data-customhandled="true" data-t="{&quot;n&quot;:&quot;destination&quot;,&quot;b&quot;:1,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}">
<div></div>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18497" src="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1oe0LO.png" alt="" width="768" height="228" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1oe0LO.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1oe0LO-400x119.png 400w" sizes="(max-width: 768px) 100vw, 768px" /></p>
</div>
<div class="image-caption-container image-caption-container-ux-impr articlewc-image-caption-container "><span class="image-caption">One file visible in GNOME Files, with a hidden file present but not displayed.</span></div>
</div>
</div>
</div>
</div>
</div>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">Hitting Ctrl+H reveals the hidden file.</p>
<div class="body-img landscape ">
<div class="responsive-img image-expandable img-article-item">
<div class="article-image-slot image-slot-placeholder" data-doc-id="cms/api/amp/image/AA1oe0LP">
<div class="article-image-slot">
<div class="article-image-container" data-t="{&quot;n&quot;:&quot;OpenModal&quot;,&quot;t&quot;:13,&quot;b&quot;:8,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}" data-test-id="AA1oe0LP">
<div class="article-image-height-wrapper expandable article-image-height-wrapper-new" tabindex="0" data-customhandled="true" data-t="{&quot;n&quot;:&quot;destination&quot;,&quot;b&quot;:1,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}">
<div></div>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18498" src="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1oe0LP.png" alt="" width="768" height="228" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1oe0LP.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1oe0LP-400x119.png 400w" sizes="(max-width: 768px) 100vw, 768px" /></p>
</div>
<div class="image-caption-container image-caption-container-ux-impr articlewc-image-caption-container "><span class="image-caption">A regular and a hidden file displayed in GNOME Files, because the user has pressed Ctrl+H.</span></div>
</div>
</div>
</div>
</div>
</div>
<h2 id="command-differences" class="article-sub-heading">Command Differences</h2>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">Terminal commands are very different on Linux from their Windows counterparts, and often come with short names. The ultimate has to be a single period. On Linux, ‘.’ tells the shell to <em>source</em> or read a file.</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">Some Linux command names are at least suggestive of their use, like cp for copy and mv for move. Others are more opaque. Windows users are familiar with using dir at the command prompt to list files and directories, while Linux users type ls, which is short for list.</p>
<div class="intra-article-module" data-t="{&quot;n&quot;:&quot;intraArticle&quot;,&quot;t&quot;:13}">
<div class="articlePageIntraArticleFullWidth left-image-intra-ad">
<div class="intra-article-relatedcontent">
<div class="video-wrapper " tabindex="0">
<div class=" videocard1PP video-embed-common related-video-divider-bottom videocardRelatedVideo">
<div class=" content-video-container large-title " data-t="{&quot;n&quot;:&quot;ContentVideoPlayer&quot;,&quot;t&quot;:61,&quot;c.i&quot;:&quot;AA1o9S7T&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:61,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;Viral Tech&quot;,&quot;c.bi&quot;:&quot;BB1qyLmC&quot;,&quot;ext&quot;:{&quot;videoId&quot;:&quot;AA1o9S7T&quot;,&quot;videoCs&quot;:&quot;BB1qyLmC&quot;,&quot;eventType&quot;:17,&quot;pageGroup&quot;:&quot;usanew&quot;,&quot;isMuted&quot;:true,&quot;inline&quot;:true},&quot;c.hl&quot;:&quot;Is Windows the LEAST Secure Operating System?&quot;}">
<div id="vjs_video_3" class="video-js vjs-msn vjs-fill vjs_video_3-dimensions vjs-controls-enabled vjs-workinghover vjs-v7 vjs-qualitymenu vjs-telemetry vjs-layout-large vjs-has-started vjs-hide-bigplaybutton vjs-user-inactive vjs-waiting vjs-paused" lang="en-us" tabindex="-1" role="region" translate="no" data-setup="{ &quot;inactivityTimeout&quot;: 0 }" aria-label="Is Windows the LEAST Secure Operating System? Video Player">
<div class="vjs-title-bar">
<div class="vjs-title-text"></div>
</div>
</div>
</div>
</div>
</div>
<div class="video-clear-div"></div>
</div>
</div>
</div>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">Windows PowerShell users might use cat to list files, but cat on Linux concatenates files or dumps their contents to the terminal window, in an action similar to the Windows type command. The Linux type command describes commands and parameters, but not in the way a user guide might. For that, you use the man command, short for manual.</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">To change directories, you use cd on both platforms, but on Linux you don’t have drive identifiers. Everything, including mounted drives, is just a directory branch off the root / directory.</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">To distinguish command options from parameters, Linux uses &#8211; or &#8212; but Windows uses /.</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">Another difference is that typically, Linux commands are silent on success. Adopting the &#8220;no news is good news&#8221; stance, you’ll only see output if something goes wrong. If you’re <em>not</em> alerted to an issue, assume what you just did worked.</p>
<p>rmunwanted-file.txt</p>
<div class="body-img landscape ">
<div class="responsive-img image-expandable img-article-item">
<div class="article-image-slot image-slot-placeholder" data-doc-id="cms/api/amp/image/AA1odRD2">
<div class="article-image-slot">
<div class="article-image-container" data-t="{&quot;n&quot;:&quot;OpenModal&quot;,&quot;t&quot;:13,&quot;b&quot;:8,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}" data-test-id="AA1odRD2">
<div class="article-image-height-wrapper expandable article-image-height-wrapper-new" tabindex="0" data-customhandled="true" data-t="{&quot;n&quot;:&quot;destination&quot;,&quot;b&quot;:1,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}">
<div></div>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18499" src="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1odRD2.png" alt="" width="768" height="146" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1odRD2.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1odRD2-400x76.png 400w" sizes="(max-width: 768px) 100vw, 768px" /></p>
</div>
<div class="image-caption-container image-caption-container-ux-impr articlewc-image-caption-container "><span class="image-caption">Using the Linux rm command to remove a file in a terminal window</span></div>
</div>
</div>
</div>
</div>
</div>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">The file is removed, silently. Also, there’s no Recycle Bin with rm. Your file’s gone. Period.</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">We shouldn&#8217;t be surprised at these differences. Different platforms are bound to have different command sets. Our only answer is to embrace the change, and learn the commands.</p>
<div class="intra-article-module" data-t="{&quot;n&quot;:&quot;intraArticle&quot;,&quot;t&quot;:13}">
<div class="articlePageIntraArticleFullWidth ad-slot-placeholder left-image-intra-ad" data-ad-index="1">
<div class="intra-article-ad-full left-image-intra-ad">
<div class="left-image-intra-ad">
<div class="content"></div>
</div>
</div>
</div>
</div>
<h2 id="use-sudo-instead-of-run-as-administrator" class="article-sub-heading">Use sudo Instead of Run as Administrator</h2>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">Window users might be familiar with the Run as Administrator option found in an executable&#8217;s right-click context menu. This runs the program with elevated permissions.</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">The equivalent on Linux is the sudo command. Preceding a command with sudo runs that command with elevated permissions. Only users who are specifically granted permission <a href="https://www.howtogeek.com/842739/how-to-add-a-user-to-the-sudoers-file-in-linux/?utm_source=syndication" target="_blank" rel="noopener" data-t="{&quot;n&quot;:&quot;destination&quot;,&quot;t&quot;:13,&quot;b&quot;:1,&quot;c.t&quot;:7}">are able to invoke superuser mode</a>.</p>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">If we try to add a user with sudo, we’re refused. But <a href="https://www.howtogeek.com/842739/how-to-add-a-user-to-the-sudoers-file-in-linux/?utm_source=syndication" target="_blank" rel="noopener" data-t="{&quot;n&quot;:&quot;destination&quot;,&quot;t&quot;:13,&quot;b&quot;:1,&quot;c.t&quot;:7}">if we’re in the sudoers list</a> and we precede the command with sudo, Linux allows us to add the user.</p>
<div class="body-img landscape ">
<div class="responsive-img image-expandable img-article-item">
<div class="article-image-slot image-slot-placeholder" data-doc-id="cms/api/amp/image/AA1odW2l">
<div class="article-image-slot">
<div class="article-image-container" data-t="{&quot;n&quot;:&quot;OpenModal&quot;,&quot;t&quot;:13,&quot;b&quot;:8,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}" data-test-id="AA1odW2l">
<div class="article-image-height-wrapper expandable article-image-height-wrapper-new" tabindex="0" data-customhandled="true" data-t="{&quot;n&quot;:&quot;destination&quot;,&quot;b&quot;:1,&quot;c.i&quot;:&quot;AA1odYx3&quot;,&quot;c.l&quot;:false,&quot;c.t&quot;:13,&quot;c.v&quot;:&quot;news&quot;,&quot;c.c&quot;:&quot;newsscienceandtechnology&quot;,&quot;c.b&quot;:&quot;HowToGeek&quot;,&quot;c.bi&quot;:&quot;BB1loBHK&quot;,&quot;c.hl&quot;:&quot;Using Linux After Windows Is Easier If You Know These 6 Key Differences&quot;}">
<div></div>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-18500" src="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1odW2l.png" alt="" width="768" height="539" srcset="https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1odW2l.png 768w, https://goodshepherdmedia.net/wp-content/uploads/2024/08/AA1odW2l-400x281.png 400w" sizes="(max-width: 768px) 100vw, 768px" /></p>
</div>
<div class="image-caption-container image-caption-container-ux-impr articlewc-image-caption-container "><span class="image-caption">Linux refusing to add a user until the sudo command is used.</span></div>
</div>
</div>
</div>
</div>
</div>
<p data-t="{&quot;n&quot;:&quot;blueLinks&quot;}">There’s a learning curve associated with moving to any new operating system, and whichever way you slice it, you’ve got to climb that curve. But if you don’t get the basics sorted out, you’ll never make it up that slope. <a href="https://www.msn.com/en-us/news/technology/using-linux-after-windows-is-easier-if-you-know-these-6-key-differences/ar-AA1odYx3?ocid=hpmsn&amp;cvid=e6646fd7112d4489873949691252583d&amp;ei=378" target="_blank" rel="noopener">source</a></p>
<div class="intra-article-module-bottom-slot" data-t="{&quot;n&quot;:&quot;intraArticle&quot;,&quot;t&quot;:13}"></div>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
