<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.completenoobs.com/noobs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Test1</id>
	<title>CompleteNoobs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.completenoobs.com/noobs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Test1"/>
	<link rel="alternate" type="text/html" href="https://www.completenoobs.com/noobs/Special:Contributions/Test1"/>
	<updated>2026-04-30T02:23:01Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://www.completenoobs.com/noobs/index.php?title=Raspberry_Pi_2_as_a_Tailscale_Exit_Node_for_Home_Network&amp;diff=491</id>
		<title>Raspberry Pi 2 as a Tailscale Exit Node for Home Network</title>
		<link rel="alternate" type="text/html" href="https://www.completenoobs.com/noobs/index.php?title=Raspberry_Pi_2_as_a_Tailscale_Exit_Node_for_Home_Network&amp;diff=491"/>
		<updated>2025-03-19T21:31:37Z</updated>

		<summary type="html">&lt;p&gt;Test1: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Raspberry Pi 2 as a Tailscale Exit Node for Home Network =&lt;br /&gt;
&lt;br /&gt;
This tutorial guides you through turning a &#039;&#039;&#039;Raspberry Pi 2&#039;&#039;&#039; (RPi2) into a &#039;&#039;&#039;Tailscale exit node&#039;&#039;&#039; for secure remote access to your &#039;&#039;&#039;home network&#039;&#039;&#039;. With this setup, you can log into your home servers, edit your local wiki, or access devices from anywhere using a headless Raspberry Pi 2. Keywords: &#039;&#039;&#039;Raspberry Pi 2 Tailscale setup&#039;&#039;&#039;, &#039;&#039;&#039;headless SSH&#039;&#039;&#039;, &#039;&#039;&#039;home VPN&#039;&#039;&#039;, &#039;&#039;&#039;nmap IP discovery&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Transform your Raspberry Pi 2 into a Tailscale node to create a DIY VPN for your home network. This guide covers enabling SSH at boot for headless login, finding the Pi’s IP with &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt;, and configuring Tailscale as an exit node for remote access to home servers and wikis.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* Raspberry Pi 2 with power supply and microSD card&lt;br /&gt;
* Ubuntu laptop (for SSH and scanning)&lt;br /&gt;
* Internet connection&lt;br /&gt;
* [https://www.raspberrypi.com/software/ Raspberry Pi Imager] installed on your computer&lt;br /&gt;
&lt;br /&gt;
== Step 1: Enable SSH on Boot (Headless Setup) ==&lt;br /&gt;
&lt;br /&gt;
Set up your Raspberry Pi 2 for &#039;&#039;&#039;headless login&#039;&#039;&#039; with SSH enabled at boot using the Raspberry Pi Imager.&lt;br /&gt;
&lt;br /&gt;
# Download and open the &#039;&#039;&#039;Raspberry Pi Imager&#039;&#039;&#039; from [https://www.raspberrypi.com/software/ raspberrypi.com/software/].&lt;br /&gt;
# Select your OS (e.g., Raspberry Pi OS Lite) and storage (microSD card).&lt;br /&gt;
# Click the &amp;quot;Edit Settings&amp;quot; button (gear icon or three dots).&lt;br /&gt;
# In the &amp;quot;General&amp;quot; tab, set a &#039;&#039;&#039;username&#039;&#039;&#039; and &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
# In the &amp;quot;Services&amp;quot; tab, check &#039;&#039;&#039;Enable SSH&#039;&#039;&#039;.&lt;br /&gt;
# Choose &amp;quot;Use password authentication&amp;quot; (or &amp;quot;public-key&amp;quot; if preferred).&lt;br /&gt;
# Click &amp;quot;Save&amp;quot; and write the image to the SD card.&lt;br /&gt;
&lt;br /&gt;
This ensures your RPi2 is SSH-ready without a monitor—perfect for a &#039;&#039;&#039;headless Raspberry Pi setup&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Find the Raspberry Pi IP with nmap ==&lt;br /&gt;
&lt;br /&gt;
Locate your Raspberry Pi 2’s IP address on your home network using &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; from an Ubuntu laptop.&lt;br /&gt;
&lt;br /&gt;
=== Install nmap ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install nmap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Identify Your Router IP ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ip route | grep default&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default via 192.168.0.1 dev wlp3s0 proto dhcp src 192.168.0.40 metric 600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Router IP: &amp;lt;code&amp;gt;192.168.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Laptop IP: &amp;lt;code&amp;gt;192.168.0.40&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Scan the Network ===&lt;br /&gt;
&lt;br /&gt;
Scan your network before booting the Pi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nmap -sn 192.168.0.1/24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-03 10:07 GMT&lt;br /&gt;
Nmap scan report for _gateway (192.168.0.1)&lt;br /&gt;
Host is up (0.0038s latency).&lt;br /&gt;
MAC Address: AC:F8:CC:DD:EE:FF (Arris Group)&lt;br /&gt;
Nmap scan report for 192.168.0.40&lt;br /&gt;
Host is up.&lt;br /&gt;
Nmap done: 256 IP addresses (12 hosts up) scanned in 2.68 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boot your Raspberry Pi 2, wait 2-3 minutes, and scan again:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nmap -sn 192.168.0.1/24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New device appears:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Nmap scan report for 192.168.0.69&lt;br /&gt;
Host is up (0.015s latency).&lt;br /&gt;
MAC Address: B8:17:CC:DD:CC:BB (Raspberry Pi Foundation)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* RPi2 IP: &amp;lt;code&amp;gt;192.168.0.69&amp;lt;/code&amp;gt; (note this for SSH).&lt;br /&gt;
&lt;br /&gt;
This &#039;&#039;&#039;nmap IP discovery&#039;&#039;&#039; method is ideal for headless Raspberry Pi projects.&lt;br /&gt;
&lt;br /&gt;
== Step 3: Set Up Tailscale on the Raspberry Pi 2 ==&lt;br /&gt;
&lt;br /&gt;
Log into your RPi2 and configure it as a &#039;&#039;&#039;Tailscale exit node&#039;&#039;&#039; for your home network.&lt;br /&gt;
&lt;br /&gt;
=== SSH into the Pi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh $USER@192.168.0.69&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;$USER&amp;lt;/code&amp;gt; with the username set in Step 1.&lt;br /&gt;
&lt;br /&gt;
=== Install Tailscale ===&lt;br /&gt;
&lt;br /&gt;
Add Tailscale’s repository with these commands (run each line separately):&lt;br /&gt;
* &amp;lt;code&amp;gt;curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg &amp;gt;/dev/null&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update and install:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install tailscale&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable IP Forwarding ===&lt;br /&gt;
&lt;br /&gt;
Enable IP forwarding for the exit node (run each line):&lt;br /&gt;
&amp;lt;code&amp;gt;echo &#039;net.ipv4.ip_forward = 1&#039; | sudo tee -a /etc/sysctl.conf&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;echo &#039;net.ipv6.conf.all.forwarding = 1&#039; | sudo tee -a /etc/sysctl.conf&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sudo sysctl -p /etc/sysctl.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start Tailscale as an Exit Node ===&lt;br /&gt;
&lt;br /&gt;
Run Tailscale and advertise your home network:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale up --accept-routes --advertise-routes=192.168.0.0/24 --advertise-exit-node&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the authentication URL output, paste it into a browser, and log in with your Tailscale account.&lt;br /&gt;
&lt;br /&gt;
Get the Tailscale IP:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tailscale ip -4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output: &amp;lt;code&amp;gt;100.115.103.24&amp;lt;/code&amp;gt; (yours will differ).&lt;br /&gt;
&lt;br /&gt;
== Step 4: Connect from Your Laptop ==&lt;br /&gt;
NOTE: you can find your device IP&#039;s from &amp;lt;code&amp;gt;https://login.tailscale.com/admin/machines&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Raspberry_Pi_2_as_a_Tailscale_Exit_Node_for_Home_Network#Install_Tailscale| Use same method as PI to install to laptop]]&lt;br /&gt;
&lt;br /&gt;
Use your laptop as a Tailscale client to access your home network via the RPi2 exit node.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale up --exit-node=100.115.103.24 --exit-node-allow-lan-access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Replace &amp;lt;code&amp;gt;100.115.103.24&amp;lt;/code&amp;gt; with your Pi’s Tailscale IP.&lt;br /&gt;
&lt;br /&gt;
To disconnect:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale down&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Simple Script===&lt;br /&gt;
&lt;br /&gt;
* Create file name you will remember - or at least know what it is when you see it&lt;br /&gt;
&amp;lt;code&amp;gt;sudo $EDITOR /usr/local/bin/tailscale_home_pi_connect&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Why /usr/local/bin/?&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Putting your script in &amp;lt;code&amp;gt;/usr/local/bin/&amp;lt;/code&amp;gt; is smart because:&amp;lt;br&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;System-Wide Access:&#039;&#039;&#039; It’s in the system’s PATH by default on Ubuntu and Raspberry Pi OS, so you can run &amp;lt;code&amp;gt;tailscale_home_pi_connect&amp;lt;/code&amp;gt; from anywhere in the terminal without typing the full path.&amp;lt;br&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Standard Location:&#039;&#039;&#039; It’s the conventional spot for user-added scripts or binaries, keeping your system organized and separate from OS-provided tools (like &amp;lt;code&amp;gt;/usr/bin/&amp;lt;/code&amp;gt;).&amp;lt;br&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Root Privileges Match:&#039;&#039;&#039; Since your script uses &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;, placing it in a system directory like &amp;lt;code&amp;gt;/usr/local/bin/&amp;lt;/code&amp;gt; (with &amp;lt;code&amp;gt;sudo chmod +x&amp;lt;/code&amp;gt;) aligns with needing elevated permissions, making it feel like a proper system command.&amp;lt;br&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Avoid Clutter:&#039;&#039;&#039; Unlike your home directory (e.g., &amp;lt;code&amp;gt;/home/$USER/&amp;lt;/code&amp;gt;), it won’t get lost among personal files, and it’s accessible to all users if needed.&amp;lt;br&amp;gt;&lt;br /&gt;
Other places like &amp;lt;code&amp;gt;/bin/&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/usr/bin/&amp;lt;/code&amp;gt; are reserved for OS packages, and random directories might require extra PATH setup—&amp;lt;code&amp;gt;/usr/local/bin/&amp;lt;/code&amp;gt; is the sweet spot for custom scripts like this!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
sudo tailscale up --exit-node=100.115.103.24 --exit-node-allow-lan-access&lt;br /&gt;
# NOTE: To disconnect: sudo tailscale down&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Make script excutable &lt;br /&gt;
&amp;lt;code&amp;gt;sudo chmod +x /usr/local/bin/tailscale_home_pi_connect&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 5: Test the Setup ==&lt;br /&gt;
&lt;br /&gt;
Verify the exit node works:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl ifconfig.me&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compare the IP when connected via your home Wi-Fi vs. a mobile hotspot. You should see your home public IP when using the exit node. Now, you can browse your &#039;&#039;&#039;local wiki&#039;&#039;&#039;, log into &#039;&#039;&#039;home servers&#039;&#039;&#039;, or access devices on &amp;lt;code&amp;gt;192.168.0.0/24&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SSH fails:&#039;&#039;&#039; Ensure the username/password match Step 1 settings.&lt;br /&gt;
* &#039;&#039;&#039;Tailscale not connecting:&#039;&#039;&#039; Check your Tailscale account and re-authenticate.&lt;br /&gt;
* &#039;&#039;&#039;IP not found:&#039;&#039;&#039; Re-run &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; or check your router’s DHCP list.&lt;br /&gt;
&lt;br /&gt;
== SEO: Find This Guide Easily ==&lt;br /&gt;
&lt;br /&gt;
Looking to &#039;&#039;&#039;SSH tunnel into your home network safely&#039;&#039;&#039; or set up a &#039;&#039;&#039;Raspberry Pi 2 as a Tailscale exit node&#039;&#039;&#039;? This guide covers everything you need for secure remote access to your &#039;&#039;&#039;home network&#039;&#039;&#039; using a &#039;&#039;&#039;headless Raspberry Pi 2&#039;&#039;&#039;. Key terms to find this page again: &#039;&#039;&#039;Raspberry Pi 2 Tailscale setup&#039;&#039;&#039;, &#039;&#039;&#039;Tailscale exit node tutorial&#039;&#039;&#039;, &#039;&#039;&#039;headless SSH home VPN&#039;&#039;&#039;, &#039;&#039;&#039;nmap IP discovery for Pi&#039;&#039;&#039;, &#039;&#039;&#039;DIY VPN with Raspberry Pi&#039;&#039;&#039;, &#039;&#039;&#039;secure home server access&#039;&#039;&#039;, &#039;&#039;&#039;Tailscale remote access&#039;&#039;&#039;. Whether you’re editing a &#039;&#039;&#039;local wiki&#039;&#039;&#039; or managing devices on your &#039;&#039;&#039;home LAN&#039;&#039;&#039;, this &#039;&#039;&#039;RPi2 Tailscale guide&#039;&#039;&#039; has you covered.&lt;/div&gt;</summary>
		<author><name>Test1</name></author>
	</entry>
	<entry>
		<id>https://www.completenoobs.com/noobs/index.php?title=Raspberry_Pi_2_as_a_Tailscale_Exit_Node_for_Home_Network&amp;diff=490</id>
		<title>Raspberry Pi 2 as a Tailscale Exit Node for Home Network</title>
		<link rel="alternate" type="text/html" href="https://www.completenoobs.com/noobs/index.php?title=Raspberry_Pi_2_as_a_Tailscale_Exit_Node_for_Home_Network&amp;diff=490"/>
		<updated>2025-03-19T21:27:47Z</updated>

		<summary type="html">&lt;p&gt;Test1: /* Step 4: Connect from Your Laptop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Raspberry Pi 2 as a Tailscale Exit Node for Home Network =&lt;br /&gt;
&lt;br /&gt;
This tutorial guides you through turning a &#039;&#039;&#039;Raspberry Pi 2&#039;&#039;&#039; (RPi2) into a &#039;&#039;&#039;Tailscale exit node&#039;&#039;&#039; for secure remote access to your &#039;&#039;&#039;home network&#039;&#039;&#039;. With this setup, you can log into your home servers, edit your local wiki, or access devices from anywhere using a headless Raspberry Pi 2. Keywords: &#039;&#039;&#039;Raspberry Pi 2 Tailscale setup&#039;&#039;&#039;, &#039;&#039;&#039;headless SSH&#039;&#039;&#039;, &#039;&#039;&#039;home VPN&#039;&#039;&#039;, &#039;&#039;&#039;nmap IP discovery&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Transform your Raspberry Pi 2 into a Tailscale node to create a DIY VPN for your home network. This guide covers enabling SSH at boot for headless login, finding the Pi’s IP with &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt;, and configuring Tailscale as an exit node for remote access to home servers and wikis.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* Raspberry Pi 2 with power supply and microSD card&lt;br /&gt;
* Ubuntu laptop (for SSH and scanning)&lt;br /&gt;
* Internet connection&lt;br /&gt;
* [https://www.raspberrypi.com/software/ Raspberry Pi Imager] installed on your computer&lt;br /&gt;
&lt;br /&gt;
== Step 1: Enable SSH on Boot (Headless Setup) ==&lt;br /&gt;
&lt;br /&gt;
Set up your Raspberry Pi 2 for &#039;&#039;&#039;headless login&#039;&#039;&#039; with SSH enabled at boot using the Raspberry Pi Imager.&lt;br /&gt;
&lt;br /&gt;
# Download and open the &#039;&#039;&#039;Raspberry Pi Imager&#039;&#039;&#039; from [https://www.raspberrypi.com/software/ raspberrypi.com/software/].&lt;br /&gt;
# Select your OS (e.g., Raspberry Pi OS Lite) and storage (microSD card).&lt;br /&gt;
# Click the &amp;quot;Edit Settings&amp;quot; button (gear icon or three dots).&lt;br /&gt;
# In the &amp;quot;General&amp;quot; tab, set a &#039;&#039;&#039;username&#039;&#039;&#039; and &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
# In the &amp;quot;Services&amp;quot; tab, check &#039;&#039;&#039;Enable SSH&#039;&#039;&#039;.&lt;br /&gt;
# Choose &amp;quot;Use password authentication&amp;quot; (or &amp;quot;public-key&amp;quot; if preferred).&lt;br /&gt;
# Click &amp;quot;Save&amp;quot; and write the image to the SD card.&lt;br /&gt;
&lt;br /&gt;
This ensures your RPi2 is SSH-ready without a monitor—perfect for a &#039;&#039;&#039;headless Raspberry Pi setup&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Find the Raspberry Pi IP with nmap ==&lt;br /&gt;
&lt;br /&gt;
Locate your Raspberry Pi 2’s IP address on your home network using &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; from an Ubuntu laptop.&lt;br /&gt;
&lt;br /&gt;
=== Install nmap ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install nmap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Identify Your Router IP ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ip route | grep default&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default via 192.168.0.1 dev wlp3s0 proto dhcp src 192.168.0.40 metric 600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Router IP: &amp;lt;code&amp;gt;192.168.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Laptop IP: &amp;lt;code&amp;gt;192.168.0.40&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Scan the Network ===&lt;br /&gt;
&lt;br /&gt;
Scan your network before booting the Pi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nmap -sn 192.168.0.1/24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-03 10:07 GMT&lt;br /&gt;
Nmap scan report for _gateway (192.168.0.1)&lt;br /&gt;
Host is up (0.0038s latency).&lt;br /&gt;
MAC Address: AC:F8:CC:DD:EE:FF (Arris Group)&lt;br /&gt;
Nmap scan report for 192.168.0.40&lt;br /&gt;
Host is up.&lt;br /&gt;
Nmap done: 256 IP addresses (12 hosts up) scanned in 2.68 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boot your Raspberry Pi 2, wait 2-3 minutes, and scan again:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nmap -sn 192.168.0.1/24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New device appears:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Nmap scan report for 192.168.0.69&lt;br /&gt;
Host is up (0.015s latency).&lt;br /&gt;
MAC Address: B8:17:CC:DD:CC:BB (Raspberry Pi Foundation)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* RPi2 IP: &amp;lt;code&amp;gt;192.168.0.69&amp;lt;/code&amp;gt; (note this for SSH).&lt;br /&gt;
&lt;br /&gt;
This &#039;&#039;&#039;nmap IP discovery&#039;&#039;&#039; method is ideal for headless Raspberry Pi projects.&lt;br /&gt;
&lt;br /&gt;
== Step 3: Set Up Tailscale on the Raspberry Pi 2 ==&lt;br /&gt;
&lt;br /&gt;
Log into your RPi2 and configure it as a &#039;&#039;&#039;Tailscale exit node&#039;&#039;&#039; for your home network.&lt;br /&gt;
&lt;br /&gt;
=== SSH into the Pi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh $USER@192.168.0.69&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;$USER&amp;lt;/code&amp;gt; with the username set in Step 1.&lt;br /&gt;
&lt;br /&gt;
=== Install Tailscale ===&lt;br /&gt;
&lt;br /&gt;
Add Tailscale’s repository with these commands (run each line separately):&lt;br /&gt;
* &amp;lt;code&amp;gt;curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg &amp;gt;/dev/null&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update and install:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install tailscale&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable IP Forwarding ===&lt;br /&gt;
&lt;br /&gt;
Enable IP forwarding for the exit node (run each line):&lt;br /&gt;
&amp;lt;code&amp;gt;echo &#039;net.ipv4.ip_forward = 1&#039; | sudo tee -a /etc/sysctl.conf&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;echo &#039;net.ipv6.conf.all.forwarding = 1&#039; | sudo tee -a /etc/sysctl.conf&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sudo sysctl -p /etc/sysctl.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start Tailscale as an Exit Node ===&lt;br /&gt;
&lt;br /&gt;
Run Tailscale and advertise your home network:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale up --accept-routes --advertise-routes=192.168.0.0/24 --advertise-exit-node&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the authentication URL output, paste it into a browser, and log in with your Tailscale account.&lt;br /&gt;
&lt;br /&gt;
Get the Tailscale IP:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tailscale ip -4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output: &amp;lt;code&amp;gt;100.115.103.24&amp;lt;/code&amp;gt; (yours will differ).&lt;br /&gt;
&lt;br /&gt;
== Step 4: Connect from Your Laptop ==&lt;br /&gt;
NOTE: you can find your device IP&#039;s from &amp;lt;code&amp;gt;https://login.tailscale.com/admin/machines&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Raspberry_Pi_2_as_a_Tailscale_Exit_Node_for_Home_Network#Install_Tailscale| Use same method as PI to install to laptop]]&lt;br /&gt;
&lt;br /&gt;
Use your laptop as a Tailscale client to access your home network via the RPi2 exit node.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale up --exit-node=100.115.103.24 --exit-node-allow-lan-access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Replace &amp;lt;code&amp;gt;100.115.103.24&amp;lt;/code&amp;gt; with your Pi’s Tailscale IP.&lt;br /&gt;
&lt;br /&gt;
To disconnect:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale down&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Simple Script===&lt;br /&gt;
&lt;br /&gt;
* Create file name you will remember - or at least know what it is when you see it&lt;br /&gt;
&amp;lt;code&amp;gt;sudo $EDITOR /usr/local/bin/tailscale_home_pi_connect&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
sudo tailscale up --exit-node=100.115.103.24 --exit-node-allow-lan-access&lt;br /&gt;
# NOTE: To disconnect: sudo tailscale down&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Make script excutable &lt;br /&gt;
&amp;lt;code&amp;gt;sudo chmod +x /usr/local/bin/tailscale_home_pi_connect&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 5: Test the Setup ==&lt;br /&gt;
&lt;br /&gt;
Verify the exit node works:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl ifconfig.me&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compare the IP when connected via your home Wi-Fi vs. a mobile hotspot. You should see your home public IP when using the exit node. Now, you can browse your &#039;&#039;&#039;local wiki&#039;&#039;&#039;, log into &#039;&#039;&#039;home servers&#039;&#039;&#039;, or access devices on &amp;lt;code&amp;gt;192.168.0.0/24&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SSH fails:&#039;&#039;&#039; Ensure the username/password match Step 1 settings.&lt;br /&gt;
* &#039;&#039;&#039;Tailscale not connecting:&#039;&#039;&#039; Check your Tailscale account and re-authenticate.&lt;br /&gt;
* &#039;&#039;&#039;IP not found:&#039;&#039;&#039; Re-run &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; or check your router’s DHCP list.&lt;br /&gt;
&lt;br /&gt;
== SEO: Find This Guide Easily ==&lt;br /&gt;
&lt;br /&gt;
Looking to &#039;&#039;&#039;SSH tunnel into your home network safely&#039;&#039;&#039; or set up a &#039;&#039;&#039;Raspberry Pi 2 as a Tailscale exit node&#039;&#039;&#039;? This guide covers everything you need for secure remote access to your &#039;&#039;&#039;home network&#039;&#039;&#039; using a &#039;&#039;&#039;headless Raspberry Pi 2&#039;&#039;&#039;. Key terms to find this page again: &#039;&#039;&#039;Raspberry Pi 2 Tailscale setup&#039;&#039;&#039;, &#039;&#039;&#039;Tailscale exit node tutorial&#039;&#039;&#039;, &#039;&#039;&#039;headless SSH home VPN&#039;&#039;&#039;, &#039;&#039;&#039;nmap IP discovery for Pi&#039;&#039;&#039;, &#039;&#039;&#039;DIY VPN with Raspberry Pi&#039;&#039;&#039;, &#039;&#039;&#039;secure home server access&#039;&#039;&#039;, &#039;&#039;&#039;Tailscale remote access&#039;&#039;&#039;. Whether you’re editing a &#039;&#039;&#039;local wiki&#039;&#039;&#039; or managing devices on your &#039;&#039;&#039;home LAN&#039;&#039;&#039;, this &#039;&#039;&#039;RPi2 Tailscale guide&#039;&#039;&#039; has you covered.&lt;/div&gt;</summary>
		<author><name>Test1</name></author>
	</entry>
	<entry>
		<id>https://www.completenoobs.com/noobs/index.php?title=Ubuntu_24.04_Terminal_CLI_Processes_and_Services&amp;diff=489</id>
		<title>Ubuntu 24.04 Terminal CLI Processes and Services</title>
		<link rel="alternate" type="text/html" href="https://www.completenoobs.com/noobs/index.php?title=Ubuntu_24.04_Terminal_CLI_Processes_and_Services&amp;diff=489"/>
		<updated>2025-03-19T20:37:54Z</updated>

		<summary type="html">&lt;p&gt;Test1: Created page with &amp;quot;== Ubuntu 24.04 Processes and Services ==  Ubuntu 24.04 introduces updated tools and enhancements for managing processes and services. This guide covers how to monitor, control, and optimize processes and services on your Ubuntu 24.04 system, including practical examples like running applications in the background and managing system services with &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt;.  == Introduction ==  Processes and services are fundamental to the operation of any Linux system, inclu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ubuntu 24.04 Processes and Services ==&lt;br /&gt;
&lt;br /&gt;
Ubuntu 24.04 introduces updated tools and enhancements for managing processes and services. This guide covers how to monitor, control, and optimize processes and services on your Ubuntu 24.04 system, including practical examples like running applications in the background and managing system services with &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Processes and services are fundamental to the operation of any Linux system, including Ubuntu 24.04. A &#039;&#039;&#039;process&#039;&#039;&#039; is an instance of a running program, while a &#039;&#039;&#039;service&#039;&#039;&#039; is a background process that provides system functionality, often starting at boot. This page will guide you through understanding, managing, and troubleshooting processes and services in Ubuntu 24.04, with a focus on tools and features specific to this release.&lt;br /&gt;
&lt;br /&gt;
== Understanding Processes in Ubuntu 24.04 ==&lt;br /&gt;
&lt;br /&gt;
=== Process Basics ===&lt;br /&gt;
In Ubuntu 24.04, each process has a unique &#039;&#039;&#039;Process ID (PID)&#039;&#039;&#039; and exists in one of several states:&lt;br /&gt;
* &#039;&#039;&#039;Running&#039;&#039;&#039;: The process is executing or waiting to execute.&lt;br /&gt;
* &#039;&#039;&#039;Sleeping&#039;&#039;&#039;: The process is waiting for an event (e.g., user input).&lt;br /&gt;
* &#039;&#039;&#039;Stopped&#039;&#039;&#039;: The process is paused, often by user action.&lt;br /&gt;
* &#039;&#039;&#039;Zombie&#039;&#039;&#039;: The process has terminated but remains in the process table.&lt;br /&gt;
&lt;br /&gt;
Processes are hierarchical, with parent processes creating child processes. The root of this hierarchy is the &#039;&#039;&#039;init&#039;&#039;&#039; process (PID 1), managed by &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; in Ubuntu 24.04.&lt;br /&gt;
&lt;br /&gt;
=== Tools for Process Management ===&lt;br /&gt;
Ubuntu 24.04 provides several tools to monitor and manage processes:&lt;br /&gt;
* &amp;lt;code&amp;gt;ps&amp;lt;/code&amp;gt;: Lists processes. Use &amp;lt;code&amp;gt;ps aux&amp;lt;/code&amp;gt; for a detailed view.&lt;br /&gt;
* &amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt;: Displays real-time process information, sorted by CPU usage.&lt;br /&gt;
* &amp;lt;code&amp;gt;htop&amp;lt;/code&amp;gt;: An enhanced version of &amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt; with a user-friendly interface. Install it with &amp;lt;code&amp;gt;sudo apt install htop&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;pgrep&amp;lt;/code&amp;gt;: Finds processes by name or other attributes. For example, &amp;lt;code&amp;gt;pgrep -f keepassxc&amp;lt;/code&amp;gt; finds processes matching &amp;quot;keepassxc&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Ubuntu 24.04 also includes improvements in process scheduling and resource management, optimizing performance for both desktop and server environments.&lt;br /&gt;
&lt;br /&gt;
== Background and Foreground Processes ==&lt;br /&gt;
&lt;br /&gt;
Processes in Ubuntu 24.04 can run in the &#039;&#039;&#039;foreground&#039;&#039;&#039; or &#039;&#039;&#039;background&#039;&#039;&#039;. Understanding how to manage them is key to efficient multitasking in the terminal.&lt;br /&gt;
&lt;br /&gt;
=== Foreground Processes ===&lt;br /&gt;
Foreground processes run interactively in the terminal, blocking further commands until they complete or are paused. For example, launching &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt; to edit a file ties up the terminal until you exit the editor.&lt;br /&gt;
&lt;br /&gt;
=== Background Processes ===&lt;br /&gt;
Background processes run independently of the terminal, allowing you to continue using it for other tasks. This is ideal for long-running applications like downloads or running a KeePassXC AppImage.&lt;br /&gt;
&lt;br /&gt;
=== Managing Background and Foreground Processes ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Starting a Process in the Background&#039;&#039;&#039;: Add an ampersand (&amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;) to the command. For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;./keepassxc.appimage &amp;amp;&amp;lt;/pre&amp;gt;&lt;br /&gt;
This launches KeePassXC in the background, displaying a job number (e.g., &amp;lt;code&amp;gt;[1]&amp;lt;/code&amp;gt;) and PID (e.g., &amp;lt;code&amp;gt;12345&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Moving a Foreground Process to the Background&#039;&#039;&#039;: If a process is already running in the foreground:&lt;br /&gt;
** Pause it with &amp;lt;code&amp;gt;Ctrl + Z&amp;lt;/code&amp;gt; (e.g., &amp;lt;code&amp;gt;[1]+ Stopped ./keepassxc.appimage&amp;lt;/code&amp;gt;).&lt;br /&gt;
** Resume it in the background with:&lt;br /&gt;
&amp;lt;pre&amp;gt;bg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Checking Background Processes&#039;&#039;&#039;: List all background jobs in the current terminal session:&lt;br /&gt;
&amp;lt;pre&amp;gt;jobs&amp;lt;/pre&amp;gt;&lt;br /&gt;
Output might look like:&lt;br /&gt;
&amp;lt;pre&amp;gt;[1]+  Running                 ./keepassxc.appimage &amp;amp;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To see all processes (including those not tied to the terminal), use:&lt;br /&gt;
&amp;lt;pre&amp;gt;ps aux | grep keepassxc&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Bringing a Background Process to the Foreground&#039;&#039;&#039;: Use the &amp;lt;code&amp;gt;fg&amp;lt;/code&amp;gt; command with the job number:&lt;br /&gt;
&amp;lt;pre&amp;gt;fg %1&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace &amp;lt;code&amp;gt;%1&amp;lt;/code&amp;gt; with the job number from the &amp;lt;code&amp;gt;jobs&amp;lt;/code&amp;gt; output.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Closing a Background Process&#039;&#039;&#039;: To terminate a specific background process:&lt;br /&gt;
** Find its PID:&lt;br /&gt;
&amp;lt;pre&amp;gt;pgrep -f keepassxc.appimage&amp;lt;/pre&amp;gt;&lt;br /&gt;
This might return &amp;lt;code&amp;gt;12345&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Kill it:&lt;br /&gt;
&amp;lt;pre&amp;gt;kill 12345&amp;lt;/pre&amp;gt;&lt;br /&gt;
Use &amp;lt;code&amp;gt;kill -9 12345&amp;lt;/code&amp;gt; if it doesn’t close gracefully.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Persistent Background Processes&#039;&#039;&#039;: Closing the terminal ends background jobs. To keep them running, use &amp;lt;code&amp;gt;nohup&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;nohup ./keepassxc.appimage &amp;amp;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or run them in a &amp;lt;code&amp;gt;tmux&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;screen&amp;lt;/code&amp;gt; session.&lt;br /&gt;
&lt;br /&gt;
=== Example: Running KeePassXC in the Background ===&lt;br /&gt;
Let’s run a KeePassXC AppImage in the background, check it, and close it:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Start KeePassXC&#039;&#039;&#039;: &lt;br /&gt;
&amp;lt;pre&amp;gt;./keepassxc.appimage &amp;amp;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Output: &amp;lt;code&amp;gt;[1] 12345&amp;lt;/code&amp;gt;. KeePassXC runs, and the terminal is free.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Check Background Jobs&#039;&#039;&#039;: &lt;br /&gt;
&amp;lt;pre&amp;gt;jobs&amp;lt;/pre&amp;gt;&lt;br /&gt;
Output: &amp;lt;code&amp;gt;[1]+ Running ./keepassxc.appimage &amp;amp;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Verify with PID&#039;&#039;&#039;: &lt;br /&gt;
&amp;lt;pre&amp;gt;pgrep -f keepassxc.appimage&amp;lt;/pre&amp;gt;&lt;br /&gt;
Output: &amp;lt;code&amp;gt;12345&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Close KeePassXC&#039;&#039;&#039;: &lt;br /&gt;
&amp;lt;pre&amp;gt;kill 12345&amp;lt;/pre&amp;gt;&lt;br /&gt;
Verify it’s gone with &amp;lt;code&amp;gt;jobs&amp;lt;/code&amp;gt; (empty output) or &amp;lt;code&amp;gt;ps aux | grep keepassxc&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This approach lets you run KeePassXC without tying up your terminal, check its status, and stop it when needed.&lt;br /&gt;
&lt;br /&gt;
== System Services in Ubuntu 24.04 ==&lt;br /&gt;
&lt;br /&gt;
=== Systemd Overview ===&lt;br /&gt;
Ubuntu 24.04 uses &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; as its default init system, managing system services and boot processes. &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; provides better performance and advanced features compared to older init systems.&lt;br /&gt;
&lt;br /&gt;
=== Managing Services with systemctl ===&lt;br /&gt;
The &amp;lt;code&amp;gt;systemctl&amp;lt;/code&amp;gt; command is used to manage services. Common commands include:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Start a service&#039;&#039;&#039;: &lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl start service_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Stop a service&#039;&#039;&#039;: &lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl stop service_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Enable a service&#039;&#039;&#039; (start at boot): &lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl enable service_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Disable a service&#039;&#039;&#039; (don’t start at boot): &lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl disable service_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Check service status&#039;&#039;&#039;: &lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl status service_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Common Services in Ubuntu 24.04 ===&lt;br /&gt;
Some essential services include:&lt;br /&gt;
* &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;: Allows secure remote access.&lt;br /&gt;
* &amp;lt;code&amp;gt;apache2&amp;lt;/code&amp;gt;: Serves web pages.&lt;br /&gt;
* &amp;lt;code&amp;gt;snapd&amp;lt;/code&amp;gt;: Manages Snap packages, a key feature in Ubuntu.&lt;br /&gt;
&lt;br /&gt;
=== Creating Custom Services ===&lt;br /&gt;
You can create your own services with &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt;. For example, to start the IPFS daemon at boot:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Create a service file&#039;&#039;&#039;: &lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/systemd/system/ipfs.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Add the following content&#039;&#039;&#039;: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Start IPFS daemon&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
ExecStart=/usr/local/bin/ipfs daemon&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Enable and start the service&#039;&#039;&#039;: &lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl enable ipfs.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl start ipfs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Monitoring and Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Real-Time Monitoring ===&lt;br /&gt;
Use &amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;htop&amp;lt;/code&amp;gt; to monitor processes in real-time:&lt;br /&gt;
* &amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt;: Default tool, press &amp;lt;code&amp;gt;q&amp;lt;/code&amp;gt; to quit.&lt;br /&gt;
* &amp;lt;code&amp;gt;htop&amp;lt;/code&amp;gt;: More interactive, with color-coding and easier navigation.&lt;br /&gt;
&lt;br /&gt;
=== Viewing Logs ===&lt;br /&gt;
Use &amp;lt;code&amp;gt;journalctl&amp;lt;/code&amp;gt; to access service logs:&lt;br /&gt;
* &#039;&#039;&#039;View logs for a service&#039;&#039;&#039;: &lt;br /&gt;
&amp;lt;pre&amp;gt;journalctl -u service_name&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Follow live logs&#039;&#039;&#039;: &lt;br /&gt;
&amp;lt;pre&amp;gt;journalctl -f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Finding Process Issues ===&lt;br /&gt;
To identify resource-heavy processes:&lt;br /&gt;
* Use &amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;htop&amp;lt;/code&amp;gt; and sort by CPU or memory usage.&lt;br /&gt;
* Alternatively, use &amp;lt;code&amp;gt;ps aux | sort -nk 3&amp;lt;/code&amp;gt; to sort by CPU usage.&lt;/div&gt;</summary>
		<author><name>Test1</name></author>
	</entry>
	<entry>
		<id>https://www.completenoobs.com/noobs/index.php?title=Raspberry_Pi_2_as_a_Tailscale_Exit_Node_for_Home_Network&amp;diff=488</id>
		<title>Raspberry Pi 2 as a Tailscale Exit Node for Home Network</title>
		<link rel="alternate" type="text/html" href="https://www.completenoobs.com/noobs/index.php?title=Raspberry_Pi_2_as_a_Tailscale_Exit_Node_for_Home_Network&amp;diff=488"/>
		<updated>2025-03-19T20:06:16Z</updated>

		<summary type="html">&lt;p&gt;Test1: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Raspberry Pi 2 as a Tailscale Exit Node for Home Network =&lt;br /&gt;
&lt;br /&gt;
This tutorial guides you through turning a &#039;&#039;&#039;Raspberry Pi 2&#039;&#039;&#039; (RPi2) into a &#039;&#039;&#039;Tailscale exit node&#039;&#039;&#039; for secure remote access to your &#039;&#039;&#039;home network&#039;&#039;&#039;. With this setup, you can log into your home servers, edit your local wiki, or access devices from anywhere using a headless Raspberry Pi 2. Keywords: &#039;&#039;&#039;Raspberry Pi 2 Tailscale setup&#039;&#039;&#039;, &#039;&#039;&#039;headless SSH&#039;&#039;&#039;, &#039;&#039;&#039;home VPN&#039;&#039;&#039;, &#039;&#039;&#039;nmap IP discovery&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Transform your Raspberry Pi 2 into a Tailscale node to create a DIY VPN for your home network. This guide covers enabling SSH at boot for headless login, finding the Pi’s IP with &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt;, and configuring Tailscale as an exit node for remote access to home servers and wikis.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* Raspberry Pi 2 with power supply and microSD card&lt;br /&gt;
* Ubuntu laptop (for SSH and scanning)&lt;br /&gt;
* Internet connection&lt;br /&gt;
* [https://www.raspberrypi.com/software/ Raspberry Pi Imager] installed on your computer&lt;br /&gt;
&lt;br /&gt;
== Step 1: Enable SSH on Boot (Headless Setup) ==&lt;br /&gt;
&lt;br /&gt;
Set up your Raspberry Pi 2 for &#039;&#039;&#039;headless login&#039;&#039;&#039; with SSH enabled at boot using the Raspberry Pi Imager.&lt;br /&gt;
&lt;br /&gt;
# Download and open the &#039;&#039;&#039;Raspberry Pi Imager&#039;&#039;&#039; from [https://www.raspberrypi.com/software/ raspberrypi.com/software/].&lt;br /&gt;
# Select your OS (e.g., Raspberry Pi OS Lite) and storage (microSD card).&lt;br /&gt;
# Click the &amp;quot;Edit Settings&amp;quot; button (gear icon or three dots).&lt;br /&gt;
# In the &amp;quot;General&amp;quot; tab, set a &#039;&#039;&#039;username&#039;&#039;&#039; and &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
# In the &amp;quot;Services&amp;quot; tab, check &#039;&#039;&#039;Enable SSH&#039;&#039;&#039;.&lt;br /&gt;
# Choose &amp;quot;Use password authentication&amp;quot; (or &amp;quot;public-key&amp;quot; if preferred).&lt;br /&gt;
# Click &amp;quot;Save&amp;quot; and write the image to the SD card.&lt;br /&gt;
&lt;br /&gt;
This ensures your RPi2 is SSH-ready without a monitor—perfect for a &#039;&#039;&#039;headless Raspberry Pi setup&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Find the Raspberry Pi IP with nmap ==&lt;br /&gt;
&lt;br /&gt;
Locate your Raspberry Pi 2’s IP address on your home network using &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; from an Ubuntu laptop.&lt;br /&gt;
&lt;br /&gt;
=== Install nmap ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install nmap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Identify Your Router IP ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ip route | grep default&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default via 192.168.0.1 dev wlp3s0 proto dhcp src 192.168.0.40 metric 600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Router IP: &amp;lt;code&amp;gt;192.168.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Laptop IP: &amp;lt;code&amp;gt;192.168.0.40&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Scan the Network ===&lt;br /&gt;
&lt;br /&gt;
Scan your network before booting the Pi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nmap -sn 192.168.0.1/24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-03 10:07 GMT&lt;br /&gt;
Nmap scan report for _gateway (192.168.0.1)&lt;br /&gt;
Host is up (0.0038s latency).&lt;br /&gt;
MAC Address: AC:F8:CC:DD:EE:FF (Arris Group)&lt;br /&gt;
Nmap scan report for 192.168.0.40&lt;br /&gt;
Host is up.&lt;br /&gt;
Nmap done: 256 IP addresses (12 hosts up) scanned in 2.68 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boot your Raspberry Pi 2, wait 2-3 minutes, and scan again:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nmap -sn 192.168.0.1/24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New device appears:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Nmap scan report for 192.168.0.69&lt;br /&gt;
Host is up (0.015s latency).&lt;br /&gt;
MAC Address: B8:17:CC:DD:CC:BB (Raspberry Pi Foundation)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* RPi2 IP: &amp;lt;code&amp;gt;192.168.0.69&amp;lt;/code&amp;gt; (note this for SSH).&lt;br /&gt;
&lt;br /&gt;
This &#039;&#039;&#039;nmap IP discovery&#039;&#039;&#039; method is ideal for headless Raspberry Pi projects.&lt;br /&gt;
&lt;br /&gt;
== Step 3: Set Up Tailscale on the Raspberry Pi 2 ==&lt;br /&gt;
&lt;br /&gt;
Log into your RPi2 and configure it as a &#039;&#039;&#039;Tailscale exit node&#039;&#039;&#039; for your home network.&lt;br /&gt;
&lt;br /&gt;
=== SSH into the Pi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh $USER@192.168.0.69&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;$USER&amp;lt;/code&amp;gt; with the username set in Step 1.&lt;br /&gt;
&lt;br /&gt;
=== Install Tailscale ===&lt;br /&gt;
&lt;br /&gt;
Add Tailscale’s repository with these commands (run each line separately):&lt;br /&gt;
* &amp;lt;code&amp;gt;curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg &amp;gt;/dev/null&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update and install:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install tailscale&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable IP Forwarding ===&lt;br /&gt;
&lt;br /&gt;
Enable IP forwarding for the exit node (run each line):&lt;br /&gt;
&amp;lt;code&amp;gt;echo &#039;net.ipv4.ip_forward = 1&#039; | sudo tee -a /etc/sysctl.conf&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;echo &#039;net.ipv6.conf.all.forwarding = 1&#039; | sudo tee -a /etc/sysctl.conf&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sudo sysctl -p /etc/sysctl.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start Tailscale as an Exit Node ===&lt;br /&gt;
&lt;br /&gt;
Run Tailscale and advertise your home network:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale up --accept-routes --advertise-routes=192.168.0.0/24 --advertise-exit-node&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the authentication URL output, paste it into a browser, and log in with your Tailscale account.&lt;br /&gt;
&lt;br /&gt;
Get the Tailscale IP:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tailscale ip -4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output: &amp;lt;code&amp;gt;100.115.103.24&amp;lt;/code&amp;gt; (yours will differ).&lt;br /&gt;
&lt;br /&gt;
== Step 4: Connect from Your Laptop ==&lt;br /&gt;
NOTE: you can find your device IP&#039;s from &amp;lt;code&amp;gt;https://login.tailscale.com/admin/machines&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Raspberry_Pi_2_as_a_Tailscale_Exit_Node_for_Home_Network#Install_Tailscale| Use same method as PI to install to laptop]]&lt;br /&gt;
&lt;br /&gt;
Use your laptop as a Tailscale client to access your home network via the RPi2 exit node.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale up --exit-node=100.115.103.24 --exit-node-allow-lan-access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Replace &amp;lt;code&amp;gt;100.115.103.24&amp;lt;/code&amp;gt; with your Pi’s Tailscale IP.&lt;br /&gt;
&lt;br /&gt;
To disconnect:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale down&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 5: Test the Setup ==&lt;br /&gt;
&lt;br /&gt;
Verify the exit node works:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl ifconfig.me&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compare the IP when connected via your home Wi-Fi vs. a mobile hotspot. You should see your home public IP when using the exit node. Now, you can browse your &#039;&#039;&#039;local wiki&#039;&#039;&#039;, log into &#039;&#039;&#039;home servers&#039;&#039;&#039;, or access devices on &amp;lt;code&amp;gt;192.168.0.0/24&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SSH fails:&#039;&#039;&#039; Ensure the username/password match Step 1 settings.&lt;br /&gt;
* &#039;&#039;&#039;Tailscale not connecting:&#039;&#039;&#039; Check your Tailscale account and re-authenticate.&lt;br /&gt;
* &#039;&#039;&#039;IP not found:&#039;&#039;&#039; Re-run &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; or check your router’s DHCP list.&lt;br /&gt;
&lt;br /&gt;
== SEO: Find This Guide Easily ==&lt;br /&gt;
&lt;br /&gt;
Looking to &#039;&#039;&#039;SSH tunnel into your home network safely&#039;&#039;&#039; or set up a &#039;&#039;&#039;Raspberry Pi 2 as a Tailscale exit node&#039;&#039;&#039;? This guide covers everything you need for secure remote access to your &#039;&#039;&#039;home network&#039;&#039;&#039; using a &#039;&#039;&#039;headless Raspberry Pi 2&#039;&#039;&#039;. Key terms to find this page again: &#039;&#039;&#039;Raspberry Pi 2 Tailscale setup&#039;&#039;&#039;, &#039;&#039;&#039;Tailscale exit node tutorial&#039;&#039;&#039;, &#039;&#039;&#039;headless SSH home VPN&#039;&#039;&#039;, &#039;&#039;&#039;nmap IP discovery for Pi&#039;&#039;&#039;, &#039;&#039;&#039;DIY VPN with Raspberry Pi&#039;&#039;&#039;, &#039;&#039;&#039;secure home server access&#039;&#039;&#039;, &#039;&#039;&#039;Tailscale remote access&#039;&#039;&#039;. Whether you’re editing a &#039;&#039;&#039;local wiki&#039;&#039;&#039; or managing devices on your &#039;&#039;&#039;home LAN&#039;&#039;&#039;, this &#039;&#039;&#039;RPi2 Tailscale guide&#039;&#039;&#039; has you covered.&lt;/div&gt;</summary>
		<author><name>Test1</name></author>
	</entry>
	<entry>
		<id>https://www.completenoobs.com/noobs/index.php?title=Ubuntu_Package_Management&amp;diff=487</id>
		<title>Ubuntu Package Management</title>
		<link rel="alternate" type="text/html" href="https://www.completenoobs.com/noobs/index.php?title=Ubuntu_Package_Management&amp;diff=487"/>
		<updated>2025-03-19T17:31:29Z</updated>

		<summary type="html">&lt;p&gt;Test1: /* AppImage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A package management system, also known as a package manager, is a set of tools and processes that automate the installation, upgrading, configuration, and removal of software packages on a computer system. Package management systems simplify the process of managing software by handling package dependencies, versioning, and distribution in a consistent and organized manner.&lt;br /&gt;
&lt;br /&gt;
In the context of operating systems like Linux and Unix, software packages are bundles of files, libraries, executables, and metadata that together comprise a complete application or software component. Package managers are designed to manage these packages by tracking and resolving their dependencies, which are other software components that a package requires to function properly.&lt;br /&gt;
&lt;br /&gt;
Key functions of package management systems include:&lt;br /&gt;
&lt;br /&gt;
:*    Maintaining repositories: Package managers connect to repositories, which are remote servers that store packages and their metadata. Repositories provide a centralized location for users to find, download, and install software packages.&lt;br /&gt;
&lt;br /&gt;
:*    Managing dependencies: When installing or upgrading a package, the package manager ensures that all required dependencies are also installed, updated, or removed as necessary. This helps maintain system stability and prevents conflicts or broken software.&lt;br /&gt;
&lt;br /&gt;
:*    Versioning: Package managers track and manage different versions of software packages, allowing users to install, upgrade, or downgrade specific versions as needed.&lt;br /&gt;
&lt;br /&gt;
:*    Handling package conflicts: Package managers can detect and resolve conflicts between packages, ensuring that the system remains in a consistent state even when multiple packages have overlapping or conflicting requirements.&lt;br /&gt;
&lt;br /&gt;
:*    Streamlining software installation and removal: Package managers automate the process of installing, upgrading, or removing software, making it easy for users to manage software on their systems without manual intervention.&lt;br /&gt;
&lt;br /&gt;
Popular package managers include APT (used in Debian-based distributions), YUM and DNF (used in Red Hat-based distributions), and pacman (used in Arch Linux-based distributions). Each package manager is designed to work with specific package formats (such as .deb or .rpm) and may have its unique commands and features, but their overall purpose remains the same: to simplify and automate the process of managing software on a computer system.&lt;br /&gt;
&lt;br /&gt;
== Package managers ==&lt;br /&gt;
Ubuntu is a popular Linux-based operating system that offers a wide range of applications for users. To install these applications, Ubuntu provides several package managers such as APT, Snap, AppImage, and Flatpak. Each package manager has its own advantages and disadvantages, and it&#039;s important to understand how they work and what they offer in order to choose the best one for your needs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;APT&#039;&#039;&#039; (Advanced Package Tool) is the default package manager for Ubuntu, and it uses a command-line interface to manage packages. APT offers a large selection of packages, and it&#039;s designed to be stable and reliable. &#039;&#039;&#039;Snap&#039;&#039;&#039;, on the other hand, is a newer package manager that offers a more user-friendly interface and sandboxed apps. It also offers automatic updates and rollbacks, making it easy to manage and maintain applications.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AppImage&#039;&#039;&#039; and &#039;&#039;&#039;Flatpak&#039;&#039;&#039; are containerized formats that allow applications to run on multiple Linux distributions without needing to install dependencies. AppImage is a self-contained format that includes all dependencies, making it easy to run on any Linux distribution without needing to install anything. Flatpak, on the other hand, allows for more fine-grained control over dependencies and offers sandboxing and automatic updates.&lt;br /&gt;
&lt;br /&gt;
By understanding the differences between these package managers, you can choose the best one for your needs and enjoy a wide range of applications on Ubuntu.&lt;br /&gt;
&lt;br /&gt;
== Installing and updating software ==&lt;br /&gt;
&lt;br /&gt;
===APT===&lt;br /&gt;
&lt;br /&gt;
====   Update the package index:====&lt;br /&gt;
&lt;br /&gt;
Before installing or updating software, it&#039;s essential to update the package index to ensure you have the latest information about available packages and their versions. Run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command will download package information from your configured repositories and update the local package index.&lt;br /&gt;
&lt;br /&gt;
==== Search APT for packages====&lt;br /&gt;
&lt;br /&gt;
To search for packages in the Ubuntu repository using APT, you can use the apt-cache search command followed by a keyword. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-cache search &amp;lt;package-name&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;package-name&amp;gt; with the name or keyword related to the package you are looking for.&lt;br /&gt;
&lt;br /&gt;
Once you have found the package you want to install, you can install it using the apt-get install or apt install command. &lt;br /&gt;
&lt;br /&gt;
====     Install a new package:====&lt;br /&gt;
&lt;br /&gt;
To install a new package, use the apt install command followed by the package name:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt install &amp;lt;package-name&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;package-name&amp;gt; with the name of the package you want to install. APT will automatically handle the package&#039;s dependencies, installing them if necessary.&lt;br /&gt;
&lt;br /&gt;
====    Update installed packages:====&lt;br /&gt;
&lt;br /&gt;
To update all the installed packages to their latest available versions, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt upgrade&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command will upgrade packages based on the updated package index. It&#039;s a good practice to run this command regularly to keep your system up to date and secure.&lt;br /&gt;
&lt;br /&gt;
====    Update a specific package:====&lt;br /&gt;
&lt;br /&gt;
If you want to update a specific package, use the apt install command again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt install --only-upgrade &amp;lt;package-name&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;package-name&amp;gt; with the name of the package you want to update. This command will only upgrade the specified package if a newer version is available.&lt;br /&gt;
&lt;br /&gt;
====    Remove a package:====&lt;br /&gt;
&lt;br /&gt;
If you want to remove a package, use the apt remove command followed by the package name:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt remove &amp;lt;package-name&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;package-name&amp;gt; with the name of the package you want to remove. Note that this command does not remove the package&#039;s configuration files. If you want to remove the package along with its configuration files, use the apt purge command instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt purge &amp;lt;package-name&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== &#039;&#039;&#039;dpkg&#039;&#039;&#039; remove=====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dpkg -l | grep steam&amp;lt;/code&amp;gt;&lt;br /&gt;
* returns/output&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rc  steam:i386                                    1:1.0.0.74-1ubuntu2                        i386         Valve&#039;s Steam digital software delivery system&lt;br /&gt;
rc  steam-launcher                                1:1.0.0.76                                 all          Launcher for the Steam software distribution service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt remove steam:i386&amp;lt;/code&amp;gt;&lt;br /&gt;
* return output&lt;br /&gt;
&amp;lt;pre&amp;gt;Package &#039;steam:i386&#039; is not installed, so not removed&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;dpkg -l | grep steam&#039;&#039;&#039; command shows that the &#039;&#039;&#039;steam:i386&#039;&#039;&#039; and &#039;&#039;&#039;steam-launcher&#039;&#039;&#039; packages are installed on your system, but when you try to remove them using the &#039;&#039;&#039;apt remove&#039;&#039;&#039; command, you get a message that the packages are not installed.&lt;br /&gt;
&lt;br /&gt;
This can happen if the packages were installed manually using a different method than the standard apt package manager. In this case, the packages were likely installed manually by downloading and installing the Steam installer from the Steam website.&lt;br /&gt;
&lt;br /&gt;
To remove the Steam packages that are installed manually, you can run the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo dpkg -r steam:i386&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo dpkg -r steam-launcher&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use &#039;&#039;&#039;--purge&#039;&#039;&#039; to remove &#039;&#039;&#039;config files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo dpkg --purge steam:i386&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====    Clean up unused dependencies:====&lt;br /&gt;
&lt;br /&gt;
Over time, your system may accumulate unused dependency packages. You can clean up these packages using the apt autoremove command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt autoremove&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command will remove any packages that were installed as dependencies but are no longer needed by any installed software.&lt;br /&gt;
&lt;br /&gt;
==== Install from a &amp;lt;b&amp;gt;.deb&amp;lt;/b&amp;gt; file====&lt;br /&gt;
&lt;br /&gt;
To install a .deb file that you have downloaded or obtained from an external source, you can use the dpkg command. First, navigate to the directory containing the .deb file using the cd command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd /path/to/directory&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, install the .deb file using the dpkg -i command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo dpkg -i &amp;lt;filename.deb&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;filename.deb&amp;gt; with the exact name of the .deb file you want to install.&lt;br /&gt;
&lt;br /&gt;
Note that you can also use &amp;lt;b&amp;gt;path&amp;lt;/b&amp;gt; if you do not want to &amp;lt;b&amp;gt;cd&amp;lt;/b&amp;gt;:&amp;lt;code&amp;gt;sudo dpkg -i /path/to/program.deb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that if the .deb package has any unmet dependencies, the installation may fail. To resolve this issue and automatically install any missing dependencies, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install -f&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt install -f&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install any missing dependencies and complete the installation of the .deb package.&lt;br /&gt;
&lt;br /&gt;
===Managing Package Repositories===&lt;br /&gt;
&lt;br /&gt;
:*    Introduction to Package Repositories&lt;br /&gt;
: Package repositories are online servers that store software packages for installation and updates on Ubuntu systems. Ubuntu uses the Advanced Package Tool (APT) to manage these repositories. The default repositories include Main, Universe, Restricted, and Multiverse. You can also add third-party repositories (PPAs) for additional software.&lt;br /&gt;
&lt;br /&gt;
Default Repositories&lt;br /&gt;
&lt;br /&gt;
:*    Main: Officially supported, open-source software maintained by Canonical.&lt;br /&gt;
:*    Universe: Community-maintained open-source software.&lt;br /&gt;
:*    Restricted: Proprietary drivers and software required for hardware compatibility.&lt;br /&gt;
:*    Multiverse: Software not compliant with the Ubuntu licensing policies.&lt;br /&gt;
&lt;br /&gt;
:*    Updating Package List&lt;br /&gt;
:    Before installing new packages, you should update the package list to fetch the latest information from the repositories.&lt;br /&gt;
&lt;br /&gt;
:*    Open a terminal (Ctrl+Alt+T)&lt;br /&gt;
:*    Run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:    Adding a Personal Package Archive (PPA)&lt;br /&gt;
:    PPAs are third-party repositories that contain software not available in the default repositories.&lt;br /&gt;
&lt;br /&gt;
:*    To add a PPA, open a terminal and type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo add-apt-repository ppa:user/ppa-name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;user&amp;quot; and &amp;quot;ppa-name&amp;quot; with the appropriate values.&lt;br /&gt;
&lt;br /&gt;
Update the package list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Removing a PPA====&lt;br /&gt;
&lt;br /&gt;
:*    To remove a PPA, open a terminal and type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo add-apt-repository --remove ppa:user/ppa-name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;user&amp;quot; and &amp;quot;ppa-name&amp;quot; with the appropriate values.&lt;br /&gt;
&lt;br /&gt;
Update the package list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Example: Finding the &#039;&#039;&#039;ppa:user/ppa-name&#039;&#039;&#039; to remove:&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
* when i try an &#039;&#039;&#039;apt update&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 The following signatures couldn&#039;t be verified because the public key is not available: NO_PUBKEY F24AEA9FB05498B7&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
W: GPG error: https://repo.steampowered.com/steam stable InRelease: The following signatures couldn&#039;t be verified because the public key is not available: NO_PUBKEY F24AEA9FB05498B7&lt;br /&gt;
E: The repository &#039;https://repo.steampowered.com/steam stable InRelease&#039; is not signed.&lt;br /&gt;
N: Updating from such a repository can&#039;t be done securely, and is therefore disabled by default.&lt;br /&gt;
N: See apt-secure(8) manpage for repository creation and user configuration details.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Finding the &#039;&#039;&#039;package&#039;s&#039;&#039;&#039; and the &#039;&#039;&#039;repository&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: Check which packages are installed from the repository with the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dpkg --list | grep steam&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Remove any packages that are installed from the repository with the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get remove --purge &amp;lt;package-name&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: Find repository&#039;s&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ls -l /etc/apt/sources.list.d/&amp;lt;/code&amp;gt;&lt;br /&gt;
* Returns:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-rw-r--r-- 1 root root 296 Mar  1 18:55 steam-beta.list&lt;br /&gt;
-rw-r--r-- 1 root root 228 Mar  1 18:55 steam-stable.list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cat /etc/apt/sources.list.d/steam-stable.list&amp;lt;/code&amp;gt;&lt;br /&gt;
* returns:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb [arch=amd64,i386 signed-by=/usr/share/keyrings/steam.gpg] https://repo.steampowered.com/steam/ stable steam&lt;br /&gt;
deb-src [arch=amd64,i386 signed-by=/usr/share/keyrings/steam.gpg] https://repo.steampowered.com/steam/ stable steam&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cat /etc/apt/sources.list.d/steam-beta.list&amp;lt;/code&amp;gt;&lt;br /&gt;
* returns:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Uncomment these lines to try the beta version of the Steam launcher&lt;br /&gt;
#deb [arch=amd64,i386 signed-by=/usr/share/keyrings/steam.gpg] https://repo.steampowered.com/steam/ beta steam&lt;br /&gt;
#deb-src [arch=amd64,i386 signed-by=/usr/share/keyrings/steam.gpg] https://repo.steampowered.com/steam/ beta steam&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Note: In &#039;&#039;&#039;steam-beta.list&#039;&#039;&#039; the lines are commented out with &#039;&#039;&#039;#&#039;&#039;&#039; at the beginning of the line.&lt;br /&gt;
* You can comment out the lines in &#039;&#039;&#039;steam-stable.list&#039;&#039;&#039; and &#039;&#039;&#039;sudo apt update&#039;&#039;&#039; &lt;br /&gt;
* Or you can delete the file &#039;&#039;&#039;steam-stable.list&#039;&#039;&#039; and &#039;&#039;&#039;sudo apt update&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Editing Repository Configuration Files====&lt;br /&gt;
&lt;br /&gt;
The repository configuration files are stored in the &#039;&#039;&#039;/etc/apt/sources.list&#039;&#039;&#039; file and the files inside &#039;&#039;&#039;/etc/apt/sources.list.d/&#039;&#039;&#039; directory.&lt;br /&gt;
:*    To edit the sources.list file, open a terminal and type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo nano /etc/apt/sources.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the necessary changes, save (Ctrl+O), and exit (Ctrl+X).&lt;br /&gt;
Update the package list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Managing Repositories with Software &amp;amp; Updates====&lt;br /&gt;
&lt;br /&gt;
:*    You can also manage repositories using the Software &amp;amp; Updates application.&lt;br /&gt;
:*    Open the application by searching &amp;quot;Software &amp;amp; Updates&amp;quot; in the applications menu.&lt;br /&gt;
:*    In the &amp;quot;Ubuntu Software&amp;quot; tab, you can enable or disable the default repositories.&lt;br /&gt;
:*    In the &amp;quot;Other Software&amp;quot; tab, you can add, edit, or remove third-party repositories.&lt;br /&gt;
:*    After making changes, click &amp;quot;Close&amp;quot; and then click &amp;quot;Reload&amp;quot; to update the package list.&lt;br /&gt;
&lt;br /&gt;
By following this tutorial, you&#039;ll be able to manage package repositories on your Ubuntu system, adding or removing PPAs as needed to install or update software.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Dependency Management====&lt;br /&gt;
&lt;br /&gt;
In Ubuntu, software packages often rely on other packages to function properly. These required packages are called dependencies. The Advanced Package Tool (APT) automatically handles dependency management, ensuring that all required packages are installed or updated when you install, update, or remove a package.&lt;br /&gt;
&lt;br /&gt;
=====    Installing a Package and Its Dependencies=====&lt;br /&gt;
:    When you install a package using APT, it automatically resolves and installs the dependencies.&lt;br /&gt;
&lt;br /&gt;
:*    Open a terminal (Ctrl+Alt+T)&lt;br /&gt;
:*    Install a package and its dependencies using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt install package-name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:    Replace &amp;quot;package-name&amp;quot; with the appropriate package name.&lt;br /&gt;
&lt;br /&gt;
:*    Updating Packages and Dependencies&lt;br /&gt;
:    APT also manages the dependencies while updating packages.&lt;br /&gt;
&lt;br /&gt;
:*    To update all installed packages and their dependencies, run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====    Removing a Package and Unused Dependencies=====&lt;br /&gt;
:    When you remove a package, APT will not automatically remove its dependencies if they are no longer required. To remove unused dependencies, use the &#039;autoremove&#039; command.&lt;br /&gt;
&lt;br /&gt;
:*    To remove a package and its unused dependencies, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt remove package-name &amp;amp;&amp;amp; sudo apt autoremove&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*    Replace &amp;quot;package-name&amp;quot; with the appropriate package name.&lt;br /&gt;
&lt;br /&gt;
:*    Fixing Broken Dependencies&lt;br /&gt;
:    Sometimes, you may encounter broken dependencies due to various reasons, such as interrupted installations or package conflicts. You can use APT to fix these issues.&lt;br /&gt;
&lt;br /&gt;
:*    To fix broken dependencies, run the following commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    sudo apt update&lt;br /&gt;
    sudo apt install -f&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====    Listing Dependencies of a Package =====&lt;br /&gt;
:    You can use the &#039;&#039;&#039;apt-cache&#039;&#039;&#039; command to list the dependencies of a specific package without installing it.&lt;br /&gt;
&lt;br /&gt;
:*    To list the dependencies, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-cache depends package-name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*    Replace &amp;quot;package-name&amp;quot; with the appropriate package name.&lt;br /&gt;
&lt;br /&gt;
=====    Listing Reverse Dependencies=====&lt;br /&gt;
:    Reverse dependencies are packages that depend on a specific package. You can list them using the &#039;apt-cache&#039; command.&lt;br /&gt;
&lt;br /&gt;
:*    To list reverse dependencies, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt-cache rdepends package-name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;quot;package-name&amp;quot; with the appropriate package name.&lt;br /&gt;
&lt;br /&gt;
====Create a deb package====&lt;br /&gt;
&lt;br /&gt;
====Create deb repository====&lt;br /&gt;
&lt;br /&gt;
===Snaps===&lt;br /&gt;
&lt;br /&gt;
Ubuntu Snap packages are a universal packaging format designed to work across different Linux distributions. Snap packages are self-contained and automatically updated, which makes them a convenient choice for both sysadmins and new users. Here&#039;s an in-depth guide to help you understand and use Snap packages in Ubuntu:&lt;br /&gt;
&lt;br /&gt;
====     Installation of Snapd:====&lt;br /&gt;
&lt;br /&gt;
Before you can manage Snap packages, you need to have the snapd service installed on your Ubuntu system. It usually comes pre-installed on recent versions of Ubuntu. &lt;br /&gt;
&lt;br /&gt;
Check &amp;lt;b&amp;gt;snapd&amp;lt;/b&amp;gt; is installed on your system with:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;snap --version&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, if it&#039;s not installed, you can install it using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install snapd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====    Searching for Snap packages:====&lt;br /&gt;
&lt;br /&gt;
To search for available Snap packages, use the snap find command followed by a keyword:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;snap find &amp;lt;keyword&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;keyword&amp;gt; with the name or keyword related to the package you are looking for.&lt;br /&gt;
&lt;br /&gt;
====    Installing Snap packages:====&lt;br /&gt;
&lt;br /&gt;
To install a Snap package, use the snap install command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo snap install &amp;lt;snap-package-name&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;snap-package-name&amp;gt; with the exact name of the Snap package you want to install.&lt;br /&gt;
&lt;br /&gt;
====    Listing installed Snap packages:====&lt;br /&gt;
&lt;br /&gt;
To see a list of installed Snap packages on your system, use the snap list command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;snap list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====    Updating Snap packages====&lt;br /&gt;
&lt;br /&gt;
Snap packages are updated automatically by default. However, if you want to manually update a specific Snap package, you can use the snap refresh command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo snap refresh &amp;lt;snap-package-name&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To update all Snap packages on your system, simply run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo snap refresh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====    Removing Snap packages====&lt;br /&gt;
&lt;br /&gt;
To remove an installed Snap package, use the snap remove command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo snap remove &amp;lt;snap-package-name&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;snap-package-name&amp;gt; with the exact name of the Snap package you want to remove.&lt;br /&gt;
&lt;br /&gt;
==== Removing Snap and also delete the package&#039;s data and configuration files====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;snap remove --purge example_package&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: The --purge option is used to specify that you not only want to remove the snap package, but also to delete its associated data and configuration files. This option helps ensure that all remnants of the package are removed from your system, providing a clean uninstall.&lt;br /&gt;
&lt;br /&gt;
====Managing Snap package services====&lt;br /&gt;
&lt;br /&gt;
Some Snap packages provide system services. You can manage these services using the snap services command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;snap services&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will list all services provided by installed Snap packages.&lt;br /&gt;
&lt;br /&gt;
To start, stop, restart, or check the status of a Snap service, use the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo snap start &amp;lt;snap-package-name&amp;gt;&lt;br /&gt;
sudo snap stop &amp;lt;snap-package-name&amp;gt;&lt;br /&gt;
sudo snap restart &amp;lt;snap-package-name&amp;gt;&lt;br /&gt;
sudo snap status &amp;lt;snap-package-name&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;snap-package-name&amp;gt; with the exact name of the Snap package containing the service you want to manage.&lt;br /&gt;
&lt;br /&gt;
====Snap package channels====&lt;br /&gt;
&lt;br /&gt;
Snap packages are distributed through different channels, such as stable, candidate, beta, and edge. By default, the stable channel is used. To install a Snap package from a specific channel, use the --channel option:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo snap install &amp;lt;snap-package-name&amp;gt; --channel=&amp;lt;channel-name&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;snap-package-name&amp;gt; with the name of the Snap package and &amp;lt;channel-name&amp;gt; with the desired channel (e.g., stable, candidate, beta, or edge).&lt;br /&gt;
&lt;br /&gt;
For more information and advanced options, you can refer to the official Snapcraft documentation: https://snapcraft.io/docs&lt;br /&gt;
&lt;br /&gt;
====Create a snap package====&lt;br /&gt;
&lt;br /&gt;
===AppImage===&lt;br /&gt;
&lt;br /&gt;
====Using Terminal====&lt;br /&gt;
* Make executable&lt;br /&gt;
&amp;lt;code&amp;gt;chmod +x program.AppImage&amp;lt;/code&amp;gt;&lt;br /&gt;
* Run&lt;br /&gt;
&amp;lt;code&amp;gt;./program.AppImage&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Flatpak===&lt;/div&gt;</summary>
		<author><name>Test1</name></author>
	</entry>
	<entry>
		<id>https://www.completenoobs.com/noobs/index.php?title=Raspberry_Pi_2_as_a_Tailscale_Exit_Node_for_Home_Network&amp;diff=486</id>
		<title>Raspberry Pi 2 as a Tailscale Exit Node for Home Network</title>
		<link rel="alternate" type="text/html" href="https://www.completenoobs.com/noobs/index.php?title=Raspberry_Pi_2_as_a_Tailscale_Exit_Node_for_Home_Network&amp;diff=486"/>
		<updated>2025-03-19T12:51:24Z</updated>

		<summary type="html">&lt;p&gt;Test1: /* Step 4: Connect from Your Laptop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Raspberry Pi 2 as a Tailscale Exit Node for Home Network =&lt;br /&gt;
&lt;br /&gt;
This tutorial guides you through turning a &#039;&#039;&#039;Raspberry Pi 2&#039;&#039;&#039; (RPi2) into a &#039;&#039;&#039;Tailscale exit node&#039;&#039;&#039; for secure remote access to your &#039;&#039;&#039;home network&#039;&#039;&#039;. With this setup, you can log into your home servers, edit your local wiki, or access devices from anywhere using a headless Raspberry Pi 2. Keywords: &#039;&#039;&#039;Raspberry Pi 2 Tailscale setup&#039;&#039;&#039;, &#039;&#039;&#039;headless SSH&#039;&#039;&#039;, &#039;&#039;&#039;home VPN&#039;&#039;&#039;, &#039;&#039;&#039;nmap IP discovery&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Transform your Raspberry Pi 2 into a Tailscale node to create a DIY VPN for your home network. This guide covers enabling SSH at boot for headless login, finding the Pi’s IP with &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt;, and configuring Tailscale as an exit node for remote access to home servers and wikis.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* Raspberry Pi 2 with power supply and microSD card&lt;br /&gt;
* Ubuntu laptop (for SSH and scanning)&lt;br /&gt;
* Internet connection&lt;br /&gt;
* [https://www.raspberrypi.com/software/ Raspberry Pi Imager] installed on your computer&lt;br /&gt;
&lt;br /&gt;
== Step 1: Enable SSH on Boot (Headless Setup) ==&lt;br /&gt;
&lt;br /&gt;
Set up your Raspberry Pi 2 for &#039;&#039;&#039;headless login&#039;&#039;&#039; with SSH enabled at boot using the Raspberry Pi Imager.&lt;br /&gt;
&lt;br /&gt;
# Download and open the &#039;&#039;&#039;Raspberry Pi Imager&#039;&#039;&#039; from [https://www.raspberrypi.com/software/ raspberrypi.com/software/].&lt;br /&gt;
# Select your OS (e.g., Raspberry Pi OS Lite) and storage (microSD card).&lt;br /&gt;
# Click the &amp;quot;Edit Settings&amp;quot; button (gear icon or three dots).&lt;br /&gt;
# In the &amp;quot;General&amp;quot; tab, set a &#039;&#039;&#039;username&#039;&#039;&#039; and &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
# In the &amp;quot;Services&amp;quot; tab, check &#039;&#039;&#039;Enable SSH&#039;&#039;&#039;.&lt;br /&gt;
# Choose &amp;quot;Use password authentication&amp;quot; (or &amp;quot;public-key&amp;quot; if preferred).&lt;br /&gt;
# Click &amp;quot;Save&amp;quot; and write the image to the SD card.&lt;br /&gt;
&lt;br /&gt;
This ensures your RPi2 is SSH-ready without a monitor—perfect for a &#039;&#039;&#039;headless Raspberry Pi setup&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Find the Raspberry Pi IP with nmap ==&lt;br /&gt;
&lt;br /&gt;
Locate your Raspberry Pi 2’s IP address on your home network using &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; from an Ubuntu laptop.&lt;br /&gt;
&lt;br /&gt;
=== Install nmap ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install nmap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Identify Your Router IP ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ip route | grep default&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default via 192.168.0.1 dev wlp3s0 proto dhcp src 192.168.0.40 metric 600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Router IP: &amp;lt;code&amp;gt;192.168.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Laptop IP: &amp;lt;code&amp;gt;192.168.0.40&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Scan the Network ===&lt;br /&gt;
&lt;br /&gt;
Scan your network before booting the Pi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nmap -sn 192.168.0.1/24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-03 10:07 GMT&lt;br /&gt;
Nmap scan report for _gateway (192.168.0.1)&lt;br /&gt;
Host is up (0.0038s latency).&lt;br /&gt;
MAC Address: AC:F8:CC:DD:EE:FF (Arris Group)&lt;br /&gt;
Nmap scan report for 192.168.0.40&lt;br /&gt;
Host is up.&lt;br /&gt;
Nmap done: 256 IP addresses (12 hosts up) scanned in 2.68 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boot your Raspberry Pi 2, wait 2-3 minutes, and scan again:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nmap -sn 192.168.0.1/24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New device appears:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Nmap scan report for 192.168.0.69&lt;br /&gt;
Host is up (0.015s latency).&lt;br /&gt;
MAC Address: B8:17:CC:DD:CC:BB (Raspberry Pi Foundation)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* RPi2 IP: &amp;lt;code&amp;gt;192.168.0.69&amp;lt;/code&amp;gt; (note this for SSH).&lt;br /&gt;
&lt;br /&gt;
This &#039;&#039;&#039;nmap IP discovery&#039;&#039;&#039; method is ideal for headless Raspberry Pi projects.&lt;br /&gt;
&lt;br /&gt;
== Step 3: Set Up Tailscale on the Raspberry Pi 2 ==&lt;br /&gt;
&lt;br /&gt;
Log into your RPi2 and configure it as a &#039;&#039;&#039;Tailscale exit node&#039;&#039;&#039; for your home network.&lt;br /&gt;
&lt;br /&gt;
=== SSH into the Pi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh $USER@192.168.0.69&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;$USER&amp;lt;/code&amp;gt; with the username set in Step 1.&lt;br /&gt;
&lt;br /&gt;
=== Install Tailscale ===&lt;br /&gt;
&lt;br /&gt;
Add Tailscale’s repository with these commands (run each line separately):&lt;br /&gt;
* &amp;lt;code&amp;gt;curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg &amp;gt;/dev/null&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update and install:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install tailscale&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable IP Forwarding ===&lt;br /&gt;
&lt;br /&gt;
Enable IP forwarding for the exit node (run each line):&lt;br /&gt;
&amp;lt;code&amp;gt;echo &#039;net.ipv4.ip_forward = 1&#039; | sudo tee -a /etc/sysctl.conf&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;echo &#039;net.ipv6.conf.all.forwarding = 1&#039; | sudo tee -a /etc/sysctl.conf&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sudo sysctl -p /etc/sysctl.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start Tailscale as an Exit Node ===&lt;br /&gt;
&lt;br /&gt;
Run Tailscale and advertise your home network:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale up --accept-routes --advertise-routes=192.168.0.0/24 --advertise-exit-node&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the authentication URL output, paste it into a browser, and log in with your Tailscale account.&lt;br /&gt;
&lt;br /&gt;
Get the Tailscale IP:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tailscale ip -4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output: &amp;lt;code&amp;gt;100.115.103.24&amp;lt;/code&amp;gt; (yours will differ).&lt;br /&gt;
&lt;br /&gt;
== Step 4: Connect from Your Laptop ==&lt;br /&gt;
NOTE: you can find your device IP&#039;s from &amp;lt;code&amp;gt;https://login.tailscale.com/admin/machines&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Raspberry_Pi_2_as_a_Tailscale_Exit_Node_for_Home_Network#Install_Tailscale| Use same method as PI to install to laptop]]&lt;br /&gt;
&lt;br /&gt;
Use your laptop as a Tailscale client to access your home network via the RPi2 exit node.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale up --exit-node=100.115.103.24 --exit-node-allow-lan-access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Replace &amp;lt;code&amp;gt;100.115.103.24&amp;lt;/code&amp;gt; with your Pi’s Tailscale IP.&lt;br /&gt;
&lt;br /&gt;
To disconnect:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale down&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 5: Test the Setup ==&lt;br /&gt;
&lt;br /&gt;
Verify the exit node works:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl ifconfig.me&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compare the IP when connected via your home Wi-Fi vs. a mobile hotspot. You should see your home public IP when using the exit node. Now, you can browse your &#039;&#039;&#039;local wiki&#039;&#039;&#039;, log into &#039;&#039;&#039;home servers&#039;&#039;&#039;, or access devices on &amp;lt;code&amp;gt;192.168.0.0/24&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SSH fails:&#039;&#039;&#039; Ensure the username/password match Step 1 settings.&lt;br /&gt;
* &#039;&#039;&#039;Tailscale not connecting:&#039;&#039;&#039; Check your Tailscale account and re-authenticate.&lt;br /&gt;
* &#039;&#039;&#039;IP not found:&#039;&#039;&#039; Re-run &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; or check your router’s DHCP list.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Your Raspberry Pi 2 is now a &#039;&#039;&#039;Tailscale exit node&#039;&#039;&#039;, providing secure remote access to your home network. This &#039;&#039;&#039;RPi2 Tailscale tutorial&#039;&#039;&#039; is perfect for DIY VPN enthusiasts wanting to access home servers or wikis from anywhere.&lt;br /&gt;
&lt;br /&gt;
Keywords: &#039;&#039;&#039;Raspberry Pi 2 VPN&#039;&#039;&#039;, &#039;&#039;&#039;Tailscale home network&#039;&#039;&#039;, &#039;&#039;&#039;headless Pi setup&#039;&#039;&#039;, &#039;&#039;&#039;remote access tutorial&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Test1</name></author>
	</entry>
	<entry>
		<id>https://www.completenoobs.com/noobs/index.php?title=Raspberry_Pi_2_as_a_Tailscale_Exit_Node_for_Home_Network&amp;diff=485</id>
		<title>Raspberry Pi 2 as a Tailscale Exit Node for Home Network</title>
		<link rel="alternate" type="text/html" href="https://www.completenoobs.com/noobs/index.php?title=Raspberry_Pi_2_as_a_Tailscale_Exit_Node_for_Home_Network&amp;diff=485"/>
		<updated>2025-03-19T12:48:27Z</updated>

		<summary type="html">&lt;p&gt;Test1: /* Install Tailscale */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Raspberry Pi 2 as a Tailscale Exit Node for Home Network =&lt;br /&gt;
&lt;br /&gt;
This tutorial guides you through turning a &#039;&#039;&#039;Raspberry Pi 2&#039;&#039;&#039; (RPi2) into a &#039;&#039;&#039;Tailscale exit node&#039;&#039;&#039; for secure remote access to your &#039;&#039;&#039;home network&#039;&#039;&#039;. With this setup, you can log into your home servers, edit your local wiki, or access devices from anywhere using a headless Raspberry Pi 2. Keywords: &#039;&#039;&#039;Raspberry Pi 2 Tailscale setup&#039;&#039;&#039;, &#039;&#039;&#039;headless SSH&#039;&#039;&#039;, &#039;&#039;&#039;home VPN&#039;&#039;&#039;, &#039;&#039;&#039;nmap IP discovery&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Transform your Raspberry Pi 2 into a Tailscale node to create a DIY VPN for your home network. This guide covers enabling SSH at boot for headless login, finding the Pi’s IP with &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt;, and configuring Tailscale as an exit node for remote access to home servers and wikis.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* Raspberry Pi 2 with power supply and microSD card&lt;br /&gt;
* Ubuntu laptop (for SSH and scanning)&lt;br /&gt;
* Internet connection&lt;br /&gt;
* [https://www.raspberrypi.com/software/ Raspberry Pi Imager] installed on your computer&lt;br /&gt;
&lt;br /&gt;
== Step 1: Enable SSH on Boot (Headless Setup) ==&lt;br /&gt;
&lt;br /&gt;
Set up your Raspberry Pi 2 for &#039;&#039;&#039;headless login&#039;&#039;&#039; with SSH enabled at boot using the Raspberry Pi Imager.&lt;br /&gt;
&lt;br /&gt;
# Download and open the &#039;&#039;&#039;Raspberry Pi Imager&#039;&#039;&#039; from [https://www.raspberrypi.com/software/ raspberrypi.com/software/].&lt;br /&gt;
# Select your OS (e.g., Raspberry Pi OS Lite) and storage (microSD card).&lt;br /&gt;
# Click the &amp;quot;Edit Settings&amp;quot; button (gear icon or three dots).&lt;br /&gt;
# In the &amp;quot;General&amp;quot; tab, set a &#039;&#039;&#039;username&#039;&#039;&#039; and &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
# In the &amp;quot;Services&amp;quot; tab, check &#039;&#039;&#039;Enable SSH&#039;&#039;&#039;.&lt;br /&gt;
# Choose &amp;quot;Use password authentication&amp;quot; (or &amp;quot;public-key&amp;quot; if preferred).&lt;br /&gt;
# Click &amp;quot;Save&amp;quot; and write the image to the SD card.&lt;br /&gt;
&lt;br /&gt;
This ensures your RPi2 is SSH-ready without a monitor—perfect for a &#039;&#039;&#039;headless Raspberry Pi setup&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Find the Raspberry Pi IP with nmap ==&lt;br /&gt;
&lt;br /&gt;
Locate your Raspberry Pi 2’s IP address on your home network using &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; from an Ubuntu laptop.&lt;br /&gt;
&lt;br /&gt;
=== Install nmap ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install nmap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Identify Your Router IP ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ip route | grep default&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default via 192.168.0.1 dev wlp3s0 proto dhcp src 192.168.0.40 metric 600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Router IP: &amp;lt;code&amp;gt;192.168.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Laptop IP: &amp;lt;code&amp;gt;192.168.0.40&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Scan the Network ===&lt;br /&gt;
&lt;br /&gt;
Scan your network before booting the Pi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nmap -sn 192.168.0.1/24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-03 10:07 GMT&lt;br /&gt;
Nmap scan report for _gateway (192.168.0.1)&lt;br /&gt;
Host is up (0.0038s latency).&lt;br /&gt;
MAC Address: AC:F8:CC:DD:EE:FF (Arris Group)&lt;br /&gt;
Nmap scan report for 192.168.0.40&lt;br /&gt;
Host is up.&lt;br /&gt;
Nmap done: 256 IP addresses (12 hosts up) scanned in 2.68 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boot your Raspberry Pi 2, wait 2-3 minutes, and scan again:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nmap -sn 192.168.0.1/24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New device appears:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Nmap scan report for 192.168.0.69&lt;br /&gt;
Host is up (0.015s latency).&lt;br /&gt;
MAC Address: B8:17:CC:DD:CC:BB (Raspberry Pi Foundation)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* RPi2 IP: &amp;lt;code&amp;gt;192.168.0.69&amp;lt;/code&amp;gt; (note this for SSH).&lt;br /&gt;
&lt;br /&gt;
This &#039;&#039;&#039;nmap IP discovery&#039;&#039;&#039; method is ideal for headless Raspberry Pi projects.&lt;br /&gt;
&lt;br /&gt;
== Step 3: Set Up Tailscale on the Raspberry Pi 2 ==&lt;br /&gt;
&lt;br /&gt;
Log into your RPi2 and configure it as a &#039;&#039;&#039;Tailscale exit node&#039;&#039;&#039; for your home network.&lt;br /&gt;
&lt;br /&gt;
=== SSH into the Pi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh $USER@192.168.0.69&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;$USER&amp;lt;/code&amp;gt; with the username set in Step 1.&lt;br /&gt;
&lt;br /&gt;
=== Install Tailscale ===&lt;br /&gt;
&lt;br /&gt;
Add Tailscale’s repository with these commands (run each line separately):&lt;br /&gt;
* &amp;lt;code&amp;gt;curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg &amp;gt;/dev/null&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update and install:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install tailscale&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable IP Forwarding ===&lt;br /&gt;
&lt;br /&gt;
Enable IP forwarding for the exit node (run each line):&lt;br /&gt;
&amp;lt;code&amp;gt;echo &#039;net.ipv4.ip_forward = 1&#039; | sudo tee -a /etc/sysctl.conf&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;echo &#039;net.ipv6.conf.all.forwarding = 1&#039; | sudo tee -a /etc/sysctl.conf&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sudo sysctl -p /etc/sysctl.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start Tailscale as an Exit Node ===&lt;br /&gt;
&lt;br /&gt;
Run Tailscale and advertise your home network:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale up --accept-routes --advertise-routes=192.168.0.0/24 --advertise-exit-node&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the authentication URL output, paste it into a browser, and log in with your Tailscale account.&lt;br /&gt;
&lt;br /&gt;
Get the Tailscale IP:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tailscale ip -4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output: &amp;lt;code&amp;gt;100.115.103.24&amp;lt;/code&amp;gt; (yours will differ).&lt;br /&gt;
&lt;br /&gt;
== Step 4: Connect from Your Laptop ==&lt;br /&gt;
NOTE: you can find your device IP&#039;s from &amp;lt;code&amp;gt;https://login.tailscale.com/admin/machines&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use your laptop as a Tailscale client to access your home network via the RPi2 exit node.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale up --exit-node=100.115.103.24 --exit-node-allow-lan-access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Replace &amp;lt;code&amp;gt;100.115.103.24&amp;lt;/code&amp;gt; with your Pi’s Tailscale IP.&lt;br /&gt;
&lt;br /&gt;
To disconnect:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale down&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 5: Test the Setup ==&lt;br /&gt;
&lt;br /&gt;
Verify the exit node works:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl ifconfig.me&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compare the IP when connected via your home Wi-Fi vs. a mobile hotspot. You should see your home public IP when using the exit node. Now, you can browse your &#039;&#039;&#039;local wiki&#039;&#039;&#039;, log into &#039;&#039;&#039;home servers&#039;&#039;&#039;, or access devices on &amp;lt;code&amp;gt;192.168.0.0/24&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SSH fails:&#039;&#039;&#039; Ensure the username/password match Step 1 settings.&lt;br /&gt;
* &#039;&#039;&#039;Tailscale not connecting:&#039;&#039;&#039; Check your Tailscale account and re-authenticate.&lt;br /&gt;
* &#039;&#039;&#039;IP not found:&#039;&#039;&#039; Re-run &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; or check your router’s DHCP list.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Your Raspberry Pi 2 is now a &#039;&#039;&#039;Tailscale exit node&#039;&#039;&#039;, providing secure remote access to your home network. This &#039;&#039;&#039;RPi2 Tailscale tutorial&#039;&#039;&#039; is perfect for DIY VPN enthusiasts wanting to access home servers or wikis from anywhere.&lt;br /&gt;
&lt;br /&gt;
Keywords: &#039;&#039;&#039;Raspberry Pi 2 VPN&#039;&#039;&#039;, &#039;&#039;&#039;Tailscale home network&#039;&#039;&#039;, &#039;&#039;&#039;headless Pi setup&#039;&#039;&#039;, &#039;&#039;&#039;remote access tutorial&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Test1</name></author>
	</entry>
	<entry>
		<id>https://www.completenoobs.com/noobs/index.php?title=Raspberry_Pi_2_as_a_Tailscale_Exit_Node_for_Home_Network&amp;diff=484</id>
		<title>Raspberry Pi 2 as a Tailscale Exit Node for Home Network</title>
		<link rel="alternate" type="text/html" href="https://www.completenoobs.com/noobs/index.php?title=Raspberry_Pi_2_as_a_Tailscale_Exit_Node_for_Home_Network&amp;diff=484"/>
		<updated>2025-03-19T12:10:09Z</updated>

		<summary type="html">&lt;p&gt;Test1: /* Step 4: Connect from Your Laptop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Raspberry Pi 2 as a Tailscale Exit Node for Home Network =&lt;br /&gt;
&lt;br /&gt;
This tutorial guides you through turning a &#039;&#039;&#039;Raspberry Pi 2&#039;&#039;&#039; (RPi2) into a &#039;&#039;&#039;Tailscale exit node&#039;&#039;&#039; for secure remote access to your &#039;&#039;&#039;home network&#039;&#039;&#039;. With this setup, you can log into your home servers, edit your local wiki, or access devices from anywhere using a headless Raspberry Pi 2. Keywords: &#039;&#039;&#039;Raspberry Pi 2 Tailscale setup&#039;&#039;&#039;, &#039;&#039;&#039;headless SSH&#039;&#039;&#039;, &#039;&#039;&#039;home VPN&#039;&#039;&#039;, &#039;&#039;&#039;nmap IP discovery&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Transform your Raspberry Pi 2 into a Tailscale node to create a DIY VPN for your home network. This guide covers enabling SSH at boot for headless login, finding the Pi’s IP with &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt;, and configuring Tailscale as an exit node for remote access to home servers and wikis.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* Raspberry Pi 2 with power supply and microSD card&lt;br /&gt;
* Ubuntu laptop (for SSH and scanning)&lt;br /&gt;
* Internet connection&lt;br /&gt;
* [https://www.raspberrypi.com/software/ Raspberry Pi Imager] installed on your computer&lt;br /&gt;
&lt;br /&gt;
== Step 1: Enable SSH on Boot (Headless Setup) ==&lt;br /&gt;
&lt;br /&gt;
Set up your Raspberry Pi 2 for &#039;&#039;&#039;headless login&#039;&#039;&#039; with SSH enabled at boot using the Raspberry Pi Imager.&lt;br /&gt;
&lt;br /&gt;
# Download and open the &#039;&#039;&#039;Raspberry Pi Imager&#039;&#039;&#039; from [https://www.raspberrypi.com/software/ raspberrypi.com/software/].&lt;br /&gt;
# Select your OS (e.g., Raspberry Pi OS Lite) and storage (microSD card).&lt;br /&gt;
# Click the &amp;quot;Edit Settings&amp;quot; button (gear icon or three dots).&lt;br /&gt;
# In the &amp;quot;General&amp;quot; tab, set a &#039;&#039;&#039;username&#039;&#039;&#039; and &#039;&#039;&#039;password&#039;&#039;&#039;.&lt;br /&gt;
# In the &amp;quot;Services&amp;quot; tab, check &#039;&#039;&#039;Enable SSH&#039;&#039;&#039;.&lt;br /&gt;
# Choose &amp;quot;Use password authentication&amp;quot; (or &amp;quot;public-key&amp;quot; if preferred).&lt;br /&gt;
# Click &amp;quot;Save&amp;quot; and write the image to the SD card.&lt;br /&gt;
&lt;br /&gt;
This ensures your RPi2 is SSH-ready without a monitor—perfect for a &#039;&#039;&#039;headless Raspberry Pi setup&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Find the Raspberry Pi IP with nmap ==&lt;br /&gt;
&lt;br /&gt;
Locate your Raspberry Pi 2’s IP address on your home network using &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; from an Ubuntu laptop.&lt;br /&gt;
&lt;br /&gt;
=== Install nmap ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install nmap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Identify Your Router IP ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ip route | grep default&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
default via 192.168.0.1 dev wlp3s0 proto dhcp src 192.168.0.40 metric 600&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Router IP: &amp;lt;code&amp;gt;192.168.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
* Laptop IP: &amp;lt;code&amp;gt;192.168.0.40&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Scan the Network ===&lt;br /&gt;
&lt;br /&gt;
Scan your network before booting the Pi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nmap -sn 192.168.0.1/24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-03 10:07 GMT&lt;br /&gt;
Nmap scan report for _gateway (192.168.0.1)&lt;br /&gt;
Host is up (0.0038s latency).&lt;br /&gt;
MAC Address: AC:F8:CC:DD:EE:FF (Arris Group)&lt;br /&gt;
Nmap scan report for 192.168.0.40&lt;br /&gt;
Host is up.&lt;br /&gt;
Nmap done: 256 IP addresses (12 hosts up) scanned in 2.68 seconds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Boot your Raspberry Pi 2, wait 2-3 minutes, and scan again:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nmap -sn 192.168.0.1/24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New device appears:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Nmap scan report for 192.168.0.69&lt;br /&gt;
Host is up (0.015s latency).&lt;br /&gt;
MAC Address: B8:17:CC:DD:CC:BB (Raspberry Pi Foundation)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* RPi2 IP: &amp;lt;code&amp;gt;192.168.0.69&amp;lt;/code&amp;gt; (note this for SSH).&lt;br /&gt;
&lt;br /&gt;
This &#039;&#039;&#039;nmap IP discovery&#039;&#039;&#039; method is ideal for headless Raspberry Pi projects.&lt;br /&gt;
&lt;br /&gt;
== Step 3: Set Up Tailscale on the Raspberry Pi 2 ==&lt;br /&gt;
&lt;br /&gt;
Log into your RPi2 and configure it as a &#039;&#039;&#039;Tailscale exit node&#039;&#039;&#039; for your home network.&lt;br /&gt;
&lt;br /&gt;
=== SSH into the Pi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh $USER@192.168.0.69&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;$USER&amp;lt;/code&amp;gt; with the username set in Step 1.&lt;br /&gt;
&lt;br /&gt;
=== Install Tailscale ===&lt;br /&gt;
&lt;br /&gt;
Add Tailscale’s repository with these commands (run each line separately):&lt;br /&gt;
&amp;lt;code&amp;gt;curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg &amp;gt;/dev/null&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update and install:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install tailscale&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Enable IP Forwarding ===&lt;br /&gt;
&lt;br /&gt;
Enable IP forwarding for the exit node (run each line):&lt;br /&gt;
&amp;lt;code&amp;gt;echo &#039;net.ipv4.ip_forward = 1&#039; | sudo tee -a /etc/sysctl.conf&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;echo &#039;net.ipv6.conf.all.forwarding = 1&#039; | sudo tee -a /etc/sysctl.conf&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sudo sysctl -p /etc/sysctl.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start Tailscale as an Exit Node ===&lt;br /&gt;
&lt;br /&gt;
Run Tailscale and advertise your home network:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale up --accept-routes --advertise-routes=192.168.0.0/24 --advertise-exit-node&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the authentication URL output, paste it into a browser, and log in with your Tailscale account.&lt;br /&gt;
&lt;br /&gt;
Get the Tailscale IP:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tailscale ip -4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example output: &amp;lt;code&amp;gt;100.115.103.24&amp;lt;/code&amp;gt; (yours will differ).&lt;br /&gt;
&lt;br /&gt;
== Step 4: Connect from Your Laptop ==&lt;br /&gt;
NOTE: you can find your device IP&#039;s from &amp;lt;code&amp;gt;https://login.tailscale.com/admin/machines&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use your laptop as a Tailscale client to access your home network via the RPi2 exit node.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale up --exit-node=100.115.103.24 --exit-node-allow-lan-access&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Replace &amp;lt;code&amp;gt;100.115.103.24&amp;lt;/code&amp;gt; with your Pi’s Tailscale IP.&lt;br /&gt;
&lt;br /&gt;
To disconnect:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale down&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 5: Test the Setup ==&lt;br /&gt;
&lt;br /&gt;
Verify the exit node works:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl ifconfig.me&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compare the IP when connected via your home Wi-Fi vs. a mobile hotspot. You should see your home public IP when using the exit node. Now, you can browse your &#039;&#039;&#039;local wiki&#039;&#039;&#039;, log into &#039;&#039;&#039;home servers&#039;&#039;&#039;, or access devices on &amp;lt;code&amp;gt;192.168.0.0/24&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SSH fails:&#039;&#039;&#039; Ensure the username/password match Step 1 settings.&lt;br /&gt;
* &#039;&#039;&#039;Tailscale not connecting:&#039;&#039;&#039; Check your Tailscale account and re-authenticate.&lt;br /&gt;
* &#039;&#039;&#039;IP not found:&#039;&#039;&#039; Re-run &amp;lt;code&amp;gt;nmap&amp;lt;/code&amp;gt; or check your router’s DHCP list.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Your Raspberry Pi 2 is now a &#039;&#039;&#039;Tailscale exit node&#039;&#039;&#039;, providing secure remote access to your home network. This &#039;&#039;&#039;RPi2 Tailscale tutorial&#039;&#039;&#039; is perfect for DIY VPN enthusiasts wanting to access home servers or wikis from anywhere.&lt;br /&gt;
&lt;br /&gt;
Keywords: &#039;&#039;&#039;Raspberry Pi 2 VPN&#039;&#039;&#039;, &#039;&#039;&#039;Tailscale home network&#039;&#039;&#039;, &#039;&#039;&#039;headless Pi setup&#039;&#039;&#039;, &#039;&#039;&#039;remote access tutorial&#039;&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Test1</name></author>
	</entry>
	<entry>
		<id>https://www.completenoobs.com/noobs/index.php?title=Request_signup_open&amp;diff=454</id>
		<title>Request signup open</title>
		<link rel="alternate" type="text/html" href="https://www.completenoobs.com/noobs/index.php?title=Request_signup_open&amp;diff=454"/>
		<updated>2024-04-25T10:03:41Z</updated>

		<summary type="html">&lt;p&gt;Test1: Created page with &amp;quot;Greetings Fellow Noobs   I been about a year since signups where disabled due to bots. Just re-enabled and somethings seem to have changed and have small bug i have to solve.  Currently signups can be done using &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;request account&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;, in bios section just say something like &amp;#039;hey there i am not a bot fellow noob&amp;#039; and i will approve your sign up.  when you receive an email to verify email it will come with bug i have not had time to fix/solve (at current time)   &amp;lt;pre&amp;gt;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Greetings Fellow Noobs &lt;br /&gt;
&lt;br /&gt;
I been about a year since signups where disabled due to bots. Just re-enabled and somethings seem to have changed and have small bug i have to solve.&lt;br /&gt;
&lt;br /&gt;
Currently signups can be done using &#039;&#039;&#039;&#039;&#039;request account&#039;&#039;&#039;&#039;&#039;, in bios section just say something like &#039;hey there i am not a bot fellow noob&#039; and i will approve your sign up.&lt;br /&gt;
&lt;br /&gt;
when you receive an email to verify email it will come with bug i have not had time to fix/solve (at current time) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http:///noobs/index.php?title=Special:RequestAccount&amp;amp;action=confirmemail&amp;amp;wpEmailToken=3867840feafj04357255f21d5f8a7fa1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
append &amp;lt;code&amp;gt;completenoobs.com&amp;lt;/code&amp;gt; and click link&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://completenoobs.com/noobs/index.php?title=Special:RequestAccount&amp;amp;action=confirmemail&amp;amp;wpEmailToken=3867840feafj04357255f21d5f8a7fa1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Test1</name></author>
	</entry>
	<entry>
		<id>https://www.completenoobs.com/noobs/index.php?title=Main_Page&amp;diff=453</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.completenoobs.com/noobs/index.php?title=Main_Page&amp;diff=453"/>
		<updated>2024-04-25T08:44:35Z</updated>

		<summary type="html">&lt;p&gt;Test1: /* In Concept Mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=In Concept Mode=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Site is Currently under going some changes&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Page links might be broken while we restructure page titles and content, before carrying on with content creation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;DISCLAIMER:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
he content provided on completenoobs.com is for general informational and educational purposes only. The website owner and authors make no representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability or availability with respect to the website or the information, products, services, or related graphics contained on the website for any purpose. Any reliance you place on such information is therefore strictly at your own risk.&lt;br /&gt;
&lt;br /&gt;
In no event will the website owner or authors be liable for any loss or damage including without limitation, indirect or consequential loss or damage, or any loss or damage whatsoever arising from loss of data or profits arising out of, or in connection with, the use of this website.&lt;br /&gt;
&lt;br /&gt;
Through this website you are able to link to other websites which are not under the control of completenoobs.com. We have no control over the nature, content and availability of those sites. The inclusion of any links does not necessarily imply a recommendation or endorse the views expressed within them.&lt;br /&gt;
&lt;br /&gt;
Every effort is made to keep the website up and running smoothly. However, completenoobs.com takes no responsibility for, and will not be liable for, the website being temporarily unavailable due to technical issues beyond our control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Welcome to CompleteNoobs=&lt;br /&gt;
&#039;&#039;A community-driven resource for computer science enthusiasts&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: At present, direct signups are disabled due to bot activity. To create an account on the wiki, please request an account and message user CompleteNoobs on Reddit. Your patience is appreciated as we may not be online all the time.&lt;br /&gt;
&lt;br /&gt;
==We All Start as Noobs==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Greetings, fellow Noobs.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CompleteNoobs is currently in its concept stage, and we are learning as we go. Use the resources provided at your own risk.&lt;br /&gt;
&lt;br /&gt;
Our mission is to make computer science free, open, and reproducible for hobbyists, sysadmins, teachers, students, and anyone interested in the field. CompleteNoobs is a platform to share tutorials, documentation, walkthroughs, computer science courses, notes, and tips acquired along the way, under a Libre License that ensures the following freedoms:&lt;br /&gt;
&lt;br /&gt;
:*    Read&lt;br /&gt;
:*    Edit/Modify&lt;br /&gt;
:*    Copy&lt;br /&gt;
:*    Share freely&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: Content licensed under &#039;&#039;&#039;CC BY-NC-SA&#039;&#039;&#039; can be hosted on the non-commercial fork: https://www.completenoobz.com&lt;br /&gt;
&lt;br /&gt;
The only proprietary aspects of this site are the domain and the trademark &#039;CompleteNoobs&#039;. All content is available for download as an XML file at https://xml.completenoobs.com and is Libre licensed for everyone to use.&lt;br /&gt;
&lt;br /&gt;
https://ipfs.io/ipfs/QmPyUVTQa7gk8kueAnjNDtEReKZ8NnwvFLWv66aCVrq4dy&lt;br /&gt;
&lt;br /&gt;
==Get Involved==&lt;br /&gt;
&lt;br /&gt;
We encourage users to fork this project, download it, and keep a copy on their desktop and/or server.&lt;br /&gt;
&lt;br /&gt;
:* [[Host_Your_Own_Mediawiki_Online|Host Your Own Mediawiki Online]]&lt;br /&gt;
&lt;br /&gt;
:* [[Local_CompleteNoobs_Wiki|Download CompleteNoobs Wiki to your personal computer]]&lt;br /&gt;
&lt;br /&gt;
===Feed Back Received===&lt;br /&gt;
&lt;br /&gt;
*    Clearly indicate the terminal where commands should be entered&lt;br /&gt;
*    Break down content into smaller sections or modules&lt;br /&gt;
*    Provide timestamps in videos for each executed command or step&lt;br /&gt;
*    Organize steps/modules using numbers, and sub-steps within modules using letters (a, b, c, etc.)&lt;br /&gt;
*    Create shorter, focused videos for each step to avoid excessive scrolling&lt;br /&gt;
*    Clarify the use of terminal editors and how to set the $EDITOR variable&lt;br /&gt;
*    Place the EDITOR section at the top of the page and link to nano and vi guide pages&lt;br /&gt;
*    Include instructions on how to verify the completion of each step correctly&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Title Syntax: Title Re-structuring for Enhanced Clarity&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Title Re-structuring for Enhanced Clarity&lt;br /&gt;
&lt;br /&gt;
Due to varying configurations and builds of apps/programs across different OS versions, step-by-step tutorials can be challenging to follow. To improve navigation, adjust page titles to include both the OS version/name and the software used. This will account for changes across different versions.&lt;br /&gt;
&lt;br /&gt;
Example of a re-structured title: &amp;quot;Windows 10 Pro - Adobe Photoshop CC 2021 Tutorial&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If its a small change from each version, fork page to version and make small change.&amp;lt;br&amp;gt;&lt;br /&gt;
If no change, still fork page to new title!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Essential Links==&lt;br /&gt;
:*   [[Ubuntu_Cert_Draft|Ubuntu Cert Course &#039;&#039;&#039;DRAFTING&#039;&#039;&#039;]]&lt;br /&gt;
:*   [[Command_Line_Editors#Set_$EDITOR|Set $EDITOR]]&lt;br /&gt;
:*   [[Main_Index | Main Index Page]]&lt;br /&gt;
:*   [[Special:AllPages | All Pages]]&lt;br /&gt;
:*   [[Wiki_Basic_Syntax|Basic Wiki Syntax]]&lt;br /&gt;
:*   [[COMPLETENOOBS_FUNDING | Support us by using affiliate links or by giving us donations.]]&lt;br /&gt;
&lt;br /&gt;
==Data-Heavy Content==&lt;br /&gt;
To maintain a lightweight XML file, data-heavy content such as pictures, audio, and video can be linked using IPFS and/or Zeronet hashes.&lt;br /&gt;
&lt;br /&gt;
[[IPFS_Basics|IPFS Basics]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IPFS Browser Extensions&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Firefox&#039;&#039;&#039;: https://addons.mozilla.org/en-GB/firefox/addon/ipfs-companion/&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Brave&#039;&#039;&#039;: brave://settings/ipfs and toggle on &amp;quot;IPFS Companion&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Wiki_Basic_Syntax#Youtube_extension_-_Embed_Video|Youtube Embedded Videos also work.]]&lt;br /&gt;
&lt;br /&gt;
==Licenses==&lt;br /&gt;
&lt;br /&gt;
[[LICENCE_HEADERS | Add a license to each page, as long as it adheres to the principles of free copying, modification, and distribution.]]&lt;br /&gt;
&amp;lt;pre&amp;gt;{{:LICENCE_HEADER_CC0}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{:LICENCE_HEADER_CC0}}&lt;br /&gt;
&lt;br /&gt;
{{Special:ContributionScores/10/5}}&lt;/div&gt;</summary>
		<author><name>Test1</name></author>
	</entry>
	<entry>
		<id>https://www.completenoobs.com/noobs/index.php?title=Main_Page&amp;diff=452</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.completenoobs.com/noobs/index.php?title=Main_Page&amp;diff=452"/>
		<updated>2024-04-25T08:44:24Z</updated>

		<summary type="html">&lt;p&gt;Test1: /* In Concept Mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=In Concept Mode=&lt;br /&gt;
test&lt;br /&gt;
&#039;&#039;&#039;Site is Currently under going some changes&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Page links might be broken while we restructure page titles and content, before carrying on with content creation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;DISCLAIMER:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
he content provided on completenoobs.com is for general informational and educational purposes only. The website owner and authors make no representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability or availability with respect to the website or the information, products, services, or related graphics contained on the website for any purpose. Any reliance you place on such information is therefore strictly at your own risk.&lt;br /&gt;
&lt;br /&gt;
In no event will the website owner or authors be liable for any loss or damage including without limitation, indirect or consequential loss or damage, or any loss or damage whatsoever arising from loss of data or profits arising out of, or in connection with, the use of this website.&lt;br /&gt;
&lt;br /&gt;
Through this website you are able to link to other websites which are not under the control of completenoobs.com. We have no control over the nature, content and availability of those sites. The inclusion of any links does not necessarily imply a recommendation or endorse the views expressed within them.&lt;br /&gt;
&lt;br /&gt;
Every effort is made to keep the website up and running smoothly. However, completenoobs.com takes no responsibility for, and will not be liable for, the website being temporarily unavailable due to technical issues beyond our control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Welcome to CompleteNoobs=&lt;br /&gt;
&#039;&#039;A community-driven resource for computer science enthusiasts&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: At present, direct signups are disabled due to bot activity. To create an account on the wiki, please request an account and message user CompleteNoobs on Reddit. Your patience is appreciated as we may not be online all the time.&lt;br /&gt;
&lt;br /&gt;
==We All Start as Noobs==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Greetings, fellow Noobs.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CompleteNoobs is currently in its concept stage, and we are learning as we go. Use the resources provided at your own risk.&lt;br /&gt;
&lt;br /&gt;
Our mission is to make computer science free, open, and reproducible for hobbyists, sysadmins, teachers, students, and anyone interested in the field. CompleteNoobs is a platform to share tutorials, documentation, walkthroughs, computer science courses, notes, and tips acquired along the way, under a Libre License that ensures the following freedoms:&lt;br /&gt;
&lt;br /&gt;
:*    Read&lt;br /&gt;
:*    Edit/Modify&lt;br /&gt;
:*    Copy&lt;br /&gt;
:*    Share freely&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: Content licensed under &#039;&#039;&#039;CC BY-NC-SA&#039;&#039;&#039; can be hosted on the non-commercial fork: https://www.completenoobz.com&lt;br /&gt;
&lt;br /&gt;
The only proprietary aspects of this site are the domain and the trademark &#039;CompleteNoobs&#039;. All content is available for download as an XML file at https://xml.completenoobs.com and is Libre licensed for everyone to use.&lt;br /&gt;
&lt;br /&gt;
https://ipfs.io/ipfs/QmPyUVTQa7gk8kueAnjNDtEReKZ8NnwvFLWv66aCVrq4dy&lt;br /&gt;
&lt;br /&gt;
==Get Involved==&lt;br /&gt;
&lt;br /&gt;
We encourage users to fork this project, download it, and keep a copy on their desktop and/or server.&lt;br /&gt;
&lt;br /&gt;
:* [[Host_Your_Own_Mediawiki_Online|Host Your Own Mediawiki Online]]&lt;br /&gt;
&lt;br /&gt;
:* [[Local_CompleteNoobs_Wiki|Download CompleteNoobs Wiki to your personal computer]]&lt;br /&gt;
&lt;br /&gt;
===Feed Back Received===&lt;br /&gt;
&lt;br /&gt;
*    Clearly indicate the terminal where commands should be entered&lt;br /&gt;
*    Break down content into smaller sections or modules&lt;br /&gt;
*    Provide timestamps in videos for each executed command or step&lt;br /&gt;
*    Organize steps/modules using numbers, and sub-steps within modules using letters (a, b, c, etc.)&lt;br /&gt;
*    Create shorter, focused videos for each step to avoid excessive scrolling&lt;br /&gt;
*    Clarify the use of terminal editors and how to set the $EDITOR variable&lt;br /&gt;
*    Place the EDITOR section at the top of the page and link to nano and vi guide pages&lt;br /&gt;
*    Include instructions on how to verify the completion of each step correctly&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
Title Syntax: Title Re-structuring for Enhanced Clarity&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Title Re-structuring for Enhanced Clarity&lt;br /&gt;
&lt;br /&gt;
Due to varying configurations and builds of apps/programs across different OS versions, step-by-step tutorials can be challenging to follow. To improve navigation, adjust page titles to include both the OS version/name and the software used. This will account for changes across different versions.&lt;br /&gt;
&lt;br /&gt;
Example of a re-structured title: &amp;quot;Windows 10 Pro - Adobe Photoshop CC 2021 Tutorial&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If its a small change from each version, fork page to version and make small change.&amp;lt;br&amp;gt;&lt;br /&gt;
If no change, still fork page to new title!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Essential Links==&lt;br /&gt;
:*   [[Ubuntu_Cert_Draft|Ubuntu Cert Course &#039;&#039;&#039;DRAFTING&#039;&#039;&#039;]]&lt;br /&gt;
:*   [[Command_Line_Editors#Set_$EDITOR|Set $EDITOR]]&lt;br /&gt;
:*   [[Main_Index | Main Index Page]]&lt;br /&gt;
:*   [[Special:AllPages | All Pages]]&lt;br /&gt;
:*   [[Wiki_Basic_Syntax|Basic Wiki Syntax]]&lt;br /&gt;
:*   [[COMPLETENOOBS_FUNDING | Support us by using affiliate links or by giving us donations.]]&lt;br /&gt;
&lt;br /&gt;
==Data-Heavy Content==&lt;br /&gt;
To maintain a lightweight XML file, data-heavy content such as pictures, audio, and video can be linked using IPFS and/or Zeronet hashes.&lt;br /&gt;
&lt;br /&gt;
[[IPFS_Basics|IPFS Basics]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IPFS Browser Extensions&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Firefox&#039;&#039;&#039;: https://addons.mozilla.org/en-GB/firefox/addon/ipfs-companion/&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Brave&#039;&#039;&#039;: brave://settings/ipfs and toggle on &amp;quot;IPFS Companion&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Wiki_Basic_Syntax#Youtube_extension_-_Embed_Video|Youtube Embedded Videos also work.]]&lt;br /&gt;
&lt;br /&gt;
==Licenses==&lt;br /&gt;
&lt;br /&gt;
[[LICENCE_HEADERS | Add a license to each page, as long as it adheres to the principles of free copying, modification, and distribution.]]&lt;br /&gt;
&amp;lt;pre&amp;gt;{{:LICENCE_HEADER_CC0}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{:LICENCE_HEADER_CC0}}&lt;br /&gt;
&lt;br /&gt;
{{Special:ContributionScores/10/5}}&lt;/div&gt;</summary>
		<author><name>Test1</name></author>
	</entry>
</feed>