$ -weight: 600;">sudo rpm-ostree -weight: 500;">install distrobox
-weight: 600;">sudo rpm-ostree -weight: 500;">install distrobox
-weight: 600;">sudo rpm-ostree -weight: 500;">install distrobox
echo 'container_manager="podman"' > ~/.config/distrobox/distrobox.conf
echo 'container_manager="podman"' > ~/.config/distrobox/distrobox.conf
echo 'container_manager="podman"' > ~/.config/distrobox/distrobox.conf
registry.opensuse.org/opensuse/distrobox:latest
registry.opensuse.org/opensuse/distrobox:latest
registry.opensuse.org/opensuse/distrobox:latest
distrobox create -i -weight: 500;">docker.io/library/ubuntu:latest -n vpn-dbx--root -H ~/distrobox/vpn-dbx--root --additional-packages "pipewire libxcb-shape0 libnl-genl-3-200" --volume /run/dbus/system_bus_socket:/run/dbus/system_bus_socket --additional-flags "--device=/dev/net/tun --cap-add=NET_ADMIN --cap-add=SYS_ADMIN" -r
distrobox create -i -weight: 500;">docker.io/library/ubuntu:latest -n vpn-dbx--root -H ~/distrobox/vpn-dbx--root --additional-packages "pipewire libxcb-shape0 libnl-genl-3-200" --volume /run/dbus/system_bus_socket:/run/dbus/system_bus_socket --additional-flags "--device=/dev/net/tun --cap-add=NET_ADMIN --cap-add=SYS_ADMIN" -r
distrobox create -i -weight: 500;">docker.io/library/ubuntu:latest -n vpn-dbx--root -H ~/distrobox/vpn-dbx--root --additional-packages "pipewire libxcb-shape0 libnl-genl-3-200" --volume /run/dbus/system_bus_socket:/run/dbus/system_bus_socket --additional-flags "--device=/dev/net/tun --cap-add=NET_ADMIN --cap-add=SYS_ADMIN" -r
-weight: 600;">sudo -weight: 500;">apt -weight: 500;">update
-weight: 600;">sudo -weight: 500;">apt -weight: 500;">update
-weight: 600;">sudo -weight: 500;">apt -weight: 500;">update
-weight: 600;">sudo -weight: 500;">apt -weight: 500;">install ./windscribe_2.20.7_amd64.deb
-weight: 600;">sudo -weight: 500;">apt -weight: 500;">install ./windscribe_2.20.7_amd64.deb
-weight: 600;">sudo -weight: 500;">apt -weight: 500;">install ./windscribe_2.20.7_amd64.deb
-weight: 600;">sudo nano /etc/systemd/system/windscribe-helper.-weight: 500;">service
-weight: 600;">sudo nano /etc/systemd/system/windscribe-helper.-weight: 500;">service
-weight: 600;">sudo nano /etc/systemd/system/windscribe-helper.-weight: 500;">service
[Unit]
Description=Start Windscribe VPN Helper
After=network-online.target
Wants=network-online.target
RequiresMountsFor=%t/containers
StartLimitIntervalSec=30
StartLimitBurst=5 [Service]
Type=exec
ExecStartPre=/bin/podman -weight: 500;">start vpn-dbx--root
ExecStart=/bin/podman exec vpn-dbx--root bash -c "/opt/windscribe/helper"
Restart=on-failure
RestartSec=5
RemainAfterExit=yes
[Unit]
Description=Start Windscribe VPN Helper
After=network-online.target
Wants=network-online.target
RequiresMountsFor=%t/containers
StartLimitIntervalSec=30
StartLimitBurst=5 [Service]
Type=exec
ExecStartPre=/bin/podman -weight: 500;">start vpn-dbx--root
ExecStart=/bin/podman exec vpn-dbx--root bash -c "/opt/windscribe/helper"
Restart=on-failure
RestartSec=5
RemainAfterExit=yes
[Unit]
Description=Start Windscribe VPN Helper
After=network-online.target
Wants=network-online.target
RequiresMountsFor=%t/containers
StartLimitIntervalSec=30
StartLimitBurst=5 [Service]
Type=exec
ExecStartPre=/bin/podman -weight: 500;">start vpn-dbx--root
ExecStart=/bin/podman exec vpn-dbx--root bash -c "/opt/windscribe/helper"
Restart=on-failure
RestartSec=5
RemainAfterExit=yes
-weight: 600;">sudo nano /etc/systemd/system/windscribe-helper.timer
-weight: 600;">sudo nano /etc/systemd/system/windscribe-helper.timer
-weight: 600;">sudo nano /etc/systemd/system/windscribe-helper.timer
[Unit]
Description=A trigger to -weight: 500;">start Windscribe's helper on startup [Timer]
OnBootSec=25
RandomizedDelaySec=10 [Install]
WantedBy=timers.target
[Unit]
Description=A trigger to -weight: 500;">start Windscribe's helper on startup [Timer]
OnBootSec=25
RandomizedDelaySec=10 [Install]
WantedBy=timers.target
[Unit]
Description=A trigger to -weight: 500;">start Windscribe's helper on startup [Timer]
OnBootSec=25
RandomizedDelaySec=10 [Install]
WantedBy=timers.target
-weight: 600;">sudo -weight: 500;">systemctl daemon-reload && -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable --now windscribe-helper.timer
-weight: 600;">sudo -weight: 500;">systemctl daemon-reload && -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable --now windscribe-helper.timer
-weight: 600;">sudo -weight: 500;">systemctl daemon-reload && -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable --now windscribe-helper.timer
nano ~/.local/share/applications/windscribe.desktop
nano ~/.local/share/applications/windscribe.desktop
nano ~/.local/share/applications/windscribe.desktop
[Desktop Entry]
Type=Application
Icon=/var/home/archerallstars/.local/share/icons/windscribe.png
Name=Windscribe
Comment=Start Windscribe VPN
Keywords=vpn;windscribe
Exec=distrobox-enter -r vpn-dbx--root -- /opt/windscribe/Windscribe
StartupWMClass=Windscribe
Terminal=true
[Desktop Entry]
Type=Application
Icon=/var/home/archerallstars/.local/share/icons/windscribe.png
Name=Windscribe
Comment=Start Windscribe VPN
Keywords=vpn;windscribe
Exec=distrobox-enter -r vpn-dbx--root -- /opt/windscribe/Windscribe
StartupWMClass=Windscribe
Terminal=true
[Desktop Entry]
Type=Application
Icon=/var/home/archerallstars/.local/share/icons/windscribe.png
Name=Windscribe
Comment=Start Windscribe VPN
Keywords=vpn;windscribe
Exec=distrobox-enter -r vpn-dbx--root -- /opt/windscribe/Windscribe
StartupWMClass=Windscribe
Terminal=true
-weight: 600;">sudo nano /etc/systemd/system/vpn-dbx--weight: 500;">upgrade.-weight: 500;">service
-weight: 600;">sudo nano /etc/systemd/system/vpn-dbx--weight: 500;">upgrade.-weight: 500;">service
-weight: 600;">sudo nano /etc/systemd/system/vpn-dbx--weight: 500;">upgrade.-weight: 500;">service
[Unit]
Description=Upgrade vpn-dbx--root
After=network-online.target
Wants=network-online.target
RequiresMountsFor=%t/containers
StartLimitIntervalSec=600
StartLimitBurst=5 [Service]
Type=exec
ExecStartPre=/bin/podman -weight: 500;">start vpn-dbx--root
ExecStart=/bin/podman exec vpn-dbx--root bash -c "-weight: 500;">apt -weight: 500;">update -y && -weight: 500;">apt full--weight: 500;">upgrade -y"
Restart=on-failure
RestartSec=60
RemainAfterExit=yes
[Unit]
Description=Upgrade vpn-dbx--root
After=network-online.target
Wants=network-online.target
RequiresMountsFor=%t/containers
StartLimitIntervalSec=600
StartLimitBurst=5 [Service]
Type=exec
ExecStartPre=/bin/podman -weight: 500;">start vpn-dbx--root
ExecStart=/bin/podman exec vpn-dbx--root bash -c "-weight: 500;">apt -weight: 500;">update -y && -weight: 500;">apt full--weight: 500;">upgrade -y"
Restart=on-failure
RestartSec=60
RemainAfterExit=yes
[Unit]
Description=Upgrade vpn-dbx--root
After=network-online.target
Wants=network-online.target
RequiresMountsFor=%t/containers
StartLimitIntervalSec=600
StartLimitBurst=5 [Service]
Type=exec
ExecStartPre=/bin/podman -weight: 500;">start vpn-dbx--root
ExecStart=/bin/podman exec vpn-dbx--root bash -c "-weight: 500;">apt -weight: 500;">update -y && -weight: 500;">apt full--weight: 500;">upgrade -y"
Restart=on-failure
RestartSec=60
RemainAfterExit=yes
-weight: 600;">sudo nano /etc/systemd/system/vpn-dbx--weight: 500;">upgrade.timer
-weight: 600;">sudo nano /etc/systemd/system/vpn-dbx--weight: 500;">upgrade.timer
-weight: 600;">sudo nano /etc/systemd/system/vpn-dbx--weight: 500;">upgrade.timer
[Unit]
Description=Upgrade vpn-dbx--root daily. [Timer]
OnCalendar=daily
Persistent=true
RandomizeDelaySec=5min [Install]
WantedBy=timers.target
[Unit]
Description=Upgrade vpn-dbx--root daily. [Timer]
OnCalendar=daily
Persistent=true
RandomizeDelaySec=5min [Install]
WantedBy=timers.target
[Unit]
Description=Upgrade vpn-dbx--root daily. [Timer]
OnCalendar=daily
Persistent=true
RandomizeDelaySec=5min [Install]
WantedBy=timers.target
-weight: 600;">sudo -weight: 500;">systemctl daemon-reload && -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable vpn-dbx--weight: 500;">upgrade.timer
-weight: 600;">sudo -weight: 500;">systemctl daemon-reload && -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable vpn-dbx--weight: 500;">upgrade.timer
-weight: 600;">sudo -weight: 500;">systemctl daemon-reload && -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable vpn-dbx--weight: 500;">upgrade.timer
-weight: 600;">sudo ufw -weight: 500;">status verbose
-weight: 600;">sudo ufw -weight: 500;">status verbose
-weight: 600;">sudo ufw -weight: 500;">status verbose
-weight: 600;">sudo ufw allow <port>/tcp && -weight: 600;">sudo ufw allow <port>/udp
-weight: 600;">sudo ufw allow <port>/tcp && -weight: 600;">sudo ufw allow <port>/udp
-weight: 600;">sudo ufw allow <port>/tcp && -weight: 600;">sudo ufw allow <port>/udp
firewall-cmd --get-zones
firewall-cmd --get-zones
firewall-cmd --get-zones
-weight: 600;">sudo firewall-cmd --permanent --new-zone=vpn
-weight: 600;">sudo firewall-cmd --permanent --new-zone=vpn
-weight: 600;">sudo firewall-cmd --permanent --new-zone=vpn
-weight: 600;">sudo firewall-cmd --reload
-weight: 600;">sudo firewall-cmd --reload
-weight: 600;">sudo firewall-cmd --reload
firewall-cmd --get-zones
firewall-cmd --get-zones
firewall-cmd --get-zones
nmcli connection show --active
nmcli connection show --active
nmcli connection show --active
NAME UUID TYPE DEVICE YourConnectionName xxxxxxxxxxxxxxxxxxxxxxxxxxxxx wifi xxxxxx
NAME UUID TYPE DEVICE YourConnectionName xxxxxxxxxxxxxxxxxxxxxxxxxxxxx wifi xxxxxx
NAME UUID TYPE DEVICE YourConnectionName xxxxxxxxxxxxxxxxxxxxxxxxxxxxx wifi xxxxxx
-weight: 600;">sudo firewall-cmd --zone=vpn --change-interface='YourConnectionName' --permanent
-weight: 600;">sudo firewall-cmd --zone=vpn --change-interface='YourConnectionName' --permanent
-weight: 600;">sudo firewall-cmd --zone=vpn --change-interface='YourConnectionName' --permanent
-weight: 600;">sudo firewall-cmd --reload
-weight: 600;">sudo firewall-cmd --reload
-weight: 600;">sudo firewall-cmd --reload
firewall-cmd --zone=vpn --list-interfaces
firewall-cmd --zone=vpn --list-interfaces
firewall-cmd --zone=vpn --list-interfaces
firewall-cmd --zone=vpn --list-all
firewall-cmd --zone=vpn --list-all
firewall-cmd --zone=vpn --list-all
-weight: 600;">sudo firewall-cmd —permanent —zone=vpn —add-port=<yourport>/tcp
-weight: 600;">sudo firewall-cmd —permanent —zone=vpn —add-port=<yourport>/udp
-weight: 600;">sudo firewall-cmd —permanent —zone=vpn —add-port=<yourport>/tcp
-weight: 600;">sudo firewall-cmd —permanent —zone=vpn —add-port=<yourport>/udp
-weight: 600;">sudo firewall-cmd —permanent —zone=vpn —add-port=<yourport>/tcp
-weight: 600;">sudo firewall-cmd —permanent —zone=vpn —add-port=<yourport>/udp
-weight: 600;">sudo firewall-cmd --reload
-weight: 600;">sudo firewall-cmd --reload
-weight: 600;">sudo firewall-cmd --reload
-weight: 600;">sudo firewall-cmd --zone=public ---weight: 500;">remove-port=<yourport>/tcp --permanent
-weight: 600;">sudo firewall-cmd --zone=public ---weight: 500;">remove-port=<yourport>/udp --permanent
-weight: 600;">sudo firewall-cmd --zone=public ---weight: 500;">remove-port=<yourport>/tcp --permanent
-weight: 600;">sudo firewall-cmd --zone=public ---weight: 500;">remove-port=<yourport>/udp --permanent
-weight: 600;">sudo firewall-cmd --zone=public ---weight: 500;">remove-port=<yourport>/tcp --permanent
-weight: 600;">sudo firewall-cmd --zone=public ---weight: 500;">remove-port=<yourport>/udp --permanent
p=<port_number>; -weight: 500;">curl -s https://portcheck.transmissionbt.com/$p | grep -q '^1' && echo -e "\033[1;32m✅ Port $p is OPEN\033[0m" || echo -e "\033[1;31m❌ Port $p is CLOSED\033[0m"
p=<port_number>; -weight: 500;">curl -s https://portcheck.transmissionbt.com/$p | grep -q '^1' && echo -e "\033[1;32m✅ Port $p is OPEN\033[0m" || echo -e "\033[1;31m❌ Port $p is CLOSED\033[0m"
p=<port_number>; -weight: 500;">curl -s https://portcheck.transmissionbt.com/$p | grep -q '^1' && echo -e "\033[1;32m✅ Port $p is OPEN\033[0m" || echo -e "\033[1;31m❌ Port $p is CLOSED\033[0m"
✅ Port XXXXX is OPEN
✅ Port XXXXX is OPEN
✅ Port XXXXX is OPEN
❌ Port XXXXX is CLOSED
❌ Port XXXXX is CLOSED
❌ Port XXXXX is CLOSED - There are many connection protocols available, WireGuard, Stealth, WStunnel, OpenVPN, IKEv2 (on mobile). The differences between them depend on your use case WireGuard is the fastest. Stealth is a censorship circumvention (China, Russia, Iran), restrictive networks. WStunnel is a last-resort option for the toughest firewalls or corporate networks.
- WireGuard is the fastest.
- Stealth is a censorship circumvention (China, Russia, Iran), restrictive networks.
- WStunnel is a last-resort option for the toughest firewalls or corporate networks.
- If that's not enough, there are more to circumvent censorship, decoy traffic, MAC spoofing, and GPS spoofing.
- Port forwarding is supported 🤫
- Split tunneling is supported.
- CLI client for those on headless servers
- Many DNS resolver profiles, blocking malware, ads, and trackers by default.
- Static IP is available, along with static port for port forwarding. This is a killing feature for your remote home projects 🧰
- Config files for OpenVPN, IKEv2 and WireGuard are available.
- Arcade sound for the connection! 👾🕹️ This feature sealed the deal for me 😆
- And many more, see all features! - WireGuard is the fastest.
- Stealth is a censorship circumvention (China, Russia, Iran), restrictive networks.
- WStunnel is a last-resort option for the toughest firewalls or corporate networks. - Install Distrobox
- Configure Distrobox to use Podman
- Create a Container 📦️
- Install Windscribe client in the Container
- Enable the Client's Helper
- Create a Desktop File on the Host
- Make the Container Update Itself Automatically, Zero Maintenance! - It's easier to maintain as it uses a rolling release model, no need to worry about the EOL date of the image/OS.
- It offers some x86-64-v3 packages, free performance boost!, just by installing the patterns-glibc-hwcaps-x86_64_v3 package. - I add the pipewire package to have the audio working for the arcade sound in the client 👾🕹️
- libxcb-shape0 and libnl-genl-3-200 are used by the client.
- /run/dbus/system_bus_socket, /dev/net/tun, along with --cap-add=NET_ADMIN --cap-add=SYS_ADMIN are universally necessary for any app that wants to modify the state of your network.
- -r is used to create a rootful container, for obvious reason.