techblog.jeppson.org Open in urlscan Pro
216.170.171.60  Public Scan

Submitted URL: http://techblog.jeppson.org/
Effective URL: https://techblog.jeppson.org/
Submission: On February 15 via manual from SE — Scanned from SE

Form analysis 3 forms found in the DOM

GET https://techblog.jeppson.org/

<form role="search" method="get" class="search-form" action="https://techblog.jeppson.org/">
  <label>
    <span class="screen-reader-text">Search for:</span>
    <input type="search" class="search-field" placeholder="Search …" value="" name="s">
  </label>
  <input type="submit" class="search-submit" value="Search">
</form>

POST https://www.paypal.com/cgi-bin/webscr

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
  <div class="paypal-donations">
    <input type="hidden" name="cmd" value="_donations">
    <input type="hidden" name="bn" value="TipsandTricks_SP">
    <input type="hidden" name="business" value="jollysaintnick@gmail.com">
    <input type="hidden" name="item_name" value="Techblog.jeppson.org donation">
    <input type="hidden" name="rm" value="0">
    <input type="hidden" name="currency_code" value="USD">
    <input type="image" style="cursor: pointer;" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" name="submit" alt="PayPal - The safer, easier way to pay online.">
    <img class="lazy loaded" alt="" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" data-src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1" data-was-processed="true">
  </div>
</form>

GET https://techblog.jeppson.org/

<form role="search" method="get" class="search-form" action="https://techblog.jeppson.org/">
  <label>
    <span class="screen-reader-text">Search for:</span>
    <input type="search" class="search-field" placeholder="Search …" value="" name="s">
  </label>
  <input type="submit" class="search-submit" value="Search">
</form>

Text Content

TECHNICUS

Search
Primary Menu Skip to content
 * Virtualization
 * Analytics
 * CLI
 * Networking
 * OS
 * Mobile
 * Web
 * Hardware
 * Gaming

Search for:
CLI, Networking


RESTART WIREGUARD INTERFACE IN OPENWRT

February 1, 2023 nicholas Leave a comment

One annoying issue with wireguard in OpenWRT is the fact that it won’t re-check
DNS on connection failure. In the event that my public IP changes (dynamic IP)
the OpenWRT wireguard client doesn’t ever get the memo, even when DNS is
updated.

I discovered here that you can tell OpenWRT via the command line to stop and
start the wireguard interface. This forces a new DNS check and then the tunnel
builds successfully. The command:

ubus call network.interface.wg0 down &&  ubus call network.interface.wg0 up

Success! Throw this into a cron job and you have an automated failsafe to ensure
a reconnect after IP change.

OpenWRTwireguard
Networking


WIREGUARD ONE-WAY TRAFFIC ON USG PRO 4 AFTER DUAL WAN SETUP

October 18, 2022 nicholas Leave a comment

I have a site-to-site VPN between my Ubiquiti USG Pro-4 and an OpenWRT device
over wireguard . It’s worked great until I got a secondary WAN connection as a
failover connection since my primary cable connection has been flaky lately.

When you introduce dual-WAN on Ubiquiti devices you have to manually configure
everything since the GUI assumes only one WAN connection. I configured my manual
DNAT (port forwards) for each interface successfully but struggled to figure out
why suddenly my Wireguard VPN between my two sites only went one way (remote
side could ping all hosts on local side, but not visa-versa.)

After some troubleshooting I realized the firewall itself could ping the remote
subnet just fine, it just wasn’t allowing local hosts to do so. I couldn’t find
anything in firewall logs. Eventually I came across this very helpful page from
hackad.nu that helped me to solve my problem.

The solution was to add a Firewall Modify rule specifically for the eth0
interface (where all my LAN traffic is routed through) to allow the source
address of the subnets I want to traverse the VPN, then apply that modifier to
the LAN_IN firewall rule for that interface. I had to do it for any VLANs I
wanted to be able to use the Wireguard tunnel as well (vifs of eth0, VLAN 50 in
my case)

