Code Monkey home page Code Monkey logo

wireguird's Introduction

wireguird

a linux gtk gui client for Wireguard

Features:

  • System tray icon goes red when connected, black when disconnected.
  • Looks the same and does almost the same things as the official Wireguard's Windows gui client.
  • Lists tunnels from /etc/wireguard
  • Controls Wireguard through wg-quick

Preview (video)

wireguird preview

Download

v0.2.0 tested on: Ubuntu 18.04 LTS, 20.04 LTS and 21.04

wireguird_amd64.deb (1.8mb)

v1.0.0 tested on: Ubuntu 22.04 LTS and 22.10, Linux Mint 21.1

wireguird_amd64.deb (2.6mb)

v1.1.0 tested on: Ubuntu 23.04

wireguird_amd64.deb (2.6mb)

wget https://github.com/UnnoTed/wireguird/releases/download/v1.1.0/wireguird_amd64.deb
sudo dpkg -i ./wireguird_amd64.deb

Compile

deb dependencies: wireguard-tools libgtk-3-dev libayatana-appindicator3-dev golang-go resolvconf

git clone https://github.com/UnnoTed/wireguird
cd wireguird
chmod +x ./*.sh
./deps.sh
./package.sh
./install.sh

wireguird's People

Contributors

abejaranoh avatar maxblazer avatar sam2kb avatar tgbv avatar unnoted avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wireguird's Issues

Bug: Panic runtime error: invalid memory address or nil pointer dereference

Hi,

small thing. On a fresh install and nothing done so far the GUI looks like this:
fresh

Pressing now on the red cross button "Delete tunnel", results in:

{"level":"debug","time":"2023-09-29T07:31:14+02:00","message":"Settings init"}
{"level":"debug","time":"2023-09-29T07:31:14+02:00","message":"loading settings"}
{"level":"debug","time":"2023-09-29T07:31:14+02:00","message":"settings file doesnt exist"}
───────────────────────────────────────────────────────────────────────────────────────────────2023-09-29T07:31:14+02:00 |INFO| GTK Version


 major=3
 micro=38
 minor=24


(wireguird:6435): libayatana-appindicator-WARNING **: 07:31:14.273: Unable to get the session bus: Error spawning command line “dbus-launch --autolaunch=1dec5a7425a64a7f969f96c879bb9674 --binary-syntax --close-stderr”: Child process exited with code 1

(wireguird:6435): LIBDBUSMENU-GLIB-WARNING **: 07:31:14.273: Unable to get session bus: Error spawning command line “dbus-launch --autolaunch=1dec5a7425a64a7f969f96c879bb9674 --binary-syntax --close-stderr”: Child process exited with code 1
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: closure error: unexpected panic caught: runtime error: invalid memory address or nil pointer dereference

Closure added at:
	github.com/UnnoTed/wireguird/gui.(*Tunnels).Create at github.com/UnnoTed/wireguird/gui/tunnels.go:402
	github.com/UnnoTed/wireguird/gui.Create at github.com/UnnoTed/wireguird/gui/gui.go:77
	main.createWindow at github.com/UnnoTed/wireguird/main.go:142
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x75553f]

goroutine 1 [running]:
github.com/gotk3/gotk3/internal/closure.FuncStack.Panicf({{0x7b1740, 0xc0000b2348, 0x13}, {0xc000098318, 0x3, 0x3}}, {0x8aeb69, 0x1b}, {0xc0000a2da0, 0x1, ...})
	github.com/gotk3/[email protected]/internal/closure/funcstack.go:116 +0x91e
github.com/gotk3/gotk3/internal/closure.FuncStack.TryRepanic({{0x7b1740, 0xc0000b2348, 0x13}, {0xc000098318, 0x3, 0x3}})
	github.com/gotk3/[email protected]/internal/closure/funcstack.go:134 +0x145
panic({0x7d1660?, 0xb4a610?})
	runtime/panic.go:914 +0x21f
github.com/UnnoTed/wireguird/gui.(*Tunnels).Create.func7.1(0x0?, 0x0?)
	github.com/UnnoTed/wireguird/gui/tunnels.go:405 +0x3f
github.com/UnnoTed/wireguird/gui.(*Tunnels).Create.func7()
	github.com/UnnoTed/wireguird/gui/tunnels.go:434 +0x1b
reflect.Value.call({0x7b1740?, 0xc0000b2348?, 0x2?}, {0x8a4f1a, 0x4}, {0xbc66a0, 0x0, 0x7ce8e0?})
	reflect/value.go:596 +0xce7
reflect.Value.Call({0x7b1740?, 0xc0000b2348?, 0x213acf0?}, {0xbc66a0?, 0x0?, 0x0?})
	reflect/value.go:380 +0xb9
github.com/gotk3/gotk3/glib.goMarshal(0x559640?, 0x0, 0x1, 0x7ffc7e2f6e80, 0x487da5?, 0xc0000061a0?)
	github.com/gotk3/[email protected]/glib/glib.go:271 +0xa11
github.com/gotk3/gotk3/glib._Cfunc_g_application_run(0x1f6c790, 0x1, 0x1f62550)
	_cgo_gotypes.go:1553 +0x4b
github.com/gotk3/gotk3/glib.(*Application).Run.func4(0xc000182270?, {0xc0000160d0?, 0x1, 0x572e15?}, 0x5?)
	github.com/gotk3/[email protected]/glib/application.go:185 +0x74
github.com/gotk3/gotk3/glib.(*Application).Run(0x8ab602?, {0xc0000160d0?, 0x1, 0x1})
	github.com/gotk3/[email protected]/glib/application.go:185 +0x1b9
main.main()
	github.com/UnnoTed/wireguird/main.go:41 +0x347

Please finish this

This would be sooo useful for my laptop I hate having to use wg-quick on a crappy keyboard. I think feature wise is ok it would just be nice to have proper builds

libayatana-appindicator as the successor of libappindicator

Hi,
the installation causes an unmet dependency error on Ubuntu 22.10 and most likely on current Debian, since they are using libayatana-appindicator as the successor of libappindicator for versions >= Bullseye.
You might want to consider switching as well.

Missing commandline option

I am opening wireguird via startup and I would like to amend the wish-list either with a commandline option "--hide" to move it straight the task bar or an option in the settings.
Everything else works very nice!

Feature Request: Block untunneled traffic (kill switch)

Would it be possible to add the feature to disable and enable "Block untunneled traffic (kill switch)"? This toggle is available in Windows client.

I am trying to use the firewall Portmaster with Wireguird enabled but internet stops working unless I shutdown Portmaster. On Windows I just uncheck "Block untunneled traffic (kill switch)" and the internet then starts working when I use Portmaster.

cannot install on debian 10

Hi,

I was trying to install in this way but it did not work

alex@host:~$ sudo dpkg -i ./wireguird_amd64.deb
dpkg-deb: error: archive './wireguird_amd64.deb' uses unknown compression for member 'control.tar.zst', giving up
dpkg: error processing archive ./wireguird_amd64.deb (--install):
dpkg-deb --control subprocess returned error exit status 2
Errors were encountered while processing:
./wireguird_amd64.deb

Strange error when installing in LMDE/Debian 11

Hello, I'm attempting to install v1.0.0 in Linux Mint Debian Edition (LMDE) and I get this odd error when running the .deb file:

dpkg-deb: error: archive '/home/me/Downloads/wireguird_amd64.deb' uses unknown compression for member 'control.tar.zst', giving up
dpkg: error processing archive /home/me/Downloads/wireguird_amd64.deb (--install):
 dpkg-deb --control subprocess returned error exit status 2

rpm release?

would be nice if people outside of debian based distros can also use wireguird

Error running package.sh: dpkg-deb: error: control directory has bad permissions 777 (must be >=0755 and <=0775)

I tried installing via compiling, but I found a few issues.

wireguird: cleaning...
rm: cannot remove './build/wireguird_amd64.deb': No such file or directory
wireguird: building go binary...
./package.sh: line 7: go: command not found
wireguird: copying icons...
wireguird: building debian package...
mkdir: cannot create directory ‘./build/’: File exists
dpkg-deb: error: control directory has bad permissions 777 (must be >=0755 and <=0775)
wireguird: done

What should I do here? This comes up when running ./package.sh on Linux Mint 20.3 Cinnamon.

I did a snap install go --classic to get over the "command not found" for go but the "control directory has bad permissions" error persists.

Not a big deal, the .deb installer works fine, but just figured I'd ask!

where is /opt/wireguird/wireguird?

I installed by the steps as below:
git clone https://github.com/UnnoTed/wireguird
cd wireguird
./deps.sh
./package.sh
./install.sh

However, the content of installed /usr/local/bin/wireguird is as below:

#!/bin/sh
pkexec /opt/wireguird/wireguird

but I cannot find any wireguird executable file in the path.

After click the wireguird shortcut in Linux Mint, there is no response.

suddenly stop working on Debian12

The app has been working for a month on Debian 12 than it suddenly stopped. After the authentication dialog the application just get closed with no further effect on connection. I did reinstall the deb-packet with no result.

wireguird : Depends on: libappindicator3-dev (>= 1.0.0)

I just found your site and the link here.

Have the current Linux Mint Debian Edition running.
Attached are the logs from my installation

wget https://cdn.cyberinnovations.de/downloads/wireguard_amd64.deb
--2023-04-19 11:34:56-- https://cdn.cyberinnovations.de/downloads/wireguard_amd64.deb
Auflösen des Hostnamens cdn.cyberinnovations.de (cdn.cyberinnovations.de)… 162.55.121.19
Verbindungsaufbau zu cdn.cyberinnovations.de (cdn.cyberinnovations.de)|162.55.121.19|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 1763560 (1,7M) [application/octet-stream]
Wird in »wireguard_amd64.deb« gespeichert.

wireguard_amd64.deb 100%[=========================================================================================================================================>] 1,68M 2,68MB/s in 0,6s

2023-04-19 11:34:57 (2,68 MB/s) - »wireguard_amd64.deb« gespeichert [1763560/1763560]

root@mint-csaeum:/home/christian/Downloads# sudo apt install ./wireguard_amd64.deb
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
Hinweis: »wireguird« wird an Stelle von »./wireguard_amd64.deb« gewählt.
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:

Die folgenden Pakete haben unerfüllte Abhängigkeiten:
wireguird : Hängt ab von: libappindicator3-dev (>= 1.0.0)
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.

FQDN Support - Feature

Hi,

So this is not the official WG client, and is it possible to use FQDN instead of IP's for the allowed IP's block ?

please advice or share thoughts if this is possible by any method.

Problem with activation wireguard conf

If u try to input config with "-" in name of file. U cann't activate vpn getting error return 1. Same problem with official gui for android.

How to fix

It's simple u need to rename config file without "-" and it will work

For developers

It will be great if program automaticly rename file removing simbol "-" in filename

some feedback

Hi!

Firstly, thank you so much for your work on this. It has been a lifesaver for me. I use Linux Mint 21.1 Vera, and it's so sad that the native Network Manager doesn't support WireGuard config file import. Moreover, when I enter it all manually it simply doesn't work, there was some trick I had to come up with where I didn't enter a preshared key and had to restart a pc and only then it would work.

From your README, I got an impression that the goal of this project is to make an exact copy of Windows's GUI. If that's not the case, if wanted to provide some feedback to make it even more convenient, in my personal opinion.

  1. It's probably a bug, but when I left-click on the icon in the system tray, it doesn't do anything, so instead I have to right-click > show.
  2. Make it so I can quickly choose a VPN tunnel by a menu after leftclicking a in a system tray (left click > VPN tunnels >> MyVpn1),
    so that the whole main window doesn't even have to pop up.
  3. I mostly use VPN to reach websites that are blocked in my country, so it's roughly 15 minutes a day. But then sometimes I forget to turn it off (yeah, there is a large green check mark, but sometimes i m still very inattentive), and I accidentally eat all my traffic (watching videos, downloading torrents), so maybe some option is settings to notify me that i m using VPN for more that an hour~.

I am not a developer, I understand number 3 is a picky one, and I don't know if 1 and 2 are easy to implement.

I just hope that my feedback might be useful, so once again, thank you for making something this, great work!

non root user having issue with opening the application

Its works fine with root user and for non-root user it throws below error and it wont open the application.
2023-12-18T22:51:34.866261+05:30 DevOps wireguird.desktop[453060]: Error creating textual authentication agent: Error opening current controlling terminal for the process (`/dev/tty'): No such device or address
Thank you very much for all your help's!! :)

Multiple Tunnels Open at Once

I have three tunnels. Two are to the local LAN of remote offices, and one is to an EC2 instance on AWS. There are no overlaps in the remote LAN subnets, or the tunnel subnets. The AWS instance has a Allow IPs of 0.0.0.0/0 and becomes my internet gateway. The remote offices have Allow IPs set for the subnet scope of the remote LAN and only become a route for that remote LAN. All tunnels work as they should independently. However, if I have a tunnel active and I activate a different tunnel, the active one deactivates. In web form terms, they act like radio select bubbles, and not check boxes. Is there any way to get WireGUIrd to to let me have all three active at the same time?

Thank you.

sh jobs and ZorinOS

  • Tested the gui with the latest version of ZorinOS, which is based on Ubuntu
  • as the *.sh jobs do require "Ubuntu" I have send the command manually via bash
  • works like a charm
  • i kindly ask the project owner to add ZorinOS to the supported and tested OS and adjust the *.sh jobs accordingly

no GUI after working fine, Debian 12

Hi there,
Thanks for this nice piece of software!
After using wireguird for a year on Linux Mint without any problems, I switched to pure Debian 12 with GNOME.
I installed wireguird and it worked as expected for a day. Now the GUI doesn't appear(expect popup for new version, even if already installed).
After uninstalling and reinstalling, no difference.
Not even when I start it with sudo. See attached log.
Last thing I did was check "MultipleTunnels" and maybe "StartOnTray".
I don't know how to undo this. /opt/wireguird/wireguird.settings seems to be empty (0 bytes).
Any advice?
Thanks,
Sebastian

Screenshot from 2024-03-17 20-53-32

Can't launch wireguird app with or without sudo

without sudo:

$ wireguird
==== AUTHENTICATING FOR org.freedesktop.policykit.pkexec.wireguird ====
Authentication is required to run wireguird
Authenticating as: user
Password:
polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: No session for cookie
==== AUTHENTICATION FAILED ====
Error executing command as another user: Not
authorized

This incident has been reported.

with sudo:


$ sudo wireguird
[sudo] password for huuh:
The value for the SHELL variable was not found in the /etc/shells file

This incident has been reported.

Installed with AUR package.
Name : wireguird
Version : 1.0.0-4

$ pkexec --version
pkexec version 122

v1.0.0 Ubuntu 20.04 libc v2.31

Hi,
version 1.0.0 doesn't seams to be compatible with Ubuntu 20.04 and libc6_2.31 ?

sudo wireguird 
/opt/wireguird/wireguird: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /opt/wireguird/wireguird)
/opt/wireguird/wireguird: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /opt/wireguird/wireguird)

Thanks

wireguird: building go binary... Failed

Hi man!
Sorry my english a little bit broken. I haven't talk for ages on this language.
So I tried to compile your application but it didn't finished and it throw me this error massege.

../../go/pkg/mod/github.com/gotk3/[email protected]/gtk/accel.go:261:5: val.accel_flags undefined (type _Ctype_struct__GtkAccelKey has no field or method accel_flags) ../../go/pkg/mod/github.com/gotk3/[email protected]/gtk/accel.go:270:22: obj.accel_flags undefined (type *_Ctype_struct__GtkAccelKey has no field or method accel_flags)
I'm currently using Pop OS 20.10 (basically a ubuntu 20.10)

Wireguird - public key section in 'edit' screen showing the remote peer public key. Main screen is showing local public key as expected.

Hi there,

Pop OS 22.04 with Wireguird, 1.0.0. Standard Pop desktop, when editing a profile, the public key section right at the top displays the public key of the remote peer instead of the local public key. Creating a profile manually shows the local public key correctly on the main screen of the GUI, but editing it still does the same thing.

The same profile works as expected with the Windows Wireguard GUI. Couldn't see any other mention of this, so might be unique to me. Any ideas? Let me know if any more detail is needed.

No Update Coming ?

Hello,

problem in compilation because go-appindicator is now v1.0.1

go.sum:
github.com/dawidd6/go-appindicator v1.0.1 h1:Jds+9T6dd2SpZ4krJ6SaGdwlKzGTjuU9AypHWhTOXCY=
github.com/dawidd6/go-appindicator v1.0.1/go.mod h1:hOqBUkquzU53HlXUFjFXHAkzdyD45TmTZCQb3FqtEWg=

I would really like to use it instead Qomui where there is no more update since september 2019.

No update coming on wireguird ?

Thank you in advance

FlatHub

Great Software, simple, work, it's would be nice of it's be available on FlatHub for keeping it on date and maybe, providing more interest to this project !

Thanks,
Eric.

No connection

Install successfull, GUI starts. But "add tunnel" not possible, no reaction. No directory "/etc/wireguard".
Console wireguard works.
Mint 21.3 Cinnamon

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.