How to clear ip addr, link
ip link delete vxlan2
ip addr del 192.168.0.55/24 dev vxlan2
VxLAN setup
Machine 1
ip link add vxlan1 type vxlan id 1 remote 192.168.18.48 dstport 4789 dev wlp2s0
ip link set vxlan1 up
ip addr add 192.168.0.6/24 dev vxlan1
Machine 2
ip link add vxlan1 type vxlan id 1 remote 192.168.18.24 dstport 4789 dev wlp3s0\
| # Simple linux tun/tap device example tunnel over udp | |
| # create tap device with ip tuntap add device0 tap | |
| # set ip address on it and run tap-linux on that device and set desitation ip | |
| # run same on another node, changing dst ip to first node | |
| import fcntl | |
| import struct | |
| import os | |
| import socket | |
| import threading |
- I faced bandwidth issues between a WG Peer and a WG server. Download bandwidth when downloading from WG Server to WG peer was reduced significantly and upload bandwidth was practically non existent.
- I found a few reddit posts that said that we need to choose the right MTU. So I wrote a script to find an optimal MTU.
- Ideally I would have liked to have run all possible MTU configurations for both WG Server and WG Peer but for simplicity I choose to fix the WG Server to the original 1420 MTU and tried all MTUs from 1280 to 1500 for the WG Peer.
- On WG server, I started an
iperf3server - On WG peer, I wrote a script that does the following:
wg-quick down wg0
- Edit MTU in the
/etc/wireguard/wg0.conffile
Improvements, suggestions & fixes are welcome!
Captive portals can be a pain. Here's an opinionated and no-doubt entirely imperfect guide to setting one up for a WiFi access point on Ubuntu (tested on 20+), utilising Network Manager, DNSMasq, HA Proxy and (optionally) Let's Encrypt for a secure, locally hosted landing page.
_Note: This setup was originally designed for an offline WLAN, providing access to a small number of locally hosted domains ... think the WiFi media portal on a flight or boat. If you are looking to provide internet access behind a captive portal then this guide won't get you all the way there. That said, many routers have this capability built in, as do any number of open source router firmware solutions. So you probably don't need to roll your own. If you'd like to try anyway, Ha Proxy Stick Tables would probably come in handy. Very happy to update the guide with any p
Some distributions create the defaut KVM (libvirtd) storage pool for images when they install KVM, others do this upon the creation of the first KVM guest. Creating the default pool from scratch is pretty straightforward. Here's how to do it with virsh.
First verify there is no existing default pool:
$ virsh pool-list --all
Name State Autostart
-----------------------------
This is a workaround for checking the existence of file ID in Google Drive without both the access token and API key.
When you want to check whether the file of the file ID is existing in Google Drive, generally, you might use Drive API and Drive service (DriveApp) of Google Apps Script. In this case, the scope of Drive API is required to be used. By this, the access token and the API key (in the case of publicly shared files) are required to be used. But, there might be a case that the available scopes are limited. In this post, I would like to introduce a workaround for checking the existence of file ID in Google Drive without both the access token and API key.
In this workaround, the thumbnail link like https://drive.google.com/thumbnail?id={fileId} is used. Ref In this case, when the file ID is existing, the sign-in page with the status code of `200
A word of warning. This will be slow and buggy. Do not attempt to use this as a daily driver.
- Windows 10 or 11 (x64)
- Download QEMU
- Download ChromeOS Flex (remember to download the file; do NOT use Chromebook Recovery Utility)
| # Script for Ubuntu: Nvidia Multi-GPU Installation and Testing (Adaptable for other distros) | |
| # Step 0: Clean Nvidia Installation | |
| # If you need to completely remove a previous Nvidia installation, use these commands. | |
| # This ensures that you start with a clean slate for a new installation. | |
| sudo apt-get --purge remove "*nvidia*" | |
| sudo apt-get --purge remove "*cuda*" "*cudnn*" "*cublas*" "*cufft*" "*cufile*" "*curand*" "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "*nvvm*" "*libnccl*" | |
| # Verify that the removal is complete by checking if any Nvidia, CUDA, or cuDNN packages are still installed. | |
| apt list --installed | grep cuda |
| # Prerequisites: | |
| # 1. Python 3.x | |
| # 2. Pillow library (PIL fork) | |
| # pip install pillow | |
| import os | |
| import sys | |
| from PIL import Image | |
| dir_path = None |