<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on Midgard Studios</title><link>https://midgardstudios.co.uk/posts/</link><description>Recent content in Posts on Midgard Studios</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>&lt;a href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank" rel="noopener">CC BY-NC 4.0&lt;/a></copyright><lastBuildDate>Wed, 05 Jun 2024 05:00:31 +0100</lastBuildDate><atom:link href="https://midgardstudios.co.uk/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>The Adventures of Finifugal</title><link>https://midgardstudios.co.uk/posts/2019/12/the-adventures-of-finifugal/</link><pubDate>Tue, 31 Dec 2019 17:34:00 +0000</pubDate><guid>https://midgardstudios.co.uk/posts/2019/12/the-adventures-of-finifugal/</guid><description>Update: Sadly this project was canceled But If I get time I will write about the technique used as it was an interesting process.
We are working with an author to create a interactive story book series along side mobile app! The book will feature augmented reality sections accessed via a mobile app.
We can&amp;rsquo;t say too much yet because the project is still evolving.
We are super excited to share the progress so stay tuned for more info</description><content type="html"><![CDATA[<h3 id="update-sadly-this-project-was-canceled">Update: Sadly this project was canceled</h3>
<p>But If I get time I will write about the technique used as it was an interesting process.</p>
<h2 id="we-are-working-with-an-author-to-create-a-interactive-story-book-series-along-side-mobile-app">We are working with an author to create a interactive story book series along side mobile app!</h2>
<p>The book will feature augmented reality sections accessed via a mobile app.</p>
<p>We can&rsquo;t say too much yet because the project is still evolving.</p>
<p>We are super excited to share the progress so stay tuned for more info</p>
<h2 id="hahahugoshortcode2s0hbhb">
    <img src="Page-18.png"  alt="Page-18.png"  class="center"  style="border-radius: 8px;"  />

</h2>
<h2 id="hahahugoshortcode2s1hbhb">
    <img src="Page-15.png"  alt="Page-15.png"  class="center"  style="border-radius: 8px;"  />

</h2>
<h2 id="hahahugoshortcode2s2hbhb">
    <img src="Page-18.png"  alt="Page-18.png"  class="center"  style="border-radius: 8px;"  />

</h2>
<h2 id="hahahugoshortcode2s3hbhb">
    <img src="Page-9.png"  alt="Page-9.png"  class="center"  style="border-radius: 8px;"  />

</h2>
<h2 id="hahahugoshortcode2s4hbhb">
    <img src="Page-4.png"  alt="Page-4.png"  class="center"  style="border-radius: 8px;"  />

</h2>
<h2 id="hahahugoshortcode2s5hbhb">
    <img src="Page-3.png"  alt="Page-3.png"  class="center"  style="border-radius: 8px;"  />

</h2>
]]></content></item><item><title>Unreal Engine per Project IDE Settings</title><link>https://midgardstudios.co.uk/posts/2024/06/unreal-engine-per-project-ide-settings/</link><pubDate>Wed, 05 Jun 2024 05:00:31 +0100</pubDate><guid>https://midgardstudios.co.uk/posts/2024/06/unreal-engine-per-project-ide-settings/</guid><description>Bit of an edge case but I needed to be able to edit two different Unreal Engine projects with different IDEs.
Under the projects folder in /Config/DefaultEditorSettings.ini you can add the lines below depended on the IDE you need.
Set to Rider [/Script/SourceCodeAccess.SourceCodeAccessSettings] PreferredAccessor=Rider Set to VSCode [/Script/SourceCodeAccess.SourceCodeAccessSettings] PreferredAccessor=VisualStudioCode Extras I found in ProjectFileGenerator.cs clionsourcecodeaccessor codelitesourcecodeaccessor xcodesourcecodeaccessor visualstudiocode kdevelopsourcecodeaccessor visualstudiosourcecodeaccessor visualstudio2022</description><content type="html"><![CDATA[<p>Bit of an edge case but I needed to be able to edit two different Unreal Engine projects with different IDEs.</p>
<p>Under the projects folder in <code>/Config/DefaultEditorSettings.ini</code> you can add the lines below depended on the IDE you need.</p>
<h4 id="set-to-rider">Set to Rider</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-ini" data-lang="ini"><span style="display:flex;"><span><span style="color:#66d9ef">[/Script/SourceCodeAccess.SourceCodeAccessSettings]</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">PreferredAccessor</span><span style="color:#f92672">=</span><span style="color:#e6db74">Rider</span>
</span></span></code></pre></div><h4 id="set-to-vscode">Set to VSCode</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-ini" data-lang="ini"><span style="display:flex;"><span><span style="color:#66d9ef">[/Script/SourceCodeAccess.SourceCodeAccessSettings]</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">PreferredAccessor</span><span style="color:#f92672">=</span><span style="color:#e6db74">VisualStudioCode</span>
</span></span></code></pre></div><h4 id="extras-i-found-in-projectfilegeneratorcs">Extras I found in ProjectFileGenerator.cs</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-ini" data-lang="ini"><span style="display:flex;"><span><span style="color:#a6e22e">clionsourcecodeaccessor</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">codelitesourcecodeaccessor</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">xcodesourcecodeaccessor</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">visualstudiocode</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">kdevelopsourcecodeaccessor</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">visualstudiosourcecodeaccessor</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">visualstudio2022</span>
</span></span></code></pre></div>]]></content></item><item><title>Unreal Engine Logging</title><link>https://midgardstudios.co.uk/posts/2024/06/unreal-engine-logging/</link><pubDate>Mon, 03 Jun 2024 01:47:00 +0000</pubDate><guid>https://midgardstudios.co.uk/posts/2024/06/unreal-engine-logging/</guid><description>Log Temp A lot of the time you just need a quick output, LogTemp is useful for this 0 UE_LOG(LogTemp, Warning, TEXT(&amp;#34;Hi, I will apear in the output window&amp;#34;)); Log Variables 0 1 2 3 4 5 6 7 8 9 10 11 12 FString MyString; UE_LOG(LogTemp, Warning, TEXT(&amp;#34;The string value is %s&amp;#34;), *FString MyString;); int32 MyInteger; UE_LOG(LogTemp, Warning, TEXT(&amp;#34;The integer value is: %d&amp;#34;), MyInteger); float MyFloat; UE_LOG(LogTemp, Warning, TEXT(&amp;#34;The float value is: %f&amp;#34;), MyFloat); FVector MyVector; UE_LOG(LogTemp, Warning, TEXT(&amp;#34;The vector value is: %s&amp;#34;), *MyVector.</description><content type="html"><![CDATA[<h2 id="log-temp">Log Temp</h2>
<p>A lot of the time you just need a quick output, LogTemp is useful for this
<div class="highlight"><div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
<table style="border-spacing:0;padding:0;margin:0;border:0;"><tr><td style="vertical-align:top;padding:0;margin:0;border:0;">
<pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;"><code><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">0
</span></code></pre></td>
<td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
<pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span>    UE_LOG(LogTemp, Warning, TEXT(<span style="color:#e6db74">&#34;Hi, I will apear in the output window&#34;</span>));</span></span></code></pre></td></tr></table>
</div>
</div></p>
<h2 id="log-variables">Log Variables</h2>
<div class="highlight"><div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
<table style="border-spacing:0;padding:0;margin:0;border:0;"><tr><td style="vertical-align:top;padding:0;margin:0;border:0;">
<pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;"><code><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 0
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
</span></code></pre></td>
<td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
<pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span>	FString MyString;
</span></span><span style="display:flex;"><span>	UE_LOG(LogTemp, Warning, TEXT(<span style="color:#e6db74">&#34;The string value is %s&#34;</span>), <span style="color:#f92672">*</span>FString MyString;);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    int32 MyInteger;
</span></span><span style="display:flex;"><span>    UE_LOG(LogTemp, Warning, TEXT(<span style="color:#e6db74">&#34;The integer value is: %d&#34;</span>), MyInteger);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">float</span> MyFloat;
</span></span><span style="display:flex;"><span>    UE_LOG(LogTemp, Warning, TEXT(<span style="color:#e6db74">&#34;The float value is: %f&#34;</span>), MyFloat);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    FVector MyVector;
</span></span><span style="display:flex;"><span>    UE_LOG(LogTemp, Warning, TEXT(<span style="color:#e6db74">&#34;The vector value is: %s&#34;</span>), <span style="color:#f92672">*</span>MyVector.ToString());
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    UE_LOG(LogTemp, Warning, TEXT(<span style="color:#e6db74">&#34;Current values are: vector %s, float %f, and integer %d&#34;</span>), <span style="color:#f92672">*</span>YourVector.ToString(), YourFloat, YourInteger);</span></span></code></pre></td></tr></table>
</div>
</div>
<h2 id="define-your-own-category">Define your own category</h2>
<p>Isolating your logs into a category can be super useful when working on specific features.
<div class="highlight"><div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
<table style="border-spacing:0;padding:0;margin:0;border:0;"><tr><td style="vertical-align:top;padding:0;margin:0;border:0;">
<pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;"><code><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">0
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">5
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">6
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">7
</span></code></pre></td>
<td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
<pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span>    <span style="color:#75715e">/** 
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">	 * A macro to declare a logging category as a C++ &#34;extern&#34;, usually declared in the header and paired with DEFINE_LOG_CATEGORY in the source. 
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">	 * Accessible by all files that include the header.
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">	 * @param CategoryName, category to declare
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">	 * @param DefaultVerbosity, default run time verbosity
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">	 * @param CompileTimeVerbosity, maximum verbosity to compile into the code
</span></span></span><span style="display:flex;"><span><span style="color:#75715e">	 **/</span>
</span></span><span style="display:flex;"><span>    DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity);</span></span></code></pre></td></tr></table>
</div>
</div></p>
<h3 id="example">Example</h3>
<div class="highlight"><div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
<table style="border-spacing:0;padding:0;margin:0;border:0;"><tr><td style="vertical-align:top;padding:0;margin:0;border:0;">
<pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;"><code><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 0
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
</span></code></pre></td>
<td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
<pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span>    <span style="color:#75715e">// In .h file
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>    ...
</span></span><span style="display:flex;"><span>    DECLARE_LOG_CATEGORY_EXTERN(MyLogCategory, Log, All);
</span></span><span style="display:flex;"><span>    ...
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#75715e">// In .cpp file
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>    ...
</span></span><span style="display:flex;"><span>    DEFINE_LOG_CATEGORY(MyLogCategory);
</span></span><span style="display:flex;"><span>    ...
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#75715e">// Throughout the code
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>    ...
</span></span><span style="display:flex;"><span>    UE_LOG(MyLogCategory, Warning, TEXT(<span style="color:#e6db74">&#34;Hi, I will apear in the custom category&#34;</span>));</span></span></code></pre></td></tr></table>
</div>
</div>
<h3 id="verbose">Verbose</h3>
<p>In your projects DefaultEngine.ini set can change the verbosity by changing the following:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-ini" data-lang="ini"><span style="display:flex;"><span><span style="color:#66d9ef">[Core.Log]</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">LogStreaming</span><span style="color:#f92672">=</span><span style="color:#e6db74">Log</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-ini" data-lang="ini"><span style="display:flex;"><span><span style="color:#66d9ef">[Core.Log]</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">LogStreaming</span><span style="color:#f92672">=</span><span style="color:#e6db74">Verbose</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-ini" data-lang="ini"><span style="display:flex;"><span><span style="color:#66d9ef">[Core.Log]</span>
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">LogStreaming</span><span style="color:#f92672">=</span><span style="color:#e6db74">VeryVerbose</span>
</span></span></code></pre></div><h2 id="onscreen-messages">Onscreen Messages</h2>
<div class="highlight"><div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
<table style="border-spacing:0;padding:0;margin:0;border:0;"><tr><td style="vertical-align:top;padding:0;margin:0;border:0;">
<pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;"><code><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">0
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1
</span></code></pre></td>
<td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
<pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> (GEngine)
</span></span><span style="display:flex;"><span>        GEngine<span style="color:#f92672">-&gt;</span>AddOnScreenDebugMessage(<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>, <span style="color:#ae81ff">15.0f</span>, FColor<span style="color:#f92672">::</span>Red, [Your String Here]);</span></span></code></pre></td></tr></table>
</div>
</div>
<div class="highlight"><div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
<table style="border-spacing:0;padding:0;margin:0;border:0;"><tr><td style="vertical-align:top;padding:0;margin:0;border:0;">
<pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;"><code><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">0
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1
</span></code></pre></td>
<td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
<pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span>	<span style="color:#66d9ef">if</span>(GEngine)
</span></span><span style="display:flex;"><span>	     GEngine<span style="color:#f92672">-&gt;</span>AddOnScreenDebugMessage(<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>, <span style="color:#ae81ff">15.0f</span>, FColor<span style="color:#f92672">::</span>Yellow, TEXT(<span style="color:#e6db74">&#34;Some yellow text on screen&#34;</span>));</span></span></code></pre></td></tr></table>
</div>
</div>
<div class="highlight"><div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
<table style="border-spacing:0;padding:0;margin:0;border:0;"><tr><td style="vertical-align:top;padding:0;margin:0;border:0;">
<pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;"><code><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">0
</span><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1
</span></code></pre></td>
<td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
<pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;"><code class="language-cpp" data-lang="cpp"><span style="display:flex;"><span>	<span style="color:#66d9ef">if</span>(GEngine)
</span></span><span style="display:flex;"><span>	     GEngine<span style="color:#f92672">-&gt;</span>AddOnScreenDebugMessage(<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>, <span style="color:#ae81ff">15.0f</span>, FColor<span style="color:#f92672">::</span>Yellow, FString<span style="color:#f92672">::</span>Printf(TEXT(<span style="color:#e6db74">&#34;Example text that prints a float: %f&#34;</span>), [My Float Variable]));</span></span></code></pre></td></tr></table>
</div>
</div>
<h2 id="blueprint-logging">Blueprint Logging</h2>
<p>Graph provided by DevBastian <a href="https://www.youtube.com/@bastiandev">Check out his youtube channel here</a></p>

<iframe src="https://blueprintue.com/render/2nln_5pu/" scrolling="no" allowfullscreen width="100%" height="500px" frameborder="0" class="ueblueprint"></iframe>
]]></content></item><item><title>fail2ban</title><link>https://midgardstudios.co.uk/posts/2022/02/fail2ban/</link><pubDate>Wed, 16 Feb 2022 06:03:00 +0000</pubDate><guid>https://midgardstudios.co.uk/posts/2022/02/fail2ban/</guid><description>Installation Debian | Ubuntu
sudo apt-get install fail2ban Prepare main configuration file sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local Edit the configuration file jail.local, the following parameters can be adjusted bantime = 720m # How long to block an abusive IP findtime = 120m # Time period to check the connections maxretry = 3 # Within the above time period, block the abusive IP if the number of the abusive IP connections reaches the maxretry banaction = ufw banaction_allports = ufw destemail = example@example.</description><content type="html"><![CDATA[<h2 id="installation">Installation</h2>
<p>Debian | Ubuntu</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt-get install fail2ban
</span></span></code></pre></div><h2 id="prepare-main-configuration-file">Prepare main configuration file</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
</span></span></code></pre></div><h2 id="edit-the-configuration-file-jaillocal-the-following-parameters-can-be-adjusted">Edit the configuration file jail.local, the following parameters can be adjusted</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>bantime <span style="color:#f92672">=</span> 720m <span style="color:#75715e"># How long to block an abusive IP</span>
</span></span><span style="display:flex;"><span>findtime <span style="color:#f92672">=</span> 120m <span style="color:#75715e"># Time period to check the connections</span>
</span></span><span style="display:flex;"><span>maxretry <span style="color:#f92672">=</span> <span style="color:#ae81ff">3</span> <span style="color:#75715e"># Within the above time period, block the abusive IP if the number of the abusive IP connections reaches the maxretry</span>
</span></span><span style="display:flex;"><span>banaction <span style="color:#f92672">=</span> ufw
</span></span><span style="display:flex;"><span>banaction_allports <span style="color:#f92672">=</span> ufw
</span></span><span style="display:flex;"><span>destemail <span style="color:#f92672">=</span> example@example.com
</span></span><span style="display:flex;"><span>sender <span style="color:#f92672">=</span> example@example.com
</span></span><span style="display:flex;"><span>ignoreip <span style="color:#f92672">=</span> 127.0.0.1/8 ::1 <span style="color:#75715e"># Ignore these IP, Hosts, IP ranges during operation</span>
</span></span></code></pre></div><h2 id="turn-on-jails-by-editing-etcfail2banjailddefaults-debianconf-sshd-is-enabled-by-default-here-we-turn-on-postfix-jail-as-well">Turn on jails by editing /etc/fail2ban/jail.d/defaults-debian.conf, sshd is enabled by default, here we turn on postfix jail as well</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>sshd<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>enabled <span style="color:#f92672">=</span> true
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>postfix<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>enabled <span style="color:#f92672">=</span> true
</span></span></code></pre></div><h2 id="adjust-the-filter-mode-in-jaillocal-here-for-example-we-adjust-the-postfix-filter-mode-to-aggressive-for-stricter-filter">Adjust the filter mode in jail.local, here for example we adjust the postfix filter mode to aggressive for stricter filter</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>postfix<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>mode    <span style="color:#f92672">=</span> aggressive
</span></span></code></pre></div><h2 id="restart-or-reload-fail2ban">Restart or reload fail2ban</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo service fail2ban restart
</span></span><span style="display:flex;"><span>sudo service fail2ban reload
</span></span></code></pre></div><h2 id="check-fail2ban-status">Check fail2ban status</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo fail2ban-client status
</span></span><span style="display:flex;"><span>sudo fail2ban-client status sshd
</span></span></code></pre></div>]]></content></item><item><title>Proxmox Notes: Import qcow2 disk</title><link>https://midgardstudios.co.uk/posts/2020/08/proxmox-notes-import-qcow2-disk/</link><pubDate>Fri, 14 Aug 2020 01:43:00 +0000</pubDate><guid>https://midgardstudios.co.uk/posts/2020/08/proxmox-notes-import-qcow2-disk/</guid><description>Import qcow2 disk Upload the image to a folder on Proxmox. I usually use /var/tmp create a VM in proxmox. Detach and remove the disk it created in the VM and run the following command.
qm importdisk [VM ID] [disk name and location] [Storage] Example qm importdisk 100 zabbix_appliance-5.0.2.qcow2 sas-01-Backup Add the newly created disk in the proxmox interface.
Edit the boot order to add the new disk as the first boot device if not already.</description><content type="html"><![CDATA[<h2 id="import-qcow2-disk">Import qcow2 disk</h2>
<p>Upload the image to a folder on Proxmox. I usually use /var/tmp create a VM in proxmox. Detach and remove the disk it created in the VM and run the following command.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>qm importdisk [VM ID] [disk name and location] [Storage]
</span></span></code></pre></div><h3 id="example">Example</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-console" data-lang="console"><span style="display:flex;"><span>qm importdisk 100 zabbix_appliance-5.0.2.qcow2 sas-01-Backup
</span></span></code></pre></div><p>Add the newly created disk in the proxmox interface.</p>
<p>Edit the boot order to add the new disk as the first boot device if not already.</p>
<p>Start the VM and pray to the tech gods.</p>
]]></content></item><item><title>Install nginx php7 mariaDb</title><link>https://midgardstudios.co.uk/posts/2020/08/install-nginx-php7-mariadb/</link><pubDate>Mon, 10 Aug 2020 06:02:22 +0000</pubDate><guid>https://midgardstudios.co.uk/posts/2020/08/install-nginx-php7-mariadb/</guid><description>Update Ubuntu apt-get update apt-get upgrade sudo ufw allow ssh comment &amp;#39;Open SSH port 22&amp;#39; Install NginX apt instal nginx To start, stop and enable Nginx
sudo systemctl stop nginx.service sudo systemctl start nginx.service sudo systemctl enable nginx.service Open HTTP and HTTPS ports on firewall sudo ufw allow http comment &amp;#39;Open access Nginx port 80&amp;#39; sudo ufw allow https comment &amp;#39;Open all to access Nginx port 443&amp;#39; Install MariaDB sudo apt-get install mariadb-server mariadb-client To start, stop and enable Nginx</description><content type="html"><![CDATA[<h1 id="update-ubuntu">Update Ubuntu</h1>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>apt-get update
</span></span><span style="display:flex;"><span>apt-get upgrade
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo ufw allow ssh comment <span style="color:#e6db74">&#39;Open SSH port 22&#39;</span>
</span></span></code></pre></div><h1 id="install-nginx">Install NginX</h1>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>apt instal nginx
</span></span></code></pre></div><p>To start, stop and enable Nginx</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo systemctl stop nginx.service
</span></span><span style="display:flex;"><span>sudo systemctl start nginx.service
</span></span><span style="display:flex;"><span>sudo systemctl enable nginx.service
</span></span></code></pre></div><h2 id="open-http-and-https-ports-on-firewall">Open HTTP and HTTPS ports on firewall</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo ufw allow http comment <span style="color:#e6db74">&#39;Open access Nginx port 80&#39;</span>
</span></span><span style="display:flex;"><span>sudo ufw allow https comment <span style="color:#e6db74">&#39;Open all to access Nginx port 443&#39;</span>
</span></span></code></pre></div><h1 id="install-mariadb">Install MariaDB</h1>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt-get install mariadb-server mariadb-client
</span></span></code></pre></div><p>To start, stop and enable Nginx</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo systemctl stop mariadb.service
</span></span><span style="display:flex;"><span>sudo systemctl start mariadb.service
</span></span><span style="display:flex;"><span>sudo systemctl enable mariadb.service
</span></span></code></pre></div><p>To setup MariaDB</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo mysql_secure_installation
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>Enter current password <span style="color:#66d9ef">for</span> root <span style="color:#f92672">(</span>enter <span style="color:#66d9ef">for</span> none<span style="color:#f92672">)</span>: <span style="color:#f92672">[</span>Enter<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>Set root password? <span style="color:#f92672">[</span>Y/n<span style="color:#f92672">]</span>: Y
</span></span><span style="display:flex;"><span>New password: Enter password
</span></span><span style="display:flex;"><span>Re-enter new password: Repeat password
</span></span><span style="display:flex;"><span>Remove anonymous users? <span style="color:#f92672">[</span>Y/n<span style="color:#f92672">]</span>: Y
</span></span><span style="display:flex;"><span>Disallow root login remotely? <span style="color:#f92672">[</span>Y/n<span style="color:#f92672">]</span>: Y
</span></span><span style="display:flex;"><span>Remove test database and access to it? <span style="color:#f92672">[</span>Y/n<span style="color:#f92672">]</span>:  Y
</span></span><span style="display:flex;"><span>Reload privilege tables now? <span style="color:#f92672">[</span>Y/n<span style="color:#f92672">]</span>:  Y
</span></span></code></pre></div><p>Log in to MySQL</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo mysql -u root -p
</span></span></code></pre></div><p>Edit MySQL config</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
</span></span></code></pre></div><p>Change the bind address to 0.0.0.0</p>
<pre tabindex="0"><code class="language-conf" data-lang="conf"># Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 0.0.0.0
</code></pre><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo systemctl restart mariadb
</span></span></code></pre></div><h2 id="allow-remote-login-for-dev-only">Allow remote login (for dev only!)</h2>
<p>Never give root access like this on a production server. To be honest it made me feel weird doing it on a local machine with not internet access. Create a user and grant that user specific access.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo mysql -u root -p
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-mysql" data-lang="mysql"><span style="display:flex;"><span><span style="color:#66d9ef">GRANT</span> <span style="color:#66d9ef">ALL</span> <span style="color:#66d9ef">PRIVILEGES</span> <span style="color:#66d9ef">ON</span> <span style="color:#f92672">*</span>.<span style="color:#f92672">*</span> <span style="color:#66d9ef">TO</span> <span style="color:#e6db74">&#39;root&#39;</span><span style="color:#f92672">@</span><span style="color:#e6db74">&#39;192.168.100.%&#39;</span> <span style="color:#66d9ef">IDENTIFIED</span> <span style="color:#66d9ef">BY</span> <span style="color:#e6db74">&#39;my-new-password&#39;</span> <span style="color:#66d9ef">WITH</span> <span style="color:#66d9ef">GRANT</span> <span style="color:#66d9ef">OPTION</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">exit</span>
</span></span></code></pre></div><h2 id="open-mysql-port-on-firewall">Open MySQL port on firewall</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo ufw allow mysql comment <span style="color:#e6db74">&#39;Open MySQL port 3306&#39;</span>
</span></span></code></pre></div><h1 id="php">PHP</h1>
<h2 id="install-php-and-extentions">Install PHP and extentions</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip php7.4-sqlite3
</span></span></code></pre></div><h2 id="control-the-php-service">Control the PHP Service</h2>
<p>To start, stop and enable Nginx</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo systemctl stop php7.4-fpm.service
</span></span><span style="display:flex;"><span>sudo systemctl start php7.4-fpm.service
</span></span><span style="display:flex;"><span>sudo systemctl enable php7.4-fpm.service
</span></span></code></pre></div><h1 id="nginx-default-site-config">Nginx Default site config</h1>
<p>Found in /etc/nginx/sites-availiable</p>
<h2 id="uncomment-to-enable-php">Uncomment to enable PHP</h2>
<pre tabindex="0"><code class="language-conf" data-lang="conf">location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        #       # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        #       # With php-cgi (or other tcp sockets):
        #       fastcgi_pass 127.0.0.1:9000;
        }
</code></pre><h1 id="lets-encrypt-client">Let’s Encrypt Client</h1>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo apt install python3-certbot-nginx
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo certbot --nginx
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo certbot --nginx -d example.com -d www.example.com
</span></span></code></pre></div><h2 id="auto-renew">Auto renew</h2>
<p>Untested</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>crontab -e
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#ae81ff">0</span> <span style="color:#ae81ff">12</span> * * * /usr/bin/certbot renew --quiet
</span></span></code></pre></div>]]></content></item><item><title>List Currently Used Ports on Linux</title><link>https://midgardstudios.co.uk/posts/2020/01/list-currently-used-ports-on-linux/</link><pubDate>Thu, 09 Jan 2020 03:33:00 +0000</pubDate><guid>https://midgardstudios.co.uk/posts/2020/01/list-currently-used-ports-on-linux/</guid><description>199 netstat -pln -l will list listening ports
-p will also display the process
-n will show port numbers instead of names.
-t Add to only show TCP ports.</description><content type="html"><![CDATA[<div class="highlight"><div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;">
<table style="border-spacing:0;padding:0;margin:0;border:0;"><tr><td style="vertical-align:top;padding:0;margin:0;border:0;">
<pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;"><code><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">199
</span></code></pre></td>
<td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
<pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;display:grid;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>netstat -pln</span></span></code></pre></td></tr></table>
</div>
</div>
<p><code>-l</code> will list listening ports</p>
<p><code>-p</code> will also display the process</p>
<p><code>-n</code> will show port numbers instead of names.</p>
<p><code>-t</code> Add to only show TCP ports.</p>
]]></content></item></channel></rss>