<?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>NetworkAccess Archives - Good Shepherd News - Fastest Growing Religious, Free Speech &amp; Political Content</title>
	<atom:link href="https://goodshepherdmedia.net/tag/networkaccess/feed/" rel="self" type="application/rss+xml" />
	<link>https://goodshepherdmedia.net/tag/networkaccess/</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, 23 Jun 2025 05:36:49 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://goodshepherdmedia.net/wp-content/uploads/2023/08/Good-Shepherd-News-Logo-150x150.png</url>
	<title>NetworkAccess Archives - Good Shepherd News - Fastest Growing Religious, Free Speech &amp; Political Content</title>
	<link>https://goodshepherdmedia.net/tag/networkaccess/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<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 fetchpriority="high" 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 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 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>
	</channel>
</rss>