Here is the relevant config.gateway.json sections, namely “firewall” and
“interfaces”:

{
    "firewall": {
        "modify": {
            "Wireguard": {
                "rule": {
                    "10": {
                        "action": "modify",
                        "description": "Allow Wireguard traffic",
                        "modify": {
                            "table": "10"
                        },
                        "source": {
                            "address": "10.1.0.0/16"
                        }
                    }
                }
            }
        },
        "interfaces": {
            "ethernet": {
                "eth0": {
                    "firewall": {
                        "in": {
                            "ipv6-name": "LANv6_IN",
                            "modify": "Wireguard",
                            "name": "LAN_IN"
                        }
                    },
                    "vif": {
                        "50": {
                            "firewall": {
                                "in": {
                                    "ipv6-name": "LANv6_IN",
                                    "modify": "Wireguard",
                                    "name": "LAN_IN"
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

This did the trick! Wireguard is working both directions again, this time with
my dual WAN connections.

Dual WANfailoverfirewallJSONsite to siteUbiquitiUSGVPNwireguard
CLI, Networking


PRIORITIZE WIFI WITH NETWORK MANAGER IN ARCH

September 26, 2022 nicholas Leave a comment

My cable internet has been horrid lately. I wanted to be able to hotspot to my
phone while maintaining LAN connections to my servers while the cable company
takes its sweet time to fix things. Even though I connected to wifi on my phone,
my desktop still prioritized the broken connection and wouldn’t use my phone to
get to the internet. I verified this by looking at the routing table and running
traceroute

sudo ip route
...
default via 10.137.1.1 dev br0 proto dhcp src 10.10.1.124 metric 425 
default via 172.10.10.1 dev wlp69s0 proto dhcp src 172.10.10.4 metric 600 
...

traceroute google.com --max-hops=1
 1  _gateway (10.10.50.1)  0.409 ms  0.449 ms  0.483 ms

The LAN connection’s default gateway had a lower metric than the mobile hotspot
connection (lower takes precedence.) To fix this I ran this networkmanager
command (thanks to this post for the inspiration)

sudo nmcli connection modify "Nicholas’s iPhone" ipv4.route-metric 50

I noticed DNS traffic was also prioritizing my LAN, which I didn’t want. I fixed
it with nmcli as well (thanks to this post)

sudo nmcli connection modify "Nicholas’s iPhone" ipv4.dns-priority 1

I then noticed I couldn’t get to certain LAN subnets. I then realized I needed
to add some static routes so they don’t try to go over my hotspot connection
(which I learned about here)

sudo nmcli connection modify bridge-br0 +ipv4.routes "10.10.50.0/24 10.10.1.1"

Note you may need to refresh your connection once you’ve made changes. You can
either disconnect and reconnect to force a refresh, or run this command (as
outlined here.)

sudo nmcli con up bridge-br0 #or whatever your LAN interface name is

Once I refreshed my settings, I was able to get internet via my phone while
maintaining all my local network settings.

Arch LinuxlinuxNetworkManagertraceroutewifi
CLI


CONVERT MUSIC TO IPHONE RINGTONES

September 23, 2022 nicholas Leave a comment

I’ve recently crossed into the dark side and gotten my first iPhone. I wanted to
set up ringtones for my contacts but discovered that Apple is pretty picky about
ringtone file format. After some searching I found the ffmpeg command to run to
get the ringtones into a file iPhones are happy with.

The criteria are:

 * aac codec
 * m4r filename
 * 30 seconds or less in duration

I ran into a snag with various things I was trying to convert apparently having
more than one stream. I would get the error message

Could not find tag for codec h264 in stream #0, codec not currently supported in container

I had to use the map command to specify exactly which stream I wanted (just the
audio one.) I discovered which stream I wanted by running the ffmpeg -i command
on the file to see its available streams. I also discovered that some songs
reported incorrect duration. This was fixed with the -write_xing 0 option.
Thanks to this gist for the inspiration.

Here is the full command to turn music into an Apple-compatible ringtone. Modify
-ss and -to to suit your needs (starting time, to ending time)

ffmpeg -i <input file> -codec:a aac -ss 00:00:59.5 -to 00:01:21.5 -f ipod -map 0:0 -write_xing 0 ringtone.m4r

If taking a ringtone from a video file, I had to specify I wanted stream 1 instead of stream 0:

ffmpeg -i Batman-\ The\ Animated\ Series\ -\ S02E01\ -\ Shadow\ of\ the\ Bat\ \(1\)\ SDTV.avi
-codec:a aac -ss 00:00:20.5 -to 00:00:43.5 -f ipod -write_xing 0 -map 0:1 batman_ringtone.m4r

Once you have the right m4r file, you simply need to plug your iPhone into your computer and fire up iTunes. You can then drag the file into the "Tones" section on the left under "Devices".




AppleffmpegiPhonetranscoding
CLI, Web


UPDATING ZIMBRA TO LATEST VERSION

August 21, 2022 nicholas Leave a comment

Recently a remote code execution bug came to light with Zimbra. It prompted me
to update to the latest patch. I had some e-mail deliverability issues
afterward. Here are my patch notes:

 * Download the latest version from
   https://www.zimbra.com/try/zimbra-collaboration-open-source/
   * Follow instructions as listed here:
     https://wiki.zimbra.com/wiki/Zimbra_Releases/8.8.15/P32#Redhat
 * Untar downloaded file, cd into directory and run ./install.sh as root
 * Re-install latest patches (I had frustrating 500 errors until I discovered
   this was the fix)
   * sudo yum reinstall zimbra-patch
 * Re-do any customization you’ve done to zimbra core
   * https://techblog.jeppson.org/2022/08/configure-zimbra-to-use-anymxrelay/
   * In my case, it was adding these lines to the smtp-amavis section:

    -o smtp_tls_security_level=none
    -o smtp_tls_wrappermode=no

 * Restart Zimbra services
   * sudo -u zimbra zmcontrol restart

emailpostfixZimbra
CLI, Web


CONFIGURE ZIMBRA TO USE ANYMXRELAY

August 10, 2022 nicholas 1 Comment

It turns out if you want to configure Zimbra to use an external SMTP relay
service it can be a bit of a headache if that service doesn’t use port 25 or 587
to receive encrypted relay mail. Such is the case with AnyMXRelay. I decided to
use AnyMXRelay to relay my mail since my Linode box keeps getting put on weird
shadow blocklists despite mxtoolbox saying everything was fine.

It took some digging but I finally found this article on Zimbra’s wiki outlining
what needs to happen. There are a few manual settings that need to be put in
place on the command line in order to get this to work – namely,
smtp_tls_wrappermode and smtp_tls_security_level.

In addition to the steps taken in this how-to for sending mail through a relay,
you must also make these changes:

postconf -e smtp_tls_wrappermode=yes   # No Zimbra setting for smtp_tls_wrappermode yet
zmprov ms `zmhostname` zimbraMtaSmtpTlsSecurityLevel encrypt
zmprov ms `zmhostname` zimbraMtaSmtpTlsCAfile /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt
zmprov ms `zmhostname` zimbraMtaSmtpSaslSecurityOptions noanonymous
zmprov ms `zmhostname` zimbraMtaSmtpSaslAuthEnable yes
zmprov ms `zmhostname` zimbraMtaSmtpSaslPasswordMaps lmdb:/opt/zimbra/conf/relay_password

Zimbra 8.5+ periodically applies settings automatically, so once you’ve made
these changes, watch /var/log/zimbra.log for these lines

zmconfigd[25662]: Fetching All configs
zmconfigd[25662]: All configs fetched in 0.07 seconds
...
zmconfigd[25662]: All restarts completed in 1.80 sec

Once you see them, you can send some test mail. Tail /var/log/zimbra.log to see
if it worked or to see any error messages.

If you get these error messages:

HANGUP after 0.08 from [IP]:56518 in tests before SMTP handshake
#or#
status=deferred (Cannot start TLS: handshake failure)

It means you must also add two configuration lines to the amavis configuration
file in /opt/zimbra/common/conf/master.cf.in

-o smtp_tls_security_level=none
-o smtp_tls_wrappermode=no

So the complete section looks like this:

smtp-amavis unix -      -       n       -       %%zimbraAmavisMaxServers%%   smtp
    -o smtp_tls_security_level=none
    -o smtp_tls_wrappermode=no
    -o smtp_data_done_timeout=1200 
    -o smtp_send_xforward_command=yes
    -o disable_dns_lookups=yes
    -o max_use=20

Once you made the changes, save the file and restart all zimbra services with
zmcontrol restart

The above disables TLS security for the antivirus piece. This could cause
security issues if you Zimbra configuration is distributed to multiple hosts. In
my case, this is an all-in-one server, so it does not matter.

Once I made the above changes, mail flowed through my external SMTP server
successfully!

emailpostfixSMTP relayTLSZimbra
CLI, Networking


OPENWRT WIREGUARD CLIENT

June 13, 2022 nicholas Leave a comment

My notes on how to configure an OpenWRT device to be a wireguard client (site to
site VPN)

More or less follow the instructions from
https://openwrt.org/docs/guide-user/services/vpn/wireguard/client

I commented out the IPv6 stuff as well as the pre-shared key. I also had already
defined firewall rules so I skipped that section.

One note: make sure your WG_ADDR has the proper subnet mask (I made the mistake
of making it a /32 when it needed to be a /24)


# Configuration parameters
WG_IF="wg0"
WG_SERV="remote_wireguard_server_address"
WG_PORT="remote_wireguard_port"
WG_ADDR="wireguard_subnet/wireguard_subnet_mask (/24 for example)"
#WG_ADDR6="fdf1:e8a1:8d3f:9::2/64"

# Generate keys
#umask go=
#wg genkey | tee wgserver.key | wg pubkey > wgserver.pub
#wg genkey | tee wgclient.key | wg pubkey > wgclient.pub
#wg genpsk > wgclient.psk
 
# Client private key
WG_KEY="$(cat wgclient.key)"
 
# Pre-shared key
#WG_PSK="$(cat wgclient.psk)"
 
# Server public key
WG_PUB="public_key_of_wireguard_server"

# Configure network
uci -q delete network.${WG_IF}
uci set network.${WG_IF}="interface"
uci set network.${WG_IF}.proto="wireguard"
uci set network.${WG_IF}.private_key="${WG_KEY}"
uci add_list network.${WG_IF}.addresses="${WG_ADDR}"
#uci add_list network.${WG_IF}.addresses="${WG_ADDR6}"
 
# Add VPN peers
uci -q delete network.wgserver
uci set network.wgserver="wireguard_${WG_IF}"
uci set network.wgserver.public_key="${WG_PUB}"
#uci set network.wgserver.preshared_key="${WG_PSK}"
uci set network.wgserver.endpoint_host="${WG_SERV}"
uci set network.wgserver.endpoint_port="${WG_PORT}"
uci set network.wgserver.route_allowed_ips="1"
uci set network.wgserver.persistent_keepalive="25"
uci add_list network.wgserver.allowed_ips="10.137.50.0/24"
#uci add_list network.wgserver.allowed_ips="::/0"
uci commit network
/etc/init.d/network restart

OpenWRTVPNwireguard
CLI, OS


ADD MULTIPLE SEARCH DOMAINS IN CENTOS 7

June 8, 2022 nicholas Leave a comment

I needed to add multiple domains to search DNS with on my Cent7 box. It turns
out there are two ways to do it. Cent7 uses networkmanager, so you can use the
cli tool to add what you want, or you can edit the file directly.

Using nmcli:

sudo nmcli con mod eth0 ipv4.dns-search "domain1.org,domain2.org,domain3.org"

This causes nmcli to add this line to your network interface config file
(/etc/sysconfig/network-scripts/ifcfg-eth0 in my case)

DOMAIN="domain1.org domain2.org domain3.org"

After either using nmcli or manually editing your file, simply restart the
network service and your search domains now work!



CentOSCentOS 7DNSNetworkManager
CLI


SELECT ALL MATCHES IN VS CODE

May 31, 2022 nicholas Leave a comment

I came across a need to select all matches in VS Code. This was the procedure,
thanks to stack overflow. I altered them for Mac, since that’s what I was using.
For Windows/Linux, substitute CMD with CTRL

 1. CMD + F
 2. Type your search string
 3. CMD + SHIFT + L to select all occurrences found (max. 999)
 4. ESC (or close search dialog with top-right X)
 5. CMD + C
 6. Open new file
 7. CMD + V

Works great! It’s a way for me to easily get ONLY my search string from a file
and discard the rest.

VS Code
CLI, Networking


WIREGUARD ON A USG PRO 4

April 8, 2022 nicholas 5 Comments

I ran into some issues when trying to configure an OpenVPN tunnel between my
Ubiquiti USG Pro 4 and a Debian VPS. I was very disappointed to discover that
the version of OpenVPN on the USG only supports TLS 1.0! My issue was the Debian
side rejecting that as insecure.

Thankfully, it was fairly painless to get Wireguard configured on the USG Pro 4.
I was hesitant to do so at first because I knew every time my USG was updated I
would lose the wireguard pacakge. Fortunately that can be resolved by
configuring a post-install script. Thanks to ilar.in and calypte.cc and this
github gist for the steps on how to do so.

 * Download the latest ugw4 package
   from https://github.com/WireGuard/wireguard-vyatta-ubnt/releases and install
   it on your USG.
 * Create post-install script to ensure wireguard survives version updates:
 * Install edge-os packages

curl -O https://raw.githubusercontent.com/britannic/install-edgeos-packages/master/install-pkgs
sudo install -o root -g root -m 0755 install-pkgs /config/scripts/post-config.d/install-pkgs

 * Add wireguard DEB package to persistent storage that the script will look
   for:

sudo mkdir -p /config/data/install-packages
cd /config/data/install-packages
curl -fLSs https://github.com/WireGuard/wireguard-vyatta-ubnt/releases/download/1.0.20200729-1/ugw4-v1-v1.0.20200729-v1.0.20200513.deb

 * Generate a public/private keypair for USG use

cd /config/auth
umask 077
wg genkey > wg_private.key
wg pubkey < wg_private.key > wg_public.key

 * Generate config.gateway.json config to use wireguard

    "interfaces": {
 ...
        "wireguard": {
            "wg0": {
                "address": "<IP_OF_USG_ON_WG_CLIENT_SUBNET>",
                "listen-port": "<WG_LISTEN_PORT>",
                "peer": {
                    "<ENDPOINT_CLIENT_PUBLIC_KEY>": {
                        "allowed-ips": "0.0.0.0/0",
                        "endpoint":  "<ENDPOINT_CLIENT_ADDRESS>:<ENDPOINT_CLIENT_PORT>
"
                    }
                },
                "private-key": "/config/auth/priv.key",
                "route-allowed-ips": false
            },
            "wg1": {
                "address": "<IP_OF_USG_ON_WG_SERVER_SUBNET",
                "firewall": {
                    "in": {
                        "name": "LAN_IN"
                    },
                    "local": {
                        "name": "LAN_LOCAL"
                    },
                    "out": {
                        "name": "LAN_OUT"
                    }
                },
                "listen-port": "<USG_WG_SERVER_LISTEN_PORT>",
                "mtu": "1352",
                "peer": {
                    "<PUBLIC_KEY_OF_WG_CONNECTING_CLIENT": {
                        "allowed-ips": "<SUBNETS_ON_REMOTE_HOST>"
                    }
                },
                "private-key": "/config/auth/wg-server.priv",
                "route-allowed-ips": true
            }
        }
    },

I have two different wireguard interfaces configured – wg0 to be a client to
another server, and wg1 to be a server accepting other clients (site-to-site
VPN.)

If you want to have multiple peers defined on a single wireguard interface,
encapsulate the peers with brackets like so:

"peer": [{
						"--pubkey--": {
							"allowed-ips": [
								"172.255.252.2/32"
							],
							"persistent-keepalive": 60
						}
					},
					{
						"--pubkey--": {
							"allowed-ips": [
								"172.255.252.3/32"
							],
							"persistent-keepalive": 60
						}
					}
				],


TEST CONFIGURATION FIRST

Before committing your config.gateway.json code, test it line by line by SSHing
into the USG-Pro 4 and entering config mode. Then type out your JSON lines one
at a time, with each key being a new argument separated by a space. The first
section above would look like this:

configure
edit interfaces
set wireguard wg0 address WIREGUARD_ADDRESS
set wireguard wg0 listen-port WG_LISTEN_PORT
set wireguard wg0 peer ENDPOINT_CLIENT_PUBLIC_KEY allowed-ips 0.0.0.0/0
set wireguard wg0 peer ENDPOINT_CLIENT_PUBLIC_KEY endpoint ENDPOINT_ADDRESS:ENDPOINT_PORT
set wireguard wg0 private-key /config/auth/priv.key
set wireguard wg0 route-allowed-ips false
commit

If the commit works without error, you can then drop out of the configure
section and look at your wireguard config:

exit
sudo wg show

If all looks well, then copy your config.gateway.json to your controller and
trigger a reprovision.

Verify after provisioning: 

sudo netstat -npl | grep <WIREGUARD_PORT> | grep udp


TROUBLESHOOTING


USG NOT CONNECTING TO CHANGED ENDPOINT ADDRESS

If you change the address of the wireguard endpoint, USG pro will not connect to
that new address. You have to delete and re-create the interface (thanks to
https://github.com/Lochnair/vyatta-wireguard/issues/72#issuecomment-423840448
for the information)

Fix this by deleting the wireguard interface

admin@Firewall:~$ configure
[edit]
admin@Firewall# delete interfaces wireguard
[edit]
admin@Firewall# commit


Then reprovision by making a small change, force provision, then change back,
and force another provision (annoying) or alternatively reboot firewall.


WIREGUARD SHOWS ESTABLISHED BUT PING DOESN’T WORK

Example error:

From 10.99.13.1 icmp_seq=5 Destination Host Unreachable
ping: sendmsg: Required key not available

To figure out what’s going on, enable logging to kernel buffer (dmesg) Thanks to
procustodibus.com for the info.

echo module wireguard +p > /sys/kernel/debug/dynamic_debug/control

With debug on, ping again and check kernel messages (dmesg)

[Tue Dec 21 22:16:12 2021] wireguard: wg0: No peer has allowed IPs matching 10.99.13.2

This showed I didn’t have my access control properly configured. Modify
/etc/wireguard/wg0.conf on your client config and make sure your AllowedIPs are
properly letting traffic through.

AllowedIPs = 10.99.13.0/24


USG NOT ALLOWING CONNECTIONS

Clients unable to connect to USG despite having a good config. Double check your
firewall rules. I had neglected to create a WAN LOCAL rule allowing UDP packets
on my wireguard port. Once that was configured, handshakes completed
successfully.


FIREWALLS CAN’T PING EACH OTHER

I had an issue where the firewalls would pass traffic through, but they couldn’t
ping each other. The solution was to add the VPN subnet you created to
allowed-ips on both sides of the connection.

JSONsite to siteUbiquitiUSGVPNwireguard


POSTS NAVIGATION

1 2 … 34 Next →


WELCOME

This blog is meant as a dumping ground for my technical musings. It is mostly
for my own sake but I am making it public in the off chance that it might be
useful to someone else.

If you find the content on this site useful, please donate to contribute to
server costs. Thank you!




TAGS

 * Active Directory
 * apache
 * Arch Linux
 * awk
 * BASH
 * CentOS
 * CentOS 7
 * crouton
 * Debian
 * DNS
 * find
 * firewall
 * for loop
 * freeBSD
 * freeNAS
 * grep
 * hardware
 * KVM
 * linux
 * LVM
 * migration
 * Mint
 * mount
 * mysql
 * openvpn
 * PCI passthrough
 * php
 * ProxMox
 * rsync
 * samba
 * scripting
 * sed
 * Sophos UTM
 * Splunk
 * SSH
 * Ubuntu
 * ubuntu 14.04
 * varnish
 * VPN
 * Windows
 * Windows 10
 * wordpress
 * xen
 * Xenserver
 * ZFS


ARCHIVES

 * February 2023 (1)
 * October 2022 (1)
 * September 2022 (2)
 * August 2022 (2)
 * June 2022 (2)
 * May 2022 (1)
 * April 2022 (3)
 * March 2022 (2)
 * December 2021 (1)
 * November 2021 (1)
 * October 2021 (1)
 * September 2021 (1)
 * July 2021 (1)
 * May 2021 (1)
 * April 2021 (1)
 * March 2021 (2)
 * February 2021 (1)
 * January 2021 (1)
 * December 2020 (2)
 * November 2020 (1)
 * October 2020 (1)
 * August 2020 (2)
 * July 2020 (1)
 * June 2020 (2)
 * May 2020 (5)
 * April 2020 (4)
 * March 2020 (4)
 * February 2020 (8)
 * January 2020 (1)
 * December 2019 (2)
 * November 2019 (1)
 * October 2019 (5)
 * September 2019 (1)
 * August 2019 (8)
 * July 2019 (2)
 * June 2019 (2)
 * May 2019 (1)
 * April 2019 (3)
 * March 2019 (3)
 * February 2019 (1)
 * January 2019 (2)
 * December 2018 (6)
 * November 2018 (5)
 * October 2018 (3)
 * September 2018 (4)
 * August 2018 (5)
 * July 2018 (4)
 * June 2018 (7)
 * May 2018 (2)
 * April 2018 (4)
 * March 2018 (5)
 * February 2018 (1)
 * January 2018 (2)
 * December 2017 (6)
 * October 2017 (3)
 * September 2017 (1)
 * August 2017 (4)
 * June 2017 (2)
 * May 2017 (1)
 * April 2017 (3)
 * March 2017 (5)
 * February 2017 (3)
 * January 2017 (3)
 * December 2016 (3)
 * November 2016 (3)
 * October 2016 (7)
 * August 2016 (8)
 * July 2016 (4)
 * June 2016 (4)
 * May 2016 (2)
 * April 2016 (5)
 * March 2016 (2)
 * February 2016 (8)
 * January 2016 (4)
 * December 2015 (4)
 * November 2015 (4)
 * October 2015 (2)
 * September 2015 (4)
 * August 2015 (4)
 * July 2015 (8)
 * June 2015 (2)
 * May 2015 (4)
 * April 2015 (4)
 * March 2015 (6)
 * February 2015 (10)
 * January 2015 (10)
 * December 2014 (8)
 * November 2014 (8)
 * October 2014 (13)
 * September 2014 (19)
 * August 2014 (9)
 * July 2014 (1)


NICK'S TECHNICAL MUSINGS


SEARCH

Search for:


RECENT COMMENTS

 * Anonymous on Generate SuperMicro IPMI license
 * Gabor Roman on Transfer VMs between Xenserver pools
 * Branislav Zeljak on UBUNTU 20.04 cloned VM same DHCP IP fix
 * Supermacro on Generate SuperMicro IPMI license
 * Tim on x11vnc XOpenDisplay failed fix


RECENT POSTS

 * Restart wireguard interface in OpenWRT
 * Wireguard one-way traffic on USG Pro 4 after dual WAN setup
 * Prioritize wifi with Network Manager in Arch
 * Convert music to iPhone ringtones
 * Updating Zimbra to latest version


CATEGORIES

 * Analytics
 * CLI
 * Gaming
 * Hardware
 * Mobile
 * Networking
 * OS
 * Virtualization
 * Web

Free DNS
Proudly powered by WordPress